426 Commits
Author SHA1 Message Date
Max Gautier 1011c240b4 downloads: split file and containers (#13581)
Splits the definitions into two dicts, while joining then for now to
preserve the downloads dict.

Update all consumers of the variables, which are roughly:
- manual includes of the download role (which will be removed in the
  short future)
- install tasks using the resolved 'dest' to find the artefacts

This will make further division of the downloads role easier.
2026-10-13 09:58:21 +00:00
Dasmat Hansda 38f82cdce9 refactor: unify inconsistent variables in apiserver endpoint (#13392) 2026-10-12 06:25:22 +00:00
ERIK d74d180c09 reset: unmount calico cgroup2 fs before deleting /run/calico (#13592)
Signed-off-by: bo.jiang <bo.jiang@daocloud.io>
2026-10-08 12:17:58 +00:00
MohammadReza d5190f6071 refactor: resolve ansible-core 2.19 TODOs now that 2.21 is the minimum (#13588) 2026-09-28 21:35:32 +00:00
Ali Afsharzadeh 49c7a478e1 Compare Calico pool CIDRs as networks (#13576)
The check compares the Calico IP pool CIDR with the inventory as
strings, so the same network in a different notation fails, for
example fd85:ee78:d8a6:202::1:0000/112 and fd85:ee78:d8a6:202::1:0/112.
Use ipaddr('net') on the two sides.

Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-09-26 07:28:27 +00:00
Max Gautier 23f8593cf5 download/calico_crds: use flat manifest path (#13522)
The additional directory is unnecessary.
2026-09-17 07:41:25 +00:00
Max Gautier 5af06acee1 fix: ansible 2.19: calico resources final evaluation (#13503)
The bgp changes are a bit verbose, because I chose to reproduce the
exact semantics of the current code, so that the manifest handed to
calicoctl does not contain unset fields (instead of just using defaults
value).

It would be more readable to just accept default value in the
manifests, but might be a problem if there is other writer of the same
Calico resources.
2026-09-15 08:55:22 +00:00
Max Gautier 3437dde4b9 fix: ansible 2.19: calico: felix config final evaluation (#13496) 2026-09-10 13:48:36 +00:00
Max Gautier 712d13bd48 fix/ansible 2.19: calico: no implicit conditionals (#13480) 2026-09-09 05:20:36 +00:00
Abhishek Kanyahal cf0e68ee98 Updates in the calico config and template to support disabling ipv4 pools during pure ipv6 deployment (#13225)
* #13157: Updates in the calico config and template to support disabling ipv4 pools during pure ipv6 deployment

Signed-off-by: root <kanyahal.abhishek@gmail.com>

* Updates in the calico config and template to support disabling ipv4 pools during pure ipv6 deployment

* Updates in the calico config and template to support disabling ipv4 pools during pure ipv6 deployment

---------

Signed-off-by: root <kanyahal.abhishek@gmail.com>
2026-09-03 13:10:27 +00:00
Mehrdad Biukian a369d66c43 fix(calico): make IPv6 pool validation actually run (#13450)
Three defects in the IPv6 branch of check.yml kept the IPv6 pool
assertion from ever executing:

1. 'alico_ipv6 is defined' - typo of calico_ipv6, so the set_fact
   was always skipped (Jinja2 treats the undefined var as False).
2. The set_fact stored the pool as calico_pool_conf, overwriting the
   IPv4 pool fact on dual-stack clusters, while the IPv6 assertion
   gated on calico_pool_ipv6_conf - a name that was never set.
3. The assertion body also read calico_pool_conf, so even with the
   gate fixed it would validate against the IPv4 pool's values.

Store the IPv6 pool as calico_pool_ipv6_conf, gate the set_fact on
the registered calico_ipv6 result, and make the assertion read the
IPv6 fact - mirroring the IPv4 pattern directly above.

Verified with ansible-playbook on mocked calicoctl output:
- old code: set_fact skipped, no validation (reproduces the report)
- new code: mismatched blockSize caught with a clear assertion msg
- matching config passes through unchanged

Signed-off-by: Mehrdad Biukian Naeini <mehrdadbiukian@gmail.com>
2026-09-03 10:32:21 +00:00
Nikhil Kumar bf077e7360 Replace injected Ansible fact variables in network_plugin role (#13382) 2026-08-16 14:24:17 +00:00
Ali Afsharzadeh e979e770f2 Fix calico api server permissions (#13101)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-03-17 16:19:50 +05:30
Ali Afsharzadeh b1e3816b2f Add calico-tier-getter RBAC (#13100)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2026-03-17 16:19:42 +05:30
Srishti Jaiswal 31c33015c4 Use calico crds.yaml for KDD CRDs and drop tarball artifacts (#12985) 2026-02-12 20:40:00 +05:30
Ali Afsharzadeh 31cce09fbc Check calico version in check mode (#12586)
Signed-off-by: Ali Afsharzadeh <afsharzadeh8@gmail.com>
2025-12-10 00:39:29 -08:00
Chris Ricker 2342d0cd57 Calico: populate kubernetes-services-endpoint for localhost LB (#12598)
When loadbalancer_apiserver_localhost is enabled, Calico falls back to the
Kubernetes service IP because the kubernetes-services-endpoint ConfigMap is
empty. CNI then fails to reach the API server even though an nginx proxy is
listening on localhost.

Update kube_apiserver_global_endpoint to always reference the localhost load
balancer (respecting the configured port) and populate the ConfigMap for both
eBPF and localhost LB modes.
2025-12-03 07:22:19 -08:00
Max Gautier 9975b5d525 Remove download support for old calico versions (#12724)
we no longer deploy those versions
2025-11-20 04:56:01 -08:00
Chris Ricker 47140083dc Update Calico apiserver RBAC for Kubernetes 1.33+ (#12654)
Add missing RBAC permissions for Calico apiserver to function correctly
with Kubernetes 1.33+

Changes:

1. Add K8s 1.33 ValidatingAdmissionPolicy resources to calico-webhook-reader
   - validatingadmissionpolicies
   - validatingadmissionpolicybindings

Kubernetes 1.33 introduced ValidatingAdmissionPolicy resources (KEP-3488)
that require explicit RBAC permissions. Without these changes, Calico
apiserver on k8s 1.33+ will not work and needless errors are logged
2025-11-14 00:23:38 -08:00
Takuya Murakami 8e401f94ea [calico] Add version 3.30.3 and make it default (#12523)
Signed-off-by: Takuya Murakami <murakami_da@nec.com>
2025-09-02 00:41:16 -07:00
mathgaming ce2ba28dec Fixed syntax error in _bgp_config dict (#12258) 2025-07-10 18:43:27 -07:00
ChengHao Yang fa880b6bcc Feat: add nftable mode in calico (#12255)
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2025-06-15 18:54:58 -07:00
Max Gautier 79fbfdf271 component_hash_update: support calico_crds (#12122)
- add support for "no_arch" downloads: arch-indendendant files such as
  YAML manifests, helm charts, etc.
- wire calico_crds with it.
2025-04-10 02:18:47 -07:00
Max Gautier f9a263090a Propagate v-less version everywhere 2025-03-05 16:18:39 +01:00
Boris a51e7dd07d refact ip stack (#11953) 2025-02-11 03:37:58 -08:00
Antoine Legrand 4373c1be1d Revert "Add support for ipv6 only cluster via "enable_ipv6only_stack_networks…" (#11941)
This reverts commit 76c0a3aa75.
2025-02-03 07:06:58 -08:00
Boris 76c0a3aa75 Add support for ipv6 only cluster via "enable_ipv6only_stack_networks" (#11831) 2025-01-27 04:15:22 -08:00
c-romeo 9008c40d0e fix Calico typha deployment issue: #11916 (#11917) 2025-01-23 01:05:01 -08:00
Max Gautier 2a7b50a016 calico: don't set calico-node cpu limits by default (#11914)
Upstream calico isn't doing that, and:
- this can cause throttling
- the cpu needed by calico is very cluster / workload dependent
- missing cpu limits will not starve other pods (unlike missing memory
  requests), because the kernel scheduler will still gives priority to
  other process in pods not exceeding their requests
2025-01-22 19:24:36 -08:00
Mohamed Omar Zaian 25d0380db7 [calico] Add version 3.29.1 and make it default (#11798) 2024-12-25 23:14:11 +01:00
Max Gautier 70c73f153b calico: stop recording calico_kubelet_name (#11770)
The variable is not used anymore since 29ea790c30.
Besides, this tasks fails on dual stack installation.
2024-12-06 02:09:59 +00:00
ChengHao Yang 38cd05c503 Refactor: simpify cloud_provider is defined condition
For this change, `cloud_provider` change the default value to empty
string.

Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2024-11-05 08:32:39 +08:00
ChengHao Yang 437026f514 Cleanup: remove all cloud_provider related tasks & files
Signed-off-by: ChengHao Yang <17496418+tico88612@users.noreply.github.com>
2024-11-05 00:51:00 +08:00
kyrie d0f1d520ec update calico template (#11634)
Signed-off-by: KubeKyrie <shaolong.qin@daocloud.io>
2024-10-31 02:21:26 +00:00
Erwan Miran 8c3b2851f6 feat(calico): add support for numAllowedLocalASNumbers on bgppeers per node definition (#11570) 2024-09-28 10:06:01 +01:00
Max Gautier 2ec1c93897 Test group membership with group_names
Testing for group membership with group names makes Kubespray more
tolerant towards the structure of the inventory.
Where 'inventory_hostname in groups["some_group"] would fail if
"some_group" is not defined, '"some_group" in group_names' would not.
2024-09-21 14:09:09 +02:00
Bogdan Sass 4b324cb0f0 Rename master to control plane - non-breaking changes only (#11394)
K8s is moving away from the "master" terminology, so kubespray should follow the same naming conventions. See https://github.com/kubernetes/community/blob/65d886bb3029e73d9729e1d4f27422a7985233ed/sig-architecture/naming/recommendations/001-master-control-plane.md
2024-09-06 07:56:19 +01:00
Ehsan Golpayegani 924a979955 Calico v3.28.[0-1] checksums and change calico default version (#11234)
* make calico api server manifest backward compatible with version older than 3.27.3

Add 3.28.1 checksums
Add 3.28.0 checksums
Change default version to 3.27.3

* change default calico version to 3.28.1

* Set mount type to DirectoryOrCreate for hostPath needed by Calico
2024-08-29 12:10:28 +01:00
Vlad Korolev 9a7b021eb8 Do not use ‘yes/no’ for boolean values (#11472)
Consistent boolean values in ansible playbooks
2024-08-28 06:30:56 +01:00
Bas 8f5f75211f Improving yamllint configuration (#11389)
Signed-off-by: Bas Meijer <bas.meijer@enexis.nl>
2024-07-25 18:42:20 -07:00
Ehsan Golpayegani 0c8d29462d make sure peers is defined. (#11259)
* make sure peers is defined.

* Update peer_with_router.yml
2024-06-04 10:02:23 -07:00
Max Gautier d50f61eae5 pre-commit: apply autofixes hooks and fix the rest manually
- markdownlint (manual fix)
- end-of-file-fixer
- requirements-txt-fixer
- trailing-whitespace
2024-05-28 13:26:44 +02:00
MatthieuFin a01d0c047a fix: 🐛 patch calico node to avoid vxlan tunnel drop (#11097)
if node.projectcalico.org already existe patch node to set asNumber
instead of apply resource to prevent remove of existing fields feed by
calico-node pods

✅ Closes: 11096
2024-05-05 20:30:59 -07:00
Lihai Tu 245454855d Add additional checking for calico rr cluster_id (#11112)
Signed-off-by: tu1h <lihai.tu@daocloud.io>
2024-04-30 03:46:30 -07:00
RaSerge a7f98116ca fix: updating the calico-crds (#11089) 2024-04-30 00:15:09 -07:00
MatthieuFin 4db3e2c3cf fix: 🐛 calico-cni-plugin missing RBAC (#11077)
To configure node asNumber for per node peering service account
calico-cni-plugin need nodes/status update rights

✅ Closes: 11076
2024-04-22 10:09:37 -07:00
MatthieuFin 3d19e744f0 feat(calico): add support filters on bgppeers per node definition (#11079)
Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
2024-04-21 19:35:34 -07:00
Robert Volkmann 3067e565c0 Fix calico host local ipam (#11022)
* Prevent upgrade-ipam for host-local IPAM

Otherwise, the init container upgrade-ipam would clear the state of the host-local plugin, potentially causing it to reassign IPs that are still in use.

* USE_POD_CIDR required for host-local

https://github.com/projectcalico/calico/blob/4efd1bfd914b0c59086531c8c5a5ac5b593c18b1/charts/calico/templates/calico-node.yaml#L279
https://github.com/projectcalico/calico/blob/4efd1bfd914b0c59086531c8c5a5ac5b593c18b1/charts/calico/templates/calico-typha.yaml#L133
2024-04-03 00:52:31 -07:00
Olivier Levitt 29ea790c30 Fix calico-node in etcd mode (#10438)
* Calico : add ETCD endpoints to install-cni container

* Calico : remove nodename from configmap in etcd mode
2023-12-19 04:09:06 +01:00
Max Gautier 471326f458 Remove PodSecurityPolicy support and references (#10723)
This is removed from kubernetes since 1.25, time to cut some dead code.
2023-12-18 14:13:43 +01:00