feat(talos): Add cilium bgpControlPlane support and CNI security settings (#1296)

* fix: Use cilium cni install values for Talos

* fix: Use cilium cni install values for Talos

* feat: Add cilium bgpControlPlane support for Talos

* feat: Add cilium bgpControlPlane support for Talos

* feat: Add LB cidr var for Talos BGPCP

* feat: Add jinja template for cilium-bgp.yaml

* Add cilium bgpControlPlane support for Talos

* feat: Add cilium bgpControlPlane example config for Talos

* fix: Remove invalid fields from bgp peering policy

* fix: Add serviceSelector to bgp peering policy

* Update bootstrap/templates/partials/cilium-values-full.partial.yaml.j2

* Update bootstrap/templates/partials/cilium-values-init.partial.yaml.j2

* Update bootstrap/templates/partials/cilium-values-full.partial.yaml.j2

* Update bootstrap/templates/partials/cilium-values-init.partial.yaml.j2

---------

Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
This commit is contained in:
WasurerarenaiandDevin Buhl authored and GitHub committed 2024-02-08 08:27:40 -05:00
1 parent 81ffb39143
commit 2549e3698f
6 files changed
+111 -5

No files matched your search

@@ -0,0 +1,33 @@
---
# https://docs.cilium.io/en/latest/network/bgp-control-plane/
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPPeeringPolicy
metadata:
name: policy
spec:
nodeSelector:
matchLabels:
kubernetes.io/os: linux
virtualRouters:
- localASN: {{ distribution.talos.bgp.local_asn }}
neighbors:
{% if distribution.talos.bgp.peers %}
{% for item in distribution.talos.bgp.peers %}
- peerAddress: "{{ item }}/32"
peerASN: {{ distribution.talos.bgp.peer_asn }}
{% endfor %}
{% else %}
- peerAddress: "{{ nodes.host_network | nthhost(1) }}/32"
peerASN: {{ distribution.talos.bgp.peer_asn }}
{% endif %}
serviceSelector:
matchExpressions:
- {key: somekey, operator: NotIn, values: ['never-used-value']}
---
apiVersion: cilium.io/v2alpha1
kind: CiliumLoadBalancerIPPool
metadata:
name: pool
spec:
cidrs:
- cidr: "${LOADBALANCER_CIDR}"
@@ -2,7 +2,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
{% if not feature_gates.dual_stack_ipv4_first %}
{% if distribution.talos.bgp.enabled %}
- ./cilium-bgp.yaml
{% endif %}
{% if ( (not distribution.talos.bgp.enabled) and
(feature_gates.dual_stack_ipv4_first) ) %}
- ./cilium-l2.yaml
{% endif %}
- ./helmrelease.yaml
@@ -11,3 +11,6 @@ data:
{% if feature_gates.dual_stack_ipv4_first %}
CLUSTER_CIDR_V6: "{{ cluster.pod_network.split(',')[1] }}"
{% endif %}
{% if distribution.talos.bgp.enabled %}
LOADBALANCER_CIDR: "{{ distribution.talos.bgp.loadbalancer_network }}"
{% endif %}
@@ -1,6 +1,14 @@
autoDirectNodeRoutes: true
{% if distribution.talos.bgp.enabled %}
bgpControlPlane:
enabled: true
{% endif %}
bpf:
masquerade: true
cgroup:
automount:
enabled: false
hostRoot: /sys/fs/cgroup
cluster:
name: home-kubernetes
id: 1
@@ -68,7 +76,8 @@ k8sServicePort: 7445
kubeProxyReplacement: true
kubeProxyReplacementHealthzBindAddr: 0.0.0.0:10256
l2announcements:
{% if feature_gates.dual_stack_ipv4_first %}
{% if ( (distribution.talos.bgp.enabled) or
(feature_gates.dual_stack_ipv4_first) ) %}
# https://github.com/cilium/cilium/issues/28985
enabled: false
{% else %}
@@ -101,4 +110,20 @@ dashboards:
rollOutCiliumPods: true
routingMode: native
securityContext:
privileged: true
capabilities:
ciliumAgent:
- CHOWN
- KILL
- NET_ADMIN
- NET_RAW
- IPC_LOCK
- SYS_ADMIN
- SYS_RESOURCE
- DAC_OVERRIDE
- FOWNER
- SETGID
- SETUID
cleanCiliumState:
- NET_ADMIN
- SYS_ADMIN
- SYS_RESOURCE
@@ -1,6 +1,14 @@
autoDirectNodeRoutes: true
{% if distribution.talos.bgp.enabled %}
bgpControlPlane:
enabled: true
{% endif %}
bpf:
masquerade: true
cgroup:
automount:
enabled: false
hostRoot: /sys/fs/cgroup
cluster:
name: home-kubernetes
id: 1
@@ -31,7 +39,8 @@ k8sServicePort: 7445
kubeProxyReplacement: true
kubeProxyReplacementHealthzBindAddr: 0.0.0.0:10256
l2announcements:
{% if feature_gates.dual_stack_ipv4_first %}
{% if ( (distribution.talos.bgp.enabled) or
(feature_gates.dual_stack_ipv4_first) ) %}
# https://github.com/cilium/cilium/issues/28985
enabled: false
{% else %}
@@ -47,4 +56,20 @@ operator:
rollOutCiliumPods: true
routingMode: native
securityContext:
privileged: true
capabilities:
ciliumAgent:
- CHOWN
- KILL
- NET_ADMIN
- NET_RAW
- IPC_LOCK
- SYS_ADMIN
- SYS_RESOURCE
- DAC_OVERRIDE
- FOWNER
- SETGID
- SETUID
cleanCiliumState:
- NET_ADMIN
- SYS_ADMIN
- SYS_RESOURCE