Enable Calico loadbalancer controller in calico-kube-controllers (#13611)

calico-kube-controllers ran without the loadbalancer controller, so
Service LoadBalancer IPs were never allocated from Calico IP pools.
Add it to both datastore lists on Calico 3.30.0 and later, where the
controller exists, and make the lists configurable.

Signed-off-by: Jathavedhan M <jathavedhan.m@ibm.com>
This commit is contained in:
Jathavedhan
2026-10-12 04:01:34 +00:00
committed by GitHub
parent 457217aaa0
commit 7c57bc015d
3 changed files with 12 additions and 2 deletions
@@ -63,6 +63,11 @@ calico_pool_blocksize: 26
# Choose data store type for calico: "etcd" or "kdd" (kubernetes datastore) # Choose data store type for calico: "etcd" or "kdd" (kubernetes datastore)
# calico_datastore: "kdd" # calico_datastore: "kdd"
# Controllers run by calico-kube-controllers (ENABLED_CONTROLLERS), per datastore
# (the defaults below are for Calico 3.30+; on 3.29 there is no loadbalancer controller)
# calico_policy_controller_enabled_controllers_kdd: "node,loadbalancer"
# calico_policy_controller_enabled_controllers_etcd: "policy,namespace,serviceaccount,workloadendpoint,node,loadbalancer"
# Choose Calico iptables backend: "Legacy", "Auto" or "NFT" # Choose Calico iptables backend: "Legacy", "Auto" or "NFT"
# calico_iptables_backend: "Auto" # calico_iptables_backend: "Auto"
@@ -7,5 +7,10 @@ calico_policy_controller_memory_requests: 64M
calico_policy_controller_deployment_nodeselector: "kubernetes.io/os: linux" calico_policy_controller_deployment_nodeselector: "kubernetes.io/os: linux"
calico_policy_controller_log_level: info calico_policy_controller_log_level: info
# Controllers run by calico-kube-controllers (ENABLED_CONTROLLERS), per datastore.
# The loadbalancer controller was added in Calico 3.30.0.
calico_policy_controller_enabled_controllers_kdd: "node{{ ',loadbalancer' if calico_version is version('3.30.0', '>=') else '' }}"
calico_policy_controller_enabled_controllers_etcd: "policy,namespace,serviceaccount,workloadendpoint,node{{ ',loadbalancer' if calico_version is version('3.30.0', '>=') else '' }}"
# SSL # SSL
calico_cert_dir: "/etc/calico/certs" calico_cert_dir: "/etc/calico/certs"
@@ -68,12 +68,12 @@ spec:
value: {{ calico_policy_controller_log_level }} value: {{ calico_policy_controller_log_level }}
{% if calico_datastore == "kdd" %} {% if calico_datastore == "kdd" %}
- name: ENABLED_CONTROLLERS - name: ENABLED_CONTROLLERS
value: node value: {{ calico_policy_controller_enabled_controllers_kdd }}
- name: DATASTORE_TYPE - name: DATASTORE_TYPE
value: kubernetes value: kubernetes
{% else %} {% else %}
- name: ENABLED_CONTROLLERS - name: ENABLED_CONTROLLERS
value: policy,namespace,serviceaccount,workloadendpoint,node value: {{ calico_policy_controller_enabled_controllers_etcd }}
- name: ETCD_ENDPOINTS - name: ETCD_ENDPOINTS
value: "{{ etcd_access_addresses }}" value: "{{ etcd_access_addresses }}"
- name: ETCD_CA_CERT_FILE - name: ETCD_CA_CERT_FILE