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

{{- $platform := .Values.platform -}}
{{- $jobReplicas := .Values.jobReplicas -}}
{{- $apiServerMemory := .Values.apiServerMemory -}}

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-tools-config
data:
  HERON_APISERVER_MEM_MIN: {{ $apiServerMemory | quote }}
  HERON_APISERVER_MEM_MAX: {{ $apiServerMemory | quote }}
---

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: {{ .Release.Name }}-tools
  labels:
    app: {{ .Release.Name }}-tools
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  template:
    metadata:
      labels:
        app: {{ .Release.Name }}-tools
        release: {{ .Release.Name }}
    spec:
      serviceAccountName: {{ .Release.Name }}-apiserver
      terminationGracePeriodSeconds: 0
      tolerations:
        - key: "node.kubernetes.io/not-ready"
          operator: "Equal"
          effect: "NoExecute"
          tolerationSeconds: 10
        - key: "node.alpha.kubernetes.io/notReady"
          operator: "Equal"
          effect: "NoExecute"
          tolerationSeconds: 10
        - key: "node.alpha.kubernetes.io/unreachable"
          operator: "Equal"
          effect: "NoExecute"
          tolerationSeconds: 10
      initContainers:
        # Wait until the zookeeper pods are up and running
        - name: heron-tools-init-container
          image: {{ .Values.image }}
          imagePullPolicy: {{ .Values.imagePullPolicy }}
          command:
            - sh
            - -c
            - /opt/zookeeper/scripts/wait-for-zookeeper.sh {{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }}
        - name: init-heron-apiserver
          image: {{ .Values.bookkeeper.image }}
          command: ['sh', '-c', '/opt/bookkeeper/bin/dlog admin bind -l /ledgers -s {{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }}:2181 -c distributedlog://{{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }}/heron']
      containers:
        - name: heron-tracker
          image: {{ .Values.image }}
          imagePullPolicy: {{ .Values.imagePullPolicy }}
          resources:
            requests:
              cpu: "100m"
              memory: "200M"
            limits:
              cpu: "200m"
              memory: "300M"
          ports:
            - containerPort: 8888
              name: api-port
          command: ["sh", "-c"]
          args:
            - >-
              heron-tracker
              --type=zookeeper
              --name={{ .Release.Name }}
              --hostport={{ .Release.Name }}-zookeeper:{{ .Values.zookeeper.clientPort }}
              --rootpath="/heron" 
        - name: heron-ui
          image: {{ .Values.image }}
          imagePullPolicy: {{ .Values.imagePullPolicy }}
          resources:
            requests:
              cpu: "100m"
              memory: "200M"
            limits:
              cpu: "200m"
              memory: "300M"
          ports:
            - containerPort: 8889
              name: app-port
          command: ["sh", "-c"]
          args:
            - >-
              heron-ui
              --port=8889
              --base_url=/api/v1/namespaces/{{ .Release.Namespace }}/services/{{ .Release.Name }}-ui:8889/proxy
        - name: heron-apiserver
          image: {{ .Values.image }}
          imagePullPolicy: {{ .Values.imagePullPolicy }}
          resources:
            requests:
              cpu: "250m"
            limits:
              cpu: "500m"
          command: ["sh", "-c"]
          args:
            - >-
              heron-apiserver
              --base-template kubernetes
              --cluster {{ .Release.Name }}
              -D heron.statemgr.connection.string={{ .Release.Name }}-zookeeper:2181
              -D heron.kubernetes.scheduler.uri=http://localhost:8001
              -D heron.kubernetes.scheduler.namespace={{ .Release.Namespace }}
              -D heron.executor.docker.image={{ .Values.image }}
              -D heron.statefulstorage.classname=org.apache.heron.statefulstorage.dlog.DlogStorage
              -D heron.statefulstorage.dlog.namespace.uri=distributedlog://{{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }}/heron
              {{- if eq .Values.uploader.class "dlog" }}
              -D heron.class.uploader=org.apache.heron.uploader.dlog.DLUploader
              -D heron.uploader.dlog.topologies.num.replicas={{ $jobReplicas }}
              -D heron.uploader.dlog.topologies.namespace.uri=distributedlog://{{ .Release.Name }}-zookeeper {{ .Values.zookeeper.clientPort }}/heron
              {{- else if eq .Values.uploader.class "s3" }}
              -D heron.class.uploader=org.apache.heron.uploader.s3.S3Uploader
              -D heron.uploader.s3.bucket={{ .Values.uploader.s3Bucket }}
              -D heron.uploader.s3.path_prefix={{ .Values.uploader.s3PathPrefix }}
              -D heron.uploader.s3.access_key={{ .Values.uploader.s3AccessKey }}
              -D heron.uploader.s3.secret_key={{ .Values.uploader.s3SecretKey }}
              -D heron.uploader.s3.region={{ .Values.uploader.s3Region }}
              {{- end }}
              {{- if eq .Values.packing "RoundRobin" }}
              -D heron.class.packing.algorithm=org.apache.heron.packing.roundrobin.RoundRobinPacking
              -D heron.class.repacking.algorithm=org.apache.heron.packing.roundrobin.RoundRobinPacking
              {{- else if eq .Values.packing "ResourceCompliantRR" }}
              -D heron.class.packing.algorithm=org.apache.heron.packing.roundrobin.ResourceCompliantRRPacking
              -D heron.class.repacking.algorithm=org.apache.heron.packing.roundrobin.ResourceCompliantRRPacking
              {{- else if eq .Values.packing "FirstFitDecreasing" }}
              -D heron.class.packing.algorithm=org.apache.heron.packing.binpacking.FirstFitDecreasingPacking
              -D heron.class.repacking.algorithm=org.apache.heron.packing.binpacking.FirstFitDecreasingPacking
              {{- end }}
          envFrom:
            - configMapRef:
                name: {{ .Release.Name }}-tools-config
        - name: kubectl-proxy
          image: heron/kubectl:latest
          command: ["sh", "-c"]
          args:
            - >
              kubectl proxy -p 8001
---
##
## Service to expose the heron-ui
##
apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}-ui
  labels:
    app: {{ .Release.Name }}-tools
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  ports:
    - port: 8889
      targetPort: 8889
      protocol: TCP
  selector:
    app: {{ .Release.Name }}-tools
    release: {{ .Release.Name }}

---
##
## Service to expose the heron-tracker
##
apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}-tracker
  labels:
    app: {{ .Release.Name }}-tools
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  ports:
    - port: 8888
      targetPort: 8888
      protocol: TCP
  selector:
    app: {{ .Release.Name }}-tools
    release: {{ .Release.Name }}

---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: {{ .Release.Name }}-apiserver
  namespace: {{ .Release.Namespace }}
  labels:
    k8s-app: {{ .Release.Name }}-apiserver

---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: {{ .Release.Name }}-apiserver
  labels:
    app: {{ .Release.Name }}-apiserver
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects: 
- kind: ServiceAccount
  name: {{ .Release.Name }}-apiserver
  namespace: {{ .Release.Namespace }}

---
apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}-apiserver
  labels:
    app: {{ .Release.Name }}-tools
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  ports:
    - port: 9000
      targetPort: 9000
      protocol: TCP
  type: NodePort
  selector:
    app: {{ .Release.Name }}-tools
    release: {{ .Release.Name }}
