112 lines
3.7 KiB
Django/Jinja
112 lines
3.7 KiB
Django/Jinja
kind: ConfigMap
|
|
apiVersion: v1
|
|
metadata:
|
|
name: calico-config
|
|
namespace: kube-system
|
|
data:
|
|
{% if calico_datastore == "etcd" %}
|
|
etcd_endpoints: "{{ etcd_access_addresses }}"
|
|
etcd_ca: "/calico-secrets/ca_cert.crt"
|
|
etcd_cert: "/calico-secrets/cert.crt"
|
|
etcd_key: "/calico-secrets/key.pem"
|
|
{% elif calico_datastore == "kdd" and typha_enabled %}
|
|
# To enable Typha, set this to "calico-typha" *and* set a non-zero value for Typha replicas
|
|
# below. We recommend using Typha if you have more than 50 nodes. Above 100 nodes it is
|
|
# essential.
|
|
typha_service_name: "calico-typha"
|
|
{% endif %}
|
|
{% if calico_network_backend == 'bird' %}
|
|
cluster_type: "kubespray,bgp"
|
|
calico_backend: "bird"
|
|
{% else %}
|
|
cluster_type: "kubespray"
|
|
calico_backend: "{{ calico_network_backend }}"
|
|
{% endif %}
|
|
{% if inventory_hostname in groups['k8s_cluster'] and peer_with_router | default(false) %}
|
|
as: "{{ local_as | default(global_as_num) }}"
|
|
{% endif -%}
|
|
# The CNI network configuration to install on each node. The special
|
|
# values in this config will be automatically populated.
|
|
cni_network_config: |-
|
|
{
|
|
"name": "{{ calico_cni_name }}",
|
|
"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_cni_log_file_path %}
|
|
"log_file_path": "{{ calico_cni_log_file_path }}",
|
|
{% endif %}
|
|
{% 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_ipam_host_local is defined %}
|
|
"ipam": {
|
|
"type": "host-local",
|
|
"subnet": "usePodCidr"
|
|
},
|
|
{% else %}
|
|
"ipam": {
|
|
"type": "calico-ipam",
|
|
{% if enable_dual_stack_networks %}
|
|
"assign_ipv6": "true",
|
|
{% endif %}
|
|
"assign_ipv4": "true"
|
|
},
|
|
{% endif %}
|
|
{% if calico_allow_ip_forwarding %}
|
|
"container_settings": {
|
|
"allow_ip_forwarding": true
|
|
},
|
|
{% 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": "__KUBECONFIG_FILEPATH__"
|
|
}
|
|
},
|
|
{
|
|
"type":"portmap",
|
|
"capabilities": {
|
|
"portMappings": true
|
|
}
|
|
},
|
|
{
|
|
"type":"bandwidth",
|
|
"capabilities": {
|
|
"bandwidth": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|