---
# 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: v1
kind: Service
metadata:
  name: netconf
  namespace: {{ .Values.global.namespace }}
  serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
spec:
  selector:
    app: netconf
  clusterIP: None
  ports:
    - port: 830
      targetPort: 830
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: netconf
  namespace: {{ .Values.global.namespace }}
  serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
spec:
  replicas: {{ .Values.replicas.netconf }}
  selector:
    matchLabels:
      name: netconf
      release: {{ .Release.Name }}
  template:
    metadata:
      labels:
        app: netconf
      annotations:
        cni: "calico"
    spec:
      serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
      terminationGracePeriodSeconds: 10
      containers:
        - name: netconf
          image: {{ .Values.global.registry }}{{ .Values.images.netconf.repository }}:{{ tpl .Values.images.netconf.tag . }}
          imagePullPolicy: {{ .Values.images.netconf.pullPolicy }}
          ports:
            - containerPort: 830
          env:
            - name: NETCONF_PORT
              value: "830"
          args:
{{ toYaml .Values.netconf_args | indent 12}}
          volumeMounts:
            - name: netconf-logconfig-vol
              mountPath: /netconf/netconf/logconfig.yml
              subPath: logconfig.yml
      volumes:
        - name: netconf-logconfig-vol
          configMap:
            name: netconf-logconfig
            items:
              - key: logconfig
                path: logconfig.yml
