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.
v10.0.6 (2025-09-05)
Bugfixes
k8s-login run in root CA rotation phase 1 works again with a Vault token only having the
yaook/orchestrator
policy. (regression of v10.0.0)Note
Action needed
To activate the fix the Vault orchestrator policy needs to be updated.
VAULT_TOKEN=$vault_root_token ./managed-k8s/tools/vault/init.sh
_ (!2098)
Changes in the Documentation
Changelogs of previous releases have been dropped. These are still accessible when switching to the respective version. From now on, changelogs for each version will be maintained separately and not continously. (!2098)
Misc
v10.0.5 (2025-08-26)
New Features
The following modules of yk8s.k8s-service-layer.prometheus.internet_probe_targets.*.module now do also accept the HTTP status code
400
:http_api_v6
http_api_insecure_v6
http_api
http_api_insecure
. (!2053)
Bugfixes
Allow to configure IPv6-specific modules for blackbox-exporter probes in yk8s.k8s-service-layer.prometheus.internet_probe_targets.*.module. Although these modules have been introduced in v9.1.0, they could not be configured until now. (!2053)
Fixed the type of yk8s.k8s-service-layer.prometheus.thanos_objectstorage_container_name (regression of v10.0.0) (!2053)
Fixed the type of yk8s.k8s-service-layer.etcd-backup.file_prefix (regression of v10.0.0) (!2053)
Fixed the type of yk8s.infra.cluster_name (regression of v10.0.0) (!2053)
Misc
v10.0.4 (2025-08-19)
Changed functionality
The Thanos image repository has been set to
bitnamilegacy/thanos
due to recent changes by the Bitnami offering. (!1990)
v10.0.3 (2025-08-13)
Changed functionality
The project has been renamed from YAOOK/K8s to TAROOK. The repository location has been updated to reflect this change. (!1870)
Bugfixes
The release migration script now stages (and commits) its updates to a cluster repo’s gitignore. (!1999)
The release migration script does not output expected and misleading
git apply
errors anymore. (!1999)
Other Tasks
v10.0.2 (2025-08-05)
Bugfixes
Cluster setup for IPv6-only clusters has been fixed. (!1977)
v10.0.1 (2025-07-31)
Bugfixes
Fixed a bug in the
vault_v1
Ansible role that let the role fail when the value of yk8s.k8s-service-layer.vault.backup_approle_path did not end with a forward slash. With release v10.0.0 this failure became unavoidable because since then the config option’s value must not end with a slash anymore. (!1974)yk8s.k8s-service-layer.vault.s3_config_file is not forced to be set anymore. (regression of v10.0.0) (!1974)
v10.0.0 (2025-07-26)
Breaking changes
The VIP port IP address and the gateway port IDs are now added to the ch-k8s-lbaas configuration (
./k8s-supplements/ansible/roles/ch-k8s-lbaas-controller/templates/controller-config.toml
) which is required as we re-introduced OpenStack security groups which are needed in OpenStack environments which use OVN.From now on, ch-k8s-lbaas must know the OpenStack port id for its configuration. The port id is added to the hosts file by Terraform automatically. Terraform therefore has to be triggered once and the ch-k8s-lbaas setup must be updated.
The migrate-to-release.sh script takes care of all the necessary steps:
$ bash managed-k8s/actions/migrate-to-release.sh
Attention
Note that ch-k8s-lbaas’ config must be updated immediately after Terraform updated the harbour infrastructure in order to not interrupt the cluster’s internet connectivity. Therefore, if you have yk8s.ch-k8s-lbaas.enabled set, make sure the migration script completes both actions in quick succession.
_ (!1250)
The LCM now supports OVN-based OpenStack environments. That required to reintroduce OpenStack security groups and to enable port security on the gateway ports.
Furthermore, if yk8s.ch-k8s-lbaas.enabled is enabled, yk8s.ch-k8s-lbaas.version must be set to
0.8.0
or higher.Hint
Note that it is recommended to not explicitly pin ch-k8s-lbaas to a specific version because then it is automatically updated once support for a new version has been added.
There may be connectivity issues with load-balanced services managed by ch-k8s-lbaas starting with the completion of the Terraform stage until a rollout fully finished. This is because port security on the gateway ports has been reenabled, but the ch-k8s-lbaas agents are not aware about that, yet. If yk8s.ch-k8s-lbaas.enabled is set to
true
, it is highly recommended to update its version in advance to the Terraform stage to reduce impact.The migrate-to-release.sh script takes care of all the necessary steps:
$ bash managed-k8s/actions/migrate-to-release.sh
A full rollout is recommended but not mandatory:
$ bash managed-k8s/actions/apply-all.sh
. (!1250)
The following legacy options have been removed as they had no effect in recent versions, aren’t documented well and it is currently not intended to support the use cases they once served:
yk8s.miscellaneous.docker_insecure_registries
yk8s.miscellaneous.container_mirror_default_host
yk8s.miscellaneous.configure_mirror_ca
Mirrors can be configured via yk8s.containerd.mirrors now. (!1613)
The option
yk8s.miscellaneous.container_mirrors
has been removed. Mirrors can be configured via yk8s.containerd.mirrors now. (!1613)A new envrc layout for YAOOK/K8s has been added.
Attention
Action required
Run the migration script to ensure the layout is used
./managed-k8s/actions/migrate-to-release.sh
. (!1694)
The obsolete option
yk8s.load-balancing.priorities
has been removed. (!1717)The obsolete option
yk8s.miscellaneous.wireguard_on_workers
has been removed. (!1717)The options to configure a wireguard endpoint directly under yk8s.wireguard have been removed. Please use yk8s.wireguard.endpoints instead. (!1717)
The yk8s.ipsec.remote_private_addrs config option expects a list now instead of a non-empty string previously.
Attention
Action required
If you use this option in your config, you must convert its value.
_ (!1731)
yk8s.k8s-service-layer.vault.s3_config_file defaults to
null
now. (!1731)The following config options now accept a Nix path instead of a file path string (e.g.
"path/file"
→./path/file
)._ (!1731)
The yk8s.miscellaneous.no_proxy config option expects a list now instead of a comma separated list (string) previously.
Attention
Action required
If you use this option in your config, you must convert its value.
_ (!1731)
The release migration script has been renamed to better reflect its actions. (!1738)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 66.7.1 to 70.0.2 (!1739)
Since we recommend that
etc/admin.conf
should not be checked into version control, it has been added to the LCM managed gitignore rules.If your automation relies on
etc/admin.conf
being checked into version control you may override the LCM’s gitignore rules.Attention
Action required
You must run the migration script to ensure that the cluster repo’s
.gitignore
is updated../managed-k8s/actions/migrate-cluster-repo.sh # optionally, if you already committed etc/admin.conf git rm --cached etc/admin.conf
_ (!1787)
Running the release migration script now inserts and updates the LCM’s gitignore rules in the cluster repo’s gitignore file. You may override them if needed.
It is recommended to apply the cluster repo’s gitignore rules to its git index with every major release. The following will remove any committed but gitignored file from version control:
git ls-files --ignored --cached --exclude-from=.gitignore -z \ | xargs --no-run-if-empty --null git rm --cached -r
_ (!1789)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 15.14.1 to 16.0.2 (!1798)
The option
yk8s.kubernetes.network.plugin
has been removed. Use yk8s.kubernetes.network.calico.enabled instead. (!1836)The option
yk8s.terraform.prevent_disruption
has been removed. Preventing disruption is now handled by a lock file in the Terraform state directory. (!1841)Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 70.10.0 to 72.0.0 (!1846)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 72.9.1 to 73.1.0 (!1881)
The option
yk8s.kubernetes.apiserver.audit_logs.custom_policy
has been removed. Use yk8s.kubernetes.apiserver.audit_logs.policy instead. (!1896)Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 9.8.0 to 11.0.0 (!1903)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 16.0.7 to 17.2.0 (!1908)
New Features
The feature to configure mirrors for containerd has been re-added. Mirrors can be configured via yk8s.containerd.mirrors now. (!1613)
Support for Kubernetes v1.32 has been added. (!1880)
A new env var
TAROOK_NIX_FLAGS
has been introduced: Behavior-altering variables.It can be used to supply additional flags to the
nix build
process of update-inventory.sh. (!1898)If yk8s.ch-k8s-lbaas.enabled is set to
true
, its keepalived VRRP instance is grouped with the VRRP instances of the VIP and VIP_v6 to ensure all instances are in consistent states. (!1916)
Changed functionality
The Wireguard MTU is now conditionally set on the server and on the client side. It is clipped to a maximum of 1492 which is the maximum of a usual DSL connection.
It is recommended to update the Wireguard client templates by executing:
$ AFLAGS="--diff -t wireguard" bash managed-k8s/actions/apply-prepare-gw.sh
. (!1250)
The keepalived peering mechanism has been changed to peer frontend nodes directly via unicast instead of multicast. For single-frontend-node setups, it automatically falls back to multicast as otherwise keepalived goes into an error state.
It is recommended to update its configuration.
The migrate-to-release.sh script takes care of all the necessary steps:
$ bash managed-k8s/actions/migrate-to-release.sh
. (!1250)
The variable
on_openstack
is obsolete. If you’re providing your own hosts file for a bare-metal cluster, you may remove the variable from it. (!1718)The types of almost all config options have been refined to be more strict (no additional action necessary). (!1731)
All config options that accept port numbers emit a warning for port 0. (!1731)
Config options that accept a list of both IPv4 and IPv6 items now do ignore items of any IP family that is disabled so that they are not rendered into the Ansible inventory. (!1731)
The yk8s.load-balancing.deprecated_nodeport_lb_test_port config option rejects port 0 now. (!1731)
Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 9.3.0 to 9.4.0 (!1746)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator/ from 0.20250227.0 to 0.20250324.1 (!1766)
Updated default version of helm chart rook-ceph of https://github.com/rook/rook from v1.16.5 to v1.16.6 (!1773)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 70.0.2 to 70.3.0 (!1780)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 15.13.2 to 15.14.0 (!1783)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 70.3.0 to 70.4.1 (!1785)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 15.14.0 to 15.14.1 (!1786)
We are now using packages from NixOS stable (!1791)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 70.4.1 to 70.4.2 (!1794)
Updated default version of helm chart dcgm-exporter of https://github.com/nvidia/dcgm-exporter from 4.0.4 to 4.1.0 (!1797)
Updated default version of helm chart prometheus-adapter of https://github.com/prometheus-community/helm-charts from 4.13.0 to 4.14.1 (!1799)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 16.0.2 to 16.0.3 (!1800)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 70.4.2 to 70.5.0 (!1814)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 70.5.0 to 70.7.0 (!1819)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 16.0.3 to 16.0.4 (!1823)
Updated default version of helm chart cert-manager of https://github.com/cert-manager/cert-manager from v1.17.1 to v1.17.2 (!1825)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 70.7.0 to 70.8.0 (!1826)
Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 9.4.0 to 9.5.0 (!1827)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 70.8.0 to 70.10.0 (!1833)
The option
yk8s.kubernetes.storage.cinder_enable_topology
has been moved to yk8s.openstack.cinder_enable_topology (!1834)The option
yk8s.kubernetes.storage.rook_enabled
has been moved to yk8s.k8s-service-layer.rook.enabled (!1834)The default value for yk8s.k8s-service-layer.ingress.replica_count has been increased to
2
in order to reduce the chance of interruptions for accepting new connections during Kubernetes upgrades and the like. (!1835)Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator from 0.20250324.1 to 0.20250429.0 (!1837)
Updated default version of helm chart ingress-nginx of https://github.com/kubernetes/ingress-nginx from 4.12.1 to 4.12.2 (!1843)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 16.0.4 to 16.0.5 (!1850)
curl
has been moved from the interactive dependency group to the default dependency group as it is required for managing the Terraform state with Gitlab as backend. (!1851)Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 72.0.0 to 72.1.0 (!1853)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 16.0.5 to 16.0.6 (!1854)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 72.1.0 to 72.1.1 (!1855)
Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 9.5.0 to 9.6.0 (!1857)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator from 0.20250429.0 to 0.20250507.0 (!1858)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 72.1.1 to 72.3.0 (!1859)
Updated default version of helm chart dcgm-exporter of https://github.com/nvidia/dcgm-exporter from 4.1.0 to 4.1.1 (!1863)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 16.0.6 to 16.0.7 (!1864)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 72.3.0 to 72.5.2 (!1867)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 72.5.2 to 72.6.2 (!1869)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 72.6.2 to 72.9.1 (!1873)
Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 9.6.0 to 9.8.0 (!1874)
The
nixpkgs.url
has been changed to 25.05. (!1880)The default for yk8s.kubernetes.version has been bumped to v1.32.
Note
It is important, that a cluster’s configuration reflects the deployed Kubernetes version.
Take a look at the following document for upgrade instructions: Upgrading Kubernetes. (!1880)
Updated default version of helm chart dcgm-exporter of https://github.com/nvidia/dcgm-exporter from 4.1.1 to 4.1.3 (!1883)
Updated default version of helm chart ingress-nginx of https://github.com/kubernetes/ingress-nginx from 4.12.2 to 4.12.3 (!1884)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator from 0.20250507.0 to 0.20250605.2 (!1885)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 73.1.0 to 73.2.0 (!1886)
Updated default version of helm chart cert-manager of https://github.com/cert-manager/cert-manager from v1.17.2 to v1.18.0 (!1891)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator from 0.20250605.2 to 0.20250612.0 (!1893)
Updated default version of helm chart kube-prometheus-stack of https://github.com/prometheus-community/helm-charts from 73.2.0 to 73.2.3 (!1900)
Updated default version of helm chart cert-manager of https://github.com/cert-manager/cert-manager from v1.18.0 to v1.18.1 (!1904)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator from 0.20250612.0 to 0.20250626.2 (!1906)
Updated default version of helm chart cert-manager of https://github.com/cert-manager/cert-manager from v1.18.1 to v1.18.2 (!1911)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator from 0.20250626.2 to 0.20250703.1 (!1913)
Updated default version of helm chart ingress-nginx of https://github.com/kubernetes/ingress-nginx from 4.12.3 to 4.13.0 (!1917)
The default Kubernetes version in the configuration template has been bumped to
1.32.5
. (!1924)Updated default version of helm chart dcgm-exporter of https://github.com/nvidia/dcgm-exporter from 4.1.3 to 4.2.0 (!1929)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator/stable/ from 0.20250703.1 to 0.20250710.0 (!1930)
Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 11.0.0 to 11.0.1 (!1933)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 17.2.0 to 17.2.1 (!1939)
Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 11.0.1 to 11.1.0 (!1941)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator from 0.20250710.0 to 0.20250717.0 (!1942)
Updated default version of helm chart prometheus-adapter of https://github.com/prometheus-community/helm-charts from 4.14.1 to 4.14.2 (!1946)
Updated default version of helm chart prometheus-blackbox-exporter of https://github.com/prometheus-community/helm-charts from 11.1.0 to 11.1.1 (!1947)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 17.2.1 to 17.2.2 (!1951)
Updated default version of helm chart thanos of https://github.com/bitnami/charts from 17.2.2 to 17.2.3 (!1954)
Updated default version of helm chart etcdbackup of https://charts.yaook.cloud/operator from 0.20250717.0 to 0.20250724.0 (!1955)
Bugfixes
Helm invocations have been decoupled from the local Helm state. (!644, !1894)
The version selection dropup in the documentation’s sidebar is now properly positioned above the search bar and entries do not expand off-screen anymore. (!1776)
We fixed a bug where the yk8s.k8s-service-layer.rook.scheduling_key wasn’t properly used for nodeAffinity. (!1796)
The
priorityClassName
system-node-critical
is now applied to the csi-cinder-plugin again to prevent its Pods from getting evicted. (!1824)The mutual exclusiveness of the config options yk8s.kubernetes.is_gpu_cluster and yk8s.kubernetes.virtualize_gpu is now enforced. (!1887)
A bug in wg-up.sh has been fixed that caused
wg_private_key_command
to fail if it contained environment variables. See VPN Configuration for an example on how to use it with pass. (!1899)The
nopreempt
setting of keepalived for the VRRP instances has been fixed by setting the initial states toBACKUP
. (!1916)OpenStack security groups to allow VRRP traffic have been added. (!1916)
Changes in the Documentation
A note has been added which clearifies that a ready-to-use container runtime is needed if one wants to make use of the development Vault setup. (!1777)
The documentation about expected minimal changes to the environment has been improved. (!1777)
Releases in the sidebar are now sorted such that the recent versions appear on top. (!1778)
A part of documentation that is specific to the config options in yk8s.terraform has been moved back from yk8s.openstack. The documentation of both config sections received minor corrections. (!1795)
Any config option in the documentation is now mentioned with its fully qualified name in Nix dot notation. Additionally, those mentions link directly to the description of the particular config option.
A few previously renamed or replaced config options were fixed as well. (!1801)
All mentions of the legacy TOML based configuration were removed as it has been replaced with Nix since release v9.0.0. (!1801)
Corrected the docs for yk8s.k8s-service-layer.etcd-backup, which previously stated to use
endpoint_cacrt
, but now correctly states to usecertRef
. (!1918)The guide on how to rotate OpenStack credentials has been updated. (!1928)
The root of our documentation now redirects to
./devel
using HTTP redirect instead of HTML meta refresh. (!1940)The description of migrate-to-release.sh has been updated. (!1958, !1960)
Deprecations and Removals
The
yk8s.k8s-service-layer.prometheus.thanos_objectstorage_config_path
config option is removed. Please use yk8s.k8s-service-layer.prometheus.thanos_objectstorage_config_file instead. (!1731)The yk8s.node-scheduling.scheduling_key_prefix config option is deprecated. Please substitute it with a let expression (see example below).
- config.yk8s.node-scheduling = { - scheduling_key_prefix = "foo.example.com"; - labels = { - node-a = ["${config.yk8s.node-scheduling.scheduling_key_prefix}/label=value"]; - }; - }; + config.yk8s.node-scheduling = let + scheduling_key_prefix = "foo.example.com"; + in { + labels = { + node-a = ["${scheduling_key_prefix}/label=value"]; + }; + };
_ (!1731)
Support for Kubernetes v1.29 has been dropped. (!1890)
The feature to manage IPSec tunnels (yk8s.ipsec) is deprecated and support for it will be dropped in a release after v11.0.0. (!1950)
Other Tasks
!1497, !1731, !1745, !1749, !1751, !1757, !1774, !1779, !1788, !1793, !1802, !1817, !1820, !1828, !1832, !1838, !1844, !1847, !1860, !1865, !1866, !1872, !1876, !1877, !1878, !1892, !1897, !1901, !1916, !1919, !1922, !1923, !1925, !1926, !1932, !1948, !1952, !1961
A fixture for unit testing nix code has been added along with the unit-tests CI stage and test-nix-yk8s CI job for running these unit tests. (!1731)