From cac08d6368da66c9d984afb00d6c963ad8933794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Skyler=20M=C3=A4ntysaari?= Date: Tue, 18 Jul 2023 00:56:37 +0300 Subject: [PATCH] =?UTF-8?q?fix(kubernetes-templating):=20IPv6=20support=20?= =?UTF-8?q?for=20Flux=20managed=20Cilium=20and=20=E2=80=A6=20(#857)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Devin Buhl --- bootstrap/defaults/main.yaml | 2 +- .../apps/kube-system/cilium/app/helmrelease.yaml.j2 | 13 ++++++++++++- .../kube-system/cilium/app/kustomization.yaml.j2 | 3 +++ .../kube-system/coredns/app/helmrelease.yaml.j2 | 1 + 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/bootstrap/defaults/main.yaml b/bootstrap/defaults/main.yaml index 7a7ecb9d..d0eb3f0a 100644 --- a/bootstrap/defaults/main.yaml +++ b/bootstrap/defaults/main.yaml @@ -1,2 +1,2 @@ --- -bootstrap_coredns_addr: "{{ bootstrap_service_cidr | ansible.utils.nthhost(10) }}" +bootstrap_coredns_addr: "{{ bootstrap_service_cidr.split(',')[0] | ansible.utils.nthhost(10) }}" diff --git a/bootstrap/templates/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml.j2 index 07724111..447f67b8 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/kube-system/cilium/app/helmrelease.yaml.j2 @@ -1,3 +1,4 @@ +#jinja2: trim_blocks: True, lstrip_blocks: True --- apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease @@ -75,17 +76,27 @@ spec: - *host ipam: mode: kubernetes + ipv4NativeRoutingCIDR: "{{ bootstrap_cluster_cidr.split(',')[0] }}" + {% if bootstrap_ipv6_enabled | default(false) %} + ipv6NativeRoutingCIDR: "{{ bootstrap_cluster_cidr.split(',')[1] }}" + ipv6: + enabled: true + {% endif %} k8sServiceHost: "{{ bootstrap_kube_vip_addr }}" k8sServicePort: 6443 - ipv4NativeRoutingCIDR: "{{ bootstrap_cluster_cidr }}" kubeProxyReplacement: strict kubeProxyReplacementHealthzBindAddr: 0.0.0.0:10256 + {% if bootstrap_ipv6_enabled | default(false) %} + l2announcements: + enabled: false + {% else %} # https://github.com/cilium/cilium/issues/26586 l2announcements: enabled: true leaseDuration: 120s leaseRenewDeadline: 60s leaseRetryPeriod: 1s + {% endif %} loadBalancer: algorithm: maglev mode: dsr diff --git a/bootstrap/templates/kubernetes/apps/kube-system/cilium/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/cilium/app/kustomization.yaml.j2 index d98c72b7..aa7aace1 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/cilium/app/kustomization.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/kube-system/cilium/app/kustomization.yaml.j2 @@ -1,7 +1,10 @@ +#jinja2: trim_blocks: True, lstrip_blocks: True --- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization namespace: kube-system resources: + {% if not bootstrap_ipv6_enabled | default(false) %} - ./cilium-l2.yaml + {% endif %} - ./helmrelease.yaml diff --git a/bootstrap/templates/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml.j2 index 51028c7a..1ef80888 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/kube-system/coredns/app/helmrelease.yaml.j2 @@ -1,3 +1,4 @@ +#jinja2: trim_blocks: True, lstrip_blocks: True --- apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease