Releases: hetznercloud/hcloud-cloud-controller-manager
v1.21.0
Feature Highlights & Upgrade Notes
Load Balancer IPs set to Private IPs
If networking support is enabled, the load balancer IPs are now populated with the private IPs, unless the load-balancer.hetzner.cloud/disable-private-ingress
annotation is set to true
. Please make sure that you configured the annotation according to your needs, for example if you are using external-dns
.
Provided-By Label
We introduced a the label instance.hetzner.cloud/provided-by
, which will be automatically added to all new nodes. This label can have the values cloud
or robot
to distinguish between our products. We use this label in the csi-driver to ensure the daemonset is only running on cloud nodes. We recommend to add this label to your existing nodes with the appropriate value.
kubectl label node $CLOUD_NODE_NAME instance.hetzner.cloud/provided-by=cloud
kubectl label node $ROBOT_NODE_NAME instance.hetzner.cloud/provided-by=robot
Load Balancer IPMode Proxy
Kubernetes KEP-1860 added a new field to the Load Balancer Service Status that allows us to mark if the IP address we add should be considered as a Proxy (always send traffic here) and VIP (allow optimization by keeping the traffic in the cluster).
Previously Kubernetes considered all IPs as VIP, which caused issues when when the PROXY protocol was in use. We have previously recommended to use the annotation load-balancer.hetzner.cloud/hostname
to workaround this problem.
We now set the new field to Proxy
if the PROXY protocol is active so the issue should no longer appear. If you only added the load-balancer.hetzner.cloud/hostname
annotation for this problem, you can remove it after upgrading.
Further information:
Features
- service: Specify private ip for loadbalancer (#724)
- add support & tests for Kubernetes 1.31 (#747)
- helm: allow setting extra pod volumes via chart values (#744)
- instance: add label to distinguish servers from Cloud and Robot (#764)
- emit event when robot server name and node name mismatch (#773)
- load-balancer: Set IPMode to "Proxy" if load balancer is configured to use proxy protocol (#727) (#783)
- routes: emit warning if cluster cidr is misconfigured (#793)
- load-balancer: ignore nodes that don't use known provider IDs (#780)
- drop tests for kubernetes v1.27 and v1.28
Bug Fixes
- populate ingress private ip when disable-private-ingress is false (#715)
- wrong version logged on startup (#729)
- invalid characters in label instance-type of robot servers (#770)
- no events are emitted as broadcaster has no sink configured (#774)
Kubernetes Support
This version was tested with Kubernetes 1.29 - 1.31. Furthermore, we dropped v1.27 and v1.28 support.
v1.20.0
1.20.0 (2024-07-08)
Features
- add support & tests for Kubernetes 1.29 (#600) (e8fabda)
- add support & tests for Kubernetes 1.30 (#679) (0748b6e)
- drop tests for kubernetes v1.25 (#597) (58261ec)
- drop tests for kubernetes v1.26 (#680) (9c4be01)
- emit Kubernetes events for error conditions (#598) (e8f9199)
- helm,manifests: only specify container args instead of command (#691) (2ba4058)
- helm: allow setting affinity for deployment (#686) (1a8ea95)
- read HCLOUD_TOKEN from file (#652) (a4343b8)
Bug Fixes
v1.19.0
1.19.0 (2023-12-07)
Features
- chart: add daemonset and node selector (#537) (a94384f)
- config: stricter validation for settings
HCLOUD_LOAD_BALANCERS_ENABLED
,HCLOUD_METRICS_ENABLED
&HCLOUD_NETWORK_ROUTES_ENABLED
(#546) (335a2c9) - helm: remove "v" prefix from chart version (#565) (f11aa0d), closes #529
- load-balancer: handle planned targets exceedings max targets (#570) (8bb131f)
- remove unused variable NODE_NAME (#545) (a659408)
- robot: handle ratelimiting with constant backoff (#572) (2ddc201)
- support for Robot servers (#561) (65dea11)
v1.19.0-rc.0
1.19.0-rc.0 (2023-12-01)
Features
- chart: add daemonset and node selector (#537) (a94384f)
- config: stricter validation for settings
HCLOUD_LOAD_BALANCERS_ENABLED
,HCLOUD_METRICS_ENABLED
&HCLOUD_NETWORK_ROUTES_ENABLED
(#546) (335a2c9) - helm: remove "v" prefix from chart version (#565) (f11aa0d), closes #529
- load-balancer: handle planned targets exceedings max targets (#570) (8bb131f)
- remove unused variable NODE_NAME (#545) (a659408)
- robot: handle ratelimiting with constant backoff (#572) (2ddc201)
- support for Robot servers (#561) (65dea11)
v1.18.0
1.18.0 (2023-09-18)
Features
- build with Go 1.21 (#516) (7bf7e71)
- chart: configure additional tolerations (#518) (0d25cb6), closes #512
- chart: support running multiple replicas with leader election (4b18ee5)
- load-balancer: Add new node-selector annotation (#514) (db2e6dc)
- test against kubernetes v1.28 and drop v1.24 (#500) (3adf781)
v1.17.2
v1.17.1
v1.17.0
v1.16.0
v1.15.0
Affordable, sustainable & powerful! 🚀You can now get one of our Arm64 CAX servers to optimize your operations while minimizing your costs!
Discover Ampere’s efficient and robust Arm64 architecture and be ready to get blown away with its performance. 😎
Learn more: https://www.hetzner.com/news/arm64-cloud
What's Changed
- fix(deps): update kubernetes packages to v0.26.3 by @renovate in #404
- chore(deps): update golangci/golangci-lint docker tag to v1.52.0 by @renovate in #405
- feat(helm): env var config by @samcday in #406
- chore(chart): basic README by @samcday in #407
- fix(chart): README typo by @samcday in #409
- chore(deps): update golangci/golangci-lint docker tag to v1.52.1 by @renovate in #410
- chore(deps): update actions/stale action to v8 by @renovate in #411
- chore(deps): update golangci/golangci-lint docker tag to v1.52.2 by @renovate in #413
- refactor: Update & Fix golangci-lint by @apricote in #408
- feat: new dev/test environment by @samcday in #414
- fix(ci): run e2e tests on main by @samcday in #416
- feat(goreleaser): produce OCI manifest images by @samcday in #417
- feat: publish ARM container images by @apricote in #420
Full Changelog: v1.14.2...v1.15.0