#
# 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-pod.yaml
# Expose port:
# 1. Expose the Pod by port-forward, for temporary test
#   kubectl port-forward kyuubi-example --address localhost 10009:10009
#   Connect:
#     kubectl exec -it kyuubi-example -- /bin/bash
#
#     ${SPARK_HOME}/bin/beeline -u 'jdbc:hive2://localhost:10009'
# 2. Expose the Pod as a service with NodePort
#   see usage of kyuubi-service.yaml
# Logging:
#   kubectl logs -f kyuubi-example
# Config change:
# 1. edit ConfigMap
#   kubectl edit cm kyuubi-defaults
# 2. restart pod
#   kubectl delete -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/kyuubi-pod.yaml
#   kubectl apply -f https://raw.githubusercontent.com/apache/incubator-kyuubi/master/docker/kyuubi-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: kyuubi-example
  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
