# Copyright © 2017 Amdocs, Bell Canada
#
# Licensed 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.

#{{ if not .Values.disableDcaeCdap }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  labels:
    app: cdap0
  name: cdap0
  namespace: "{{ .Values.nsPrefix }}"
spec:
  selector:
    matchLabels:
      app: cdap0
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: cdap0
      name: cdap0
    spec:
      initContainers:
      - command: ["/bin/bash", "-c", "mkdir -p /cdap/{cdap0-opt-tools,cdap0-opt-data,pod-ip}; grep `hostname` /etc/hosts > /cdap/pod-ip/`hostname`_ip.txt; while [`ls /cdap/pod-ip | wc -l` < 3];  do sleep 1; done"]
        name: create-fs
        image: {{ .Values.image.cdapfs }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        volumeMounts:
        - mountPath: /cdap
          name: cdap-root
      hostname: zldcprivatecloudtruecdap00
      containers:
      - image: {{ .Values.image.cdap }}
        imagePullPolicy: {{ .Values.pullPolicy }}
        command: ["/bin/bash"]
        args: ["-c", "cat /cdap/pod-ip/* >> /etc/hosts; /usr/local/bin/01-entrypoint.sh; sleep infinity;"]
        name: cdap0
        ports:
        - containerPort: 8020
          protocol: TCP
        - containerPort: 8025
          protocol: TCP
        - containerPort: 50070
          protocol: TCP
        - containerPort: 50075
          protocol: TCP
        - containerPort: 50010
          protocol: TCP
        - containerPort: 50020
          protocol: TCP
        - containerPort: 3888
          protocol: TCP
        - containerPort: 2888
          protocol: TCP
        - containerPort: 2181
          protocol: TCP
        volumeMounts:
        - mountPath: /cdap
          name: cdap-root
        - mountPath: /opt/tools
          name: dcae-cdap0-opt-tools
        - mountPath: /opt/data
          name: dcae-cdap0-opt-data
      volumes:
      - name: cdap-root
        hostPath:
          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap
      - name: dcae-cdap0-opt-tools
        hostPath:
          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap0-opt-tools
      - name: dcae-cdap0-opt-data
        hostPath:
          path: /dockerdata-nfs/{{ .Values.nsPrefix }}/dcae/cdap/cdap0-opt-data
      imagePullSecrets:
      - name: "{{ .Values.nsPrefix }}-docker-registry-key"
#{{ end }}
