Add eBPF dataplane option

This commit is contained in:
Ethan Shold
2024-01-19 09:58:46 -06:00
parent 18044d23a4
commit f3b88a7ea4
3 changed files with 14 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ container_iface: "eth0"
# set use_calico to true to use tigera operator/calico instead of the default CNI flannel
# install reference: https://docs.tigera.io/calico/latest/getting-started/kubernetes/k3s/multi-node-install#install-calico
use_calico: false
calico_ebpf: false # use eBPF dataplane instead of iptables https://docs.tigera.io/calico/latest/operations/ebpf
calico_cidr: "10.52.0.0/16" # pod cidr pool
calico_tag: "v3.27.0" # calico version tag

View File

@@ -95,5 +95,17 @@
- { name: calico-apiserver, type: deployment, selector: 'k8s-app=calico-apiserver', namespace: calico-apiserver }
loop_control:
label: "{{ item.type }}/{{ item.name }}"
- name: Patch Felix configuration for eBPF mode
ansible.builtin.command:
cmd: >
kubectl patch felixconfiguration default
--type='merge'
--patch='{"spec": {"bpfKubeProxyIptablesCleanupEnabled": false}}'
register: patch_result
changed_when: "'felixconfiguration.projectcalico.org/default patched' in patch_result.stdout"
failed_when: "'Error' in patch_result.stderr"
when: calico_ebpf == true
when: ansible_hostname == hostvars[groups[group_name_master | default('master')][0]]['ansible_hostname']
run_once: true # stops "skipped" log spam

View File

@@ -16,6 +16,7 @@ spec:
nodeSelector: {{ calico_nodeSelector if calico_nodeSelector is defined else 'all()' }}
nodeAddressAutodetectionV4:
interface: {{ container_iface if container_iface is defined else 'eth0' }}
linuxDataplane: {{ 'BPF' if calico_ebpf else 'Iptables' }}
---