From 355c71924b6883a52d0ef81284ff3d5a13e634ee Mon Sep 17 00:00:00 2001 From: Diogo Guerra Date: Wed, 8 Jan 2020 19:37:52 +0100 Subject: [PATCH] Add calico_ipv4pool_ipip label IPIP Mode to use for the IPv4 POOL created at start up allowed_values: ["Always", "CrossSubnet", "Never", "Off"] default: "Off" Change-Id: Ib834a1f86a6db408047cc8f86fc7744d16d83904 Signed-off-by: Diogo Guerra --- doc/source/user/index.rst | 4 ++++ .../templates/kubernetes/fragments/calico-service.sh | 2 +- .../kubernetes/fragments/write-heat-params-master.sh | 1 + magnum/drivers/heat/k8s_coreos_template_def.py | 1 + magnum/drivers/heat/k8s_fedora_template_def.py | 1 + .../k8s_fedora_atomic_v1/templates/kubecluster.yaml | 8 ++++++++ .../k8s_fedora_atomic_v1/templates/kubemaster.yaml | 5 +++++ .../k8s_fedora_coreos_v1/templates/kubecluster.yaml | 8 ++++++++ .../k8s_fedora_coreos_v1/templates/kubemaster.yaml | 5 +++++ magnum/tests/unit/drivers/test_template_definition.py | 6 ++++++ .../calico-configuration-label-ae0b43a7c7123f02.yaml | 6 ++++++ 11 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/calico-configuration-label-ae0b43a7c7123f02.yaml diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index 0182b7eada..40f7559120 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -2500,6 +2500,10 @@ _`calico_ipv4pool` IPv4 network in CIDR format which is the IP pool, from which Pod IPs will be chosen. If not specified, the default is 192.168.0.0/16. +_`calico_ipv4pool_ipip` + IPIP Mode to use for the IPv4 POOL created at start up. + Ussuri default: Off + _`calico_tag` Tag of the calico containers used to provision the calico node diff --git a/magnum/drivers/common/templates/kubernetes/fragments/calico-service.sh b/magnum/drivers/common/templates/kubernetes/fragments/calico-service.sh index 76b0057a1d..170b9c60b3 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/calico-service.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/calico-service.sh @@ -398,7 +398,7 @@ spec: - name: CALICO_IPV4POOL_CIDR value: ${CALICO_IPV4POOL} - name: CALICO_IPV4POOL_IPIP - value: "off" + value: ${CALICO_IPV4POOL_IPIP} - name: CALICO_IPV4POOL_NAT_OUTGOING value: "true" # Set noderef for node controller. diff --git a/magnum/drivers/common/templates/kubernetes/fragments/write-heat-params-master.sh b/magnum/drivers/common/templates/kubernetes/fragments/write-heat-params-master.sh index af59d7f108..287a17b080 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/write-heat-params-master.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/write-heat-params-master.sh @@ -80,6 +80,7 @@ CA_KEY="$CA_KEY" CALICO_TAG="$CALICO_TAG" CALICO_KUBE_CONTROLLERS_TAG="$CALICO_KUBE_CONTROLLERS_TAG" CALICO_IPV4POOL="$CALICO_IPV4POOL" +CALICO_IPV4POOL_IPIP="$CALICO_IPV4POOL_IPIP" INGRESS_CONTROLLER="$INGRESS_CONTROLLER" INGRESS_CONTROLLER_ROLE="$INGRESS_CONTROLLER_ROLE" OCTAVIA_INGRESS_CONTROLLER_TAG="$OCTAVIA_INGRESS_CONTROLLER_TAG" diff --git a/magnum/drivers/heat/k8s_coreos_template_def.py b/magnum/drivers/heat/k8s_coreos_template_def.py index d1a4426767..d344dd6491 100644 --- a/magnum/drivers/heat/k8s_coreos_template_def.py +++ b/magnum/drivers/heat/k8s_coreos_template_def.py @@ -62,6 +62,7 @@ class CoreOSK8sTemplateDefinition(k8s_template_def.K8sTemplateDefinition): 'availability_zone', 'calico_tag', 'calico_kube_controllers_tag', 'calico_ipv4pool', + 'calico_ipv4pool_ipip', 'etcd_tag', 'flannel_tag'] labels = self._get_relevant_labels(cluster, kwargs) diff --git a/magnum/drivers/heat/k8s_fedora_template_def.py b/magnum/drivers/heat/k8s_fedora_template_def.py index f7c497c9da..74edd59330 100644 --- a/magnum/drivers/heat/k8s_fedora_template_def.py +++ b/magnum/drivers/heat/k8s_fedora_template_def.py @@ -80,6 +80,7 @@ class K8sFedoraTemplateDefinition(k8s_template_def.K8sTemplateDefinition): 'cgroup_driver', 'calico_tag', 'calico_kube_controllers_tag', 'calico_ipv4pool', + 'calico_ipv4pool_ipip', 'etcd_tag', 'flannel_tag', 'flannel_cni_tag', 'cloud_provider_tag', 'prometheus_tag', 'grafana_tag', diff --git a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml index 00829b638d..888e386816 100644 --- a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml +++ b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubecluster.yaml @@ -568,6 +568,13 @@ parameters: description: Configure the IP pool from which Pod IPs will be chosen default: "192.168.0.0/16" + calico_ipv4pool_ipip: + type: string + description: IPIP Mode to use for the IPv4 POOL created at start up + default: "Off" + constraints: + - allowed_values: ["Always", "CrossSubnet", "Never", "Off"] + pods_network_cidr: type: string description: Configure the IP pool/range from which pod IPs will be chosen @@ -1090,6 +1097,7 @@ resources: calico_tag: {get_param: calico_tag} calico_kube_controllers_tag: {get_param: calico_kube_controllers_tag} calico_ipv4pool: {get_param: calico_ipv4pool} + calico_ipv4pool_ipip: {get_param: calico_ipv4pool_ipip} pods_network_cidr: {get_param: pods_network_cidr} ingress_controller: {get_param: ingress_controller} ingress_controller_role: {get_param: ingress_controller_role} diff --git a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml index 0421a63207..9eaf91e0cf 100644 --- a/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml +++ b/magnum/drivers/k8s_fedora_atomic_v1/templates/kubemaster.yaml @@ -375,6 +375,10 @@ parameters: type: string description: Configure the IP pool from which Pod IPs will be chosen + calico_ipv4pool_ipip: + type: string + description: IPIP Mode to use for the IPv4 POOL created at start up + pods_network_cidr: type: string description: Configure the IP pool/range from which pod IPs will be chosen @@ -703,6 +707,7 @@ resources: "$CALICO_TAG": {get_param: calico_tag} "$CALICO_KUBE_CONTROLLERS_TAG": {get_param: calico_kube_controllers_tag} "$CALICO_IPV4POOL": {get_param: calico_ipv4pool} + "$CALICO_IPV4POOL_IPIP": {get_param: calico_ipv4pool_ipip} "$INGRESS_CONTROLLER": {get_param: ingress_controller} "$INGRESS_CONTROLLER_ROLE": {get_param: ingress_controller_role} "$OCTAVIA_INGRESS_CONTROLLER_TAG": {get_param: octavia_ingress_controller_tag} diff --git a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml index 12654d28a0..d5f6ddf31f 100644 --- a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml +++ b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubecluster.yaml @@ -568,6 +568,13 @@ parameters: description: Configure the IP pool from which Pod IPs will be chosen default: "192.168.0.0/16" + calico_ipv4pool_ipip: + type: string + description: IPIP Mode to use for the IPv4 POOL created at start up + default: "Off" + constraints: + - allowed_values: ["Always", "CrossSubnet", "Never", "Off"] + pods_network_cidr: type: string description: Configure the IP pool/range from which pod IPs will be chosen @@ -1093,6 +1100,7 @@ resources: calico_tag: {get_param: calico_tag} calico_kube_controllers_tag: {get_param: calico_kube_controllers_tag} calico_ipv4pool: {get_param: calico_ipv4pool} + calico_ipv4pool_ipip: {get_param: calico_ipv4pool_ipip} pods_network_cidr: {get_param: pods_network_cidr} ingress_controller: {get_param: ingress_controller} ingress_controller_role: {get_param: ingress_controller_role} diff --git a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml index 4b15a4e412..2c4007f457 100644 --- a/magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml +++ b/magnum/drivers/k8s_fedora_coreos_v1/templates/kubemaster.yaml @@ -379,6 +379,10 @@ parameters: type: string description: Configure the IP pool from which Pod IPs will be chosen + calico_ipv4pool_ipip: + type: string + description: IPIP Mode to use for the IPv4 POOL created at start up + pods_network_cidr: type: string description: Configure the IP pool/range from which pod IPs will be chosen @@ -709,6 +713,7 @@ resources: "$CALICO_TAG": {get_param: calico_tag} "$CALICO_KUBE_CONTROLLERS_TAG": {get_param: calico_kube_controllers_tag} "$CALICO_IPV4POOL": {get_param: calico_ipv4pool} + "$CALICO_IPV4POOL_IPIP": {get_param: calico_ipv4pool_ipip} "$INGRESS_CONTROLLER": {get_param: ingress_controller} "$INGRESS_CONTROLLER_ROLE": {get_param: ingress_controller_role} "$OCTAVIA_INGRESS_CONTROLLER_TAG": {get_param: octavia_ingress_controller_tag} diff --git a/magnum/tests/unit/drivers/test_template_definition.py b/magnum/tests/unit/drivers/test_template_definition.py index 22fbcc4c45..b594c541cb 100644 --- a/magnum/tests/unit/drivers/test_template_definition.py +++ b/magnum/tests/unit/drivers/test_template_definition.py @@ -506,6 +506,8 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase): 'calico_kube_controllers_tag') calico_ipv4pool = mock_cluster.labels.get( 'calico_ipv4pool') + calico_ipv4pool_ipip = mock_cluster.labels.get( + 'calico_ipv4pool_ipip') if mock_cluster_template.network_driver == 'flannel': pods_network_cidr = flannel_cidr elif mock_cluster_template.network_driver == 'calico': @@ -635,6 +637,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase): 'calico_tag': calico_tag, 'calico_kube_controllers_tag': calico_kube_controllers_tag, 'calico_ipv4pool': calico_ipv4pool, + 'calico_ipv4pool_ipip': calico_ipv4pool_ipip, 'cgroup_driver': cgroup_driver, 'pods_network_cidr': pods_network_cidr, 'ingress_controller': ingress_controller, @@ -970,6 +973,8 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase): 'calico_kube_controllers_tag') calico_ipv4pool = mock_cluster.labels.get( 'calico_ipv4pool') + calico_ipv4pool_ipip = mock_cluster.labels.get( + 'calico_ipv4pool_ipip') if mock_cluster_template.network_driver == 'flannel': pods_network_cidr = flannel_cidr elif mock_cluster_template.network_driver == 'calico': @@ -1101,6 +1106,7 @@ class AtomicK8sTemplateDefinitionTestCase(BaseK8sTemplateDefinitionTestCase): 'calico_tag': calico_tag, 'calico_kube_controllers_tag': calico_kube_controllers_tag, 'calico_ipv4pool': calico_ipv4pool, + 'calico_ipv4pool_ipip': calico_ipv4pool_ipip, 'cgroup_driver': cgroup_driver, 'pods_network_cidr': pods_network_cidr, 'ingress_controller': ingress_controller, diff --git a/releasenotes/notes/calico-configuration-label-ae0b43a7c7123f02.yaml b/releasenotes/notes/calico-configuration-label-ae0b43a7c7123f02.yaml new file mode 100644 index 0000000000..3d84090f39 --- /dev/null +++ b/releasenotes/notes/calico-configuration-label-ae0b43a7c7123f02.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + Added calico_ipv4pool_ipip label for configuring calico network_driver + IPIP Mode to use for the IPv4 POOL created at start up. + Allowed_values: Always, CrossSubnet, Never, Off.