Repository navigation
Upgrade hcloud-cloud-controller-manager following Hetzner's notice. #2192
|
The mail received from Hetzner: We would like to inform you that you must update your hcloud-cloud-controller-manager by 30 June 2026, at the latest.
What should you do?
Please update your hcloud-cloud-controller-manager to the latest available version, or at least to v1.30.1, to ensure uninterrupted operation starting 1 July 2026.
Why is an update required?
We are discontinuing support for the "datacenter" API property in favor of "location" for Primary IPs and Servers (see changelog: https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters).
This change affects all existing installations of the hcloud-cloud-controller-manager that are using a version older than v1.30.1. Once the API change takes effect, the controller will continue to attempt to access the deprecated "datacenter" property. This will cause the controller to crash within a few minutes.
In this state, the hcloud-cloud-controller-manager can no longer correctly initialize new Kubernetes nodes, remove nodes whose underlying server no longer exists from the cluster, or apply changes to Load Balancer configurations via Kubernetes service objects.So my question is, what is the recommended / correct way to upgrade the For what it's worth: I am currently on version │ Error: Provider produced invalid plan
│
│ Provider "provider[\"registry.opentofu.org/hetznercloud/hcloud\"]" planned
│ an invalid value for
│ module.kube-hetzner.hcloud_load_balancer_network.cluster[0].ip: planned
│ value cty.UnknownVal(cty.String) does not match config value
│ cty.StringVal("10.255.0.1") nor prior value cty.StringVal("10.255.0.1"). |
Replies: 1 comment 1 reply
|
I just went through this upgrade (2.16.0 -> 2.19.3, ARM control plane cax11 nodes, Flannel CNI, Traefik, cluster autoscaler). Here's everything that broke and how I fixed it. It's a state conflict due to subnet change between module versions. The module changed the LB network subnet. The old LB attachment has IP 10.255.0.1 (on the 10.255.0.0/16 subnet), but the new module wants to place the LB on the agent subnet 10.0.0.0/16. The provider cannot reconcile this. What I did:Caution This causes downtime, plan accordingly.
Your LB might not work properly after this because of the missing targets. Run this on your cluster: kubectl rollout restart deployment/hcloud-cloud-controller-manager -n kube-systemThe new CCM pod will pick up the Traefik service annotations and sync the LB targets. For me traffic was restored immediately (got a notification from uptimerobot).
|
I just went through this upgrade (2.16.0 -> 2.19.3, ARM control plane cax11 nodes, Flannel CNI, Traefik, cluster autoscaler). Here's everything that broke and how I fixed it.
It's a state conflict due to subnet change between module versions. The module changed the LB network subnet. The old LB attachment has IP 10.255.0.1 (on the 10.255.0.0/16 subnet), but the new module wants to place the LB on the agent subnet 10.0.0.0/16. The provider cannot reconcile this.
What I did:
Caution
This causes downtime, plan accordingly.