# Copyright 2017-present Open Networking Foundation
#
# 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.

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: xos-core
  labels:
    app: xos-core    
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: xos-core    
    spec:
      containers:
        - name: xos-core 
          image: {{ .Values.pull_docker_registry }}{{ .Values.images.xos_core.repository }}:{{ .Values.images.xos_core.tag }}
          command: ["/bin/bash", "-c", "cd coreapi; ./start_coreapi.sh"]
          ports:
            - containerPort: 50051
              port: 50051
              protocol: TCP
            - containerPort: 50055
              port: 50055
              protocol: TCP
          volumeMounts:
            - name: certchain-volume
              mountPath: /usr/local/share/ca-certificates
            - name: coreapi-volume
              mountPath: /opt/cord_profile
              readOnly: true
            - name: xos-core-config
              mountPath: /opt/xos/xos_config.yaml
              subPath: config/xos_config.yaml
            - name: initial-data-config
              mountPath: /opt/xos/core/migrations/initial_data.yaml
              subPath: migrations/initial_data.yaml
      volumes:
        - name: certchain-volume
          secret:
            secretName: cert-chain-secret
        - name: coreapi-volume
          secret:
            secretName: coreapi-cert-secret
            items:
            - key: tls.crt
              path: core_api_cert.pem
            - key: tls.key
              path: core_api_key.pem
        - name: xos-core-config
          configMap:
            name: xos-core 
            items: 
             - key: config
               path: config/xos_config.yaml
        - name: initial-data-config
          configMap:
            name: xos-initial-data 
            items: 
             - key: config
               path: migrations/initial_data.yaml
