# 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: apps/v1beta1
kind: Deployment
metadata:
  name: ofagent
  namespace: voltha
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: ofagent
      annotations:
        cni: "calico"
    spec:
      terminationGracePeriodSeconds: 10
      containers:
      - name: ofagent
        image: voltha-ofagent
        imagePullPolicy: Never
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        args:
        - "/ofagent/ofagent/main.py"
        - "-v"
        - "--consul=consul.$(NAMESPACE).svc.cluster.local:8500"
        - "--controller=onos:6653"
        - "--grpc-endpoint=vcore.$(NAMESPACE).svc.cluster.local:50556"
        - "--enable-tls"
        - "--key-file=/ofagent/pki/voltha.key"
        - "--cert-file=/ofagent/pki/voltha.crt"
