#
# 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-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 writer

apiVersion: apps/v1beta1
kind: Deployment
metadata:
    name: benchmark-writer
spec:
    replicas: 1
    template:
        metadata:
            labels:
                app: bookkeeper
                component: benchmark-writer
                cluster: bookkeeper-gke
            annotations:
                prometheus.io/scrape: "true"
                prometheus.io/port: "8000"
        spec:
            containers:
              - name: benchmark-writer
                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", "bkwrite" ]
                envFrom:
                  - configMapRef:
                        name: benchmark-config

---

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