{
  "name": "cni0",
  "cniVersion":"0.3.1",
  "plugins":[
    {
{% if calico_datastore == "kdd" %}
      "datastore_type": "kubernetes",
      "nodename": "__KUBERNETES_NODE_NAME__",
{% else %}
{% if cloud_provider is defined %}
      "nodename": "{{ calico_kubelet_name.stdout }}",
    {% else %}
      "nodename": "{{ calico_baremetal_nodename }}",
    {% endif %}
{% endif %}
      "type": "calico",
      "log_level": "info",
{% if calico_datastore == "etcd" %}
      "etcd_endpoints": "{{ etcd_access_addresses }}",
      "etcd_cert_file": "{{ calico_cert_dir }}/cert.crt",
      "etcd_key_file": "{{ calico_cert_dir }}/key.pem",
      "etcd_ca_cert_file": "{{ calico_cert_dir }}/ca_cert.crt",
{% endif %}
{% if calico_datastore == "kdd" and calico_version is version('v3.6.0', '<') %}
      "ipam": {
        "type": "host-local",
        "subnet": "usePodCidr"
      },
{% else %}
      "ipam": {
        "type": "calico-ipam",
        "assign_ipv4": "true",
        "ipv4_pools": ["{{ calico_pool_cidr | default(kube_pods_subnet) }}"]
      },
{% endif %}
{% if (calico_feature_control is defined) and (calico_feature_control|length > 0) %}
      "feature_control": {
        {% for fc in calico_feature_control -%}
        {% set fcval = calico_feature_control[fc] -%}
          "{{ fc }}": {{ (fcval | string | lower) if (fcval == true or fcval == false) else "\"" + fcval + "\"" }}{{ "," if not loop.last else "" }}
        {% endfor -%}
      {{- "" }}
      },
{% endif %}
{% if enable_network_policy %}
      "policy": {
        "type": "k8s"
      },
{%- endif %}
{% if calico_mtu is defined and calico_mtu is number %}
      "mtu": {{ calico_mtu }},
{%- endif %}
      "kubernetes": {
        "kubeconfig": "{% if calico_version is version('v3.3.0', '>=') %}__KUBECONFIG_FILEPATH__{% else %}{{ kube_config_dir }}/node-kubeconfig.yaml{% endif %}"
      }
    },
    {
      "type":"portmap",
      "capabilities":{
        "portMappings":true
      }
    }
  ]
}
