Releasenotes
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project will adhere to Semantic Versioning.
We use towncrier for the generation of our release notes file.
Information about unreleased changes can be found here.
General information about release upgrades are documented at How to Upgrade to a new TAROOK release.
v15.0.0 (2026-10-19)
Breaking Changes
Calico is now deployed in eBPF mode. For existing deployments running in iptables, ipvs or nftables mode, a migration is necessary. The migration is disruptive.
Run the following to perform the migration:
Important
When performing a release migration (see How to Upgrade to a new TAROOK release), the Calico migration to the eBPF dataplane must be executed before running the apply-all action.
Important
During the migration, the default
FelixConfigurationwill be recreated which removes any manually added configuration. Custom configuration of theFelixConfigurationmust be handled via Calico’s helm values as the tigera-operator refuses to continue managing it if it detects manual changes.$ MANAGED_K8S_RELEASE_THE_KRAKEN=true \ ./managed-k8s/actions/apply-k8s-supplements.sh install-calico.yaml
The option
yk8s.state_directoryhas been removed, so the assignment must be removed fromflake.nix. The migration script will try to handle that and in case of failure provide the manual migration steps. (!2582)Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 84.5.0 to 91.9.0 (!2642, !2675)
New Features
The helm chart for nvidia-dcgm-exporter can now be configured with arbitrary values through yk8s.k8s-service-layer.prometheus.nvidia_dcgm_exporter.helm.values. (!1501)
The helm chart for blackbox-exporter can now be configured with arbitrary values through yk8s.k8s-service-layer.prometheus.blackbox_exporter.helm.values. (!1501)
The helm chart for Thanos can now be configured with arbitrary values through yk8s.k8s-service-layer.prometheus.thanos.helm.values. (!1501)
The helm chart for prometheus-adapter can now be configured with arbitrary values through yk8s.k8s-service-layer.prometheus.prometheus_adapter.helm.values. (!1501)
The helm chart for kube-prometheus-stack can now be configured with arbitrary values through yk8s.k8s-service-layer.prometheus.helm.values. (!1501)
Support for Debian 13 (Trixie) for gateway nodes in clusters running on Openstack or Proxmox has been added. The BIRD setup has been made compatible with version 3. (!2477)
The default for yk8s.kubernetes.network.bgp_announce_service_ips has been changed from
falsetotruesuch that routes to the Kubernetes Service IP range are announced to gateway nodes by default. (!2477)Envoy Gateway can now be installed as a supplement.
To do so, set yk8s.k8s-service-layer.envoy-gateway.enabled and run:
$ ./managed-k8s/actions/apply-k8s-supplements.sh install-envoy-gateway.yaml
Note
If you’ve previously used Gateway API with Tigera, this change is disruptive and you’ll need to provide
MANAGED_K8S_RELEASE_THE_KRAKEN=true.Important
The migration may take several (5-10) minutes during which workload is not reachable via its
Gatewayobject.Important
Existing
Gatewayobjects may end up with a different external IP address after the migration. If you want to keep the address, manual steps are necessary that depend on the LBaaS solution in use and are not covered here.Important
The
GatewayClasstigera-gateway-classmay be lost during the migration. If so, existingGatewayobjects must be adapted to reference the newly createdenvoy-gatewayGatewayClass.kube-proxy is now disabled by default since Calico is configured to use the eBPF dataplane mode. It can be reenabled via yk8s.kubernetes.network.kube_proxy.enabled.
Warning
kube-proxy is known to interfer with Calico running in eBPF dataplane mode.
update-inventory.sh now prints used Nix versions to make debugging easier. (!2655)
Changed Functionality
The CI/CD pipeline now uses Debian 13 images for gateway nodes. (!2477)
Since Tarook supports Gateway API (via Envoy), cert-manager’s integration for it will be enabled alongside by default. (!2493, !2696)
Openstack anti affinity groups can now be configured for any node, not just workers. (!2607)
The Calico network MTU for OpenStack has been reduced by the VXLAN overhead to ensure NodePort traffic can be forward between nodes without packet fragmentation. (!2641)
Support for
tlsConfigblocks in kube-prometheus-stack Helm chart >= v90.0.0 has been enabled. (!2643)The
sntrup761x25519-sha512post-quantum key exchange algorithm for SSH server has been enabled. (!2650)Reformatting of the containerd and nvidia-cude-driver apt-gpg-key to enable Ubuntu 26.04 LTS support. (!2657)
The CI/CD pipeline now uses Ubuntu 22.04 LTS, Ubuntu 24.04 LTS and Ubuntu 26.04 LTS images for master and worker nodes. (!2657)
Dependencies
Updated default version of helm chart tigera-operator of https://github.com/projectcalico/calico from v3.31.5 to v3.32.2.
Warning
Starting with v3.32.0 custom NetworkPolicies are introduced by the tigera-operator which prevent scraping of metrics of calico-kube-controllers by default. A workaround has been implemented. Please ensure a full rollout of apply-k8s-supplements.sh is done.
The default version of yk8s.containerd.version has been bumped from 2.1.5 to 2.3.5. (!2527, !2654)
Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 11.15.0 to 11.18.0 (!2542, !2593, !2623)
The Ansible Galaxy collection ansible.posix has been updated from 2.2.0 to 2.2.2 (!2544, !2557)
!2549, !2556, !2566, !2580, !2590, !2600, !2604, !2612, !2613, !2622, !2625, !2653
The Ansible Galaxy collection kubernetes.core has been updated from 6.4.0 to 6.6.0 (!2552, !2647)
Introduced automated release notes for Ansible Galaxy collection updates. (!2562)
Release notes for renovate updates of yk8s.containerd.version and yk8s.kubernetes.version now include a reference to the configuration options. (!2562)
The Ansible Galaxy collection community.general has been updated from 13.1.0 to 13.5.0 (!2565, !2603, !2632, !2679)
Updated default version of helm chart dcgm-exporter of https://github.com/nvidia/dcgm-exporter from 4.8.2 to 4.8.3 (!2570)
The default version of yk8s.kubernetes.version has been bumped from v1.36.2 to v1.36.4. (!2587, !2610)
Updated default version of helm chart openstack-cloud-controller-manager of https://github.com/kubernetes/cloud-provider-openstack from 2.36.0 to 2.36.5 (!2589, !2619, !2631, !2635)
Updated default version of helm chart openstack-cinder-csi of https://github.com/kubernetes/cloud-provider-openstack from 2.36.0 to 2.36.5 (!2595, !2597, !2629, !2633, !2634)
Updated default version of helm chart cert-manager of https://github.com/cert-manager/cert-manager from v1.20.3 to v1.20.4 (!2648)
The Ansible Galaxy collection devsec.hardening has been updated from 10.6.0 to 11.0.0 (!2677)
Bugfixes
The git protocol is now used for Flake inputs in order to avoid GitHub API rate limits. (!2551, !2608)
A bug has been fixed that caused the bootstrap role to fail if an interface contained a dot (e.g.
bond1.1234) (!2554)Fixed the error handling of the SSH user detection so that failure is handled gracefully.
The error message now includes failure details. (!2568)
The apply-prepare-gw.sh action does not fail anymore if yk8s.wireguard.enabled is set to
false. (!2569)Fixed incorrect config warnings for memory request and limits. (!2571)
The destroy.sh action now ensures that OpenStack volumes are detached before attempting to delete them. (!2572)
A bug has been fixed that didn’t allow updates in the Calico settings to apply. (!2577)
Fixed invalid Terraform JSON syntax for OpenStack anti-affinity groups, which caused apply-terraform.sh to fail when yk8s.openstack.nodes.<name>.anti_affinity_group was set. (!2607)
A rollout now fails if not all calico-apiservers get ready. (!2626)
Changes in the Documentation
A guideline for writing comments has been added to the Coding Guide. (!2581)
Add an FAQ entry for
fopen: Permission deniedwhen AppArmor blockswg-up.sh. (!2676)
Deprecations and Removals
Removed support for IPSec after it has been deprecated since release v10.0.0.
Attention
Potential action required
In case you still have IPSec enabled (
config.yk8s.ipsec.enabled = true), you need to undeploy it before upgrading to this release.$ edit config/default.nix # set `config.yk8s.ipsec.enabled = false` $ VAULT_TOKEN=${vault_root_token:?} ./managed-k8s/actions/apply-prepare-gw.sh ...... $ edit config/default.nix # remove `config.yk8s.ipsec.*` $
_ (!2382)
The option
yk8s.kubernetes.network.calico.values_file_pathhas been removed. Please use yk8s.kubernetes.network.calico.helm.values instead. (!2577)