---
# 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: device-management
  labels:
    release: {{ .Release.Name }}
spec:
  replicas: {{ .Values.nem_device_management_replicas }}
  template:
    metadata:
      labels:
        app: device-management
        release: {{ .Release.Name }}
    spec:
      containers:
        - name: device-management
          image:  "{{ .Values.global.registry }}{{ .Values.images.device_management.repository }}:{{ tpl .Values.images.device_management.tag . }}"
          imagePullPolicy: "{{ .Values.images.device_management.pullPolicy }}"
          ports:
            - containerPort: 8080
              port: 8080
              protocol: TCP
            - containerPort: 50051
              port: 50051
              protocol: TCP
          env:
          - name: DEVICE_MANAGEMENT_DESTIP
            valueFrom:
              fieldRef:
                fieldPath: status.hostIP
          - name: DEVICE_MANAGEMENT_DESTPORT
            value: "{{ .Values.nem_device_management_httpPort }}"
