---
# Copyright 2019-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: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
  name: f1-net-cu
{{- if $.Values.network.sriov.enabled }}
  annotations:
    k8s.v1.cni.cncf.io/resourceName: intel.com/sriov_netdevice
{{- end }}
spec:
  config: '{
    "type": {{ .Values.network.f1.cni_plugin | quote }},
    "ipam": {
        "type": {{ .Values.network.f1.ipam | quote }},
    {{- if eq .Values.network.f1.ipam "host-local" }}
        "subnet": {{ .Values.network.f1.subnet | quote }},
        "gateway": {{ .Values.network.f1.gateway | quote }}
    {{- else if eq .Values.network.f1.ipam "centralip" }}
        "ipType": "cluster",
        "network": {{ .Values.network.f1.subnet | quote }},
        "etcdURL": {{ .Values.network.etcdurl | quote }}
    {{- end }}
    }
  }'