#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

apiVersion: v1
kind: ConfigMap
metadata:
    name: benchmark-reader-config
data:
    # benchmark
    BK_DLOG_ROOT_LOGGER: "INFO,stderr"
    BK_DL_NAMESPACE: "distributedlog://zookeeper/distributedlog"
    BK_STATS_PROVIDER: org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider
    BK_INITIAL_RATE: "100"
---

## benchmark reader

apiVersion: apps/v1beta1
kind: Deployment
metadata:
    name: benchmark-reader
spec:
    replicas: 1
    template:
        metadata:
            labels:
                app: bookkeeper
                component: benchmark-reader
                cluster: bookkeeper-gke
            annotations:
                prometheus.io/scrape: "true"
                prometheus.io/port: "8000"
        spec:
            containers:
              - name: benchmark-reader
                image: apachedistributedlog/distributedlog:latest
                resources:
                  requests:
                    memory: "3Gi"
                    cpu: "1000m"
                  limits:
                    memory: "5Gi"
                    cpu: "2000m"
                command: [ "/bin/bash", "/opt/distributedlog/bin/entrypoint.sh" ]
                args: [ "/opt/distributedlog/bin/dbench", "read" ]
                envFrom:
                  - configMapRef:
                        name: benchmark-reader-config

---

apiVersion: v1
kind: Service
metadata:
    name: benchmark-reader
    labels:
        app: bookkeeper
        component: benchmark-reader
spec:
    clusterIP: None
    selector:
        app: bookkeeper
        component: benchmark-reader
