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

# Usage:
# ConfigMap:
#   DEMO:
#     kubectl apply -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/kyuubi-configmap.yaml
#   LOCAL:
#     kubectl create cm kyuubi-defaults --from-file=${KYUUBI_HOME}/conf/kyuubi-defaults.conf
# Start:
#   kubectl apply -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/kyuubi-deployment.yaml
# Expose port with NodePort:
#   see usage of kyuubi-service.yaml
# Config change:
# 1. edit ConfigMap
#   kubectl edit cm kyuubi-defaults
# 2. restart deployment
#   kubectl delete -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/kyuubi-deployment.yaml
#   kubectl apply -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/kyuubi-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kyuubi-deployment-example
  labels:
    app: kyuubi-server
spec:
  replicas: 3
  selector:
    matchLabels:
      app: kyuubi-server
  template:
    metadata:
      labels:
        app: kyuubi-server
    spec:
      containers:
        - name: kyuubi-server
          # TODO: replace this with the stable tag
          image: apache/kyuubi:master-snapshot
          imagePullPolicy: Always
          env:
            - name: KYUUBI_JAVA_OPTS
              value: -Dkyuubi.frontend.bind.host=0.0.0.0
          ports:
            - name: frontend-port
              containerPort: 10009
              protocol: TCP
          volumeMounts:
            - name: kyuubi-defaults
              mountPath: /opt/kyuubi/conf
      volumes:
        - name: kyuubi-defaults
          configMap:
            name: kyuubi-defaults
