Changelog
June 18, 2026 · View on GitHub
v1.33.0
Changed
Renamed HCLOUD_SERVER_CACHE_TTL to HCLOUD_SERVER_CACHE_MAX_AGE. The server cache lifetime is now configured via HCLOUD_SERVER_CACHE_MAX_AGE (default 10s). Individual controllers may override this default for specific lookups — for example, the routes controller uses a longer max age. Action required: if you set HCLOUD_SERVER_CACHE_TTL, switch to HCLOUD_SERVER_CACHE_MAX_AGE; the old variable is no longer recognized.
Removed
Removed the hcops/AllServersCache.* operation metrics. The legacy AllServersCache was replaced by the shared server cache, so the following cloud_controller_manager_operations_total series labeled op="hcops/AllServersCache.*" are no longer emitted:
hcops/AllServersCache.ByIDhcops/AllServersCache.ByNamehcops/AllServersCache.ByPrivateIPhcops/AllServersCache.getCachehcops/AllServersCache.refreshCache
They are superseded by the new server cache metric cloud_controller_manager_server_cache_requests_total, a counter partitioned by subsystem, mode, and result:
- subsystem: instances_v2, routes (or none when unset)
- mode: all, one, off
- result: hit, miss
cloud_controller_manager_server_cache_requests_total{subsystem="instances_v2", mode="all", result="hit"}
cloud_controller_manager_server_cache_requests_total{subsystem="routes", mode="all", result="miss"}
Update any dashboards or alerts referencing the old op series accordingly.
Features
- cache: replace TTL with max-age
- cache: use server cache in routes controller
Bug Fixes
- cache: when api returns not found do not return an expired entry (#1271)
v1.32.0
Cache Server Lookups in Node Controllers
This release introduces an experimental server cache to reduce Hetzner Cloud API calls. During an experimental phase, breaking changes on those features may occur within minor releases.
The node and node lifecycle controllers look up Servers by ID or name, generating significant API traffic during cluster scaling. A new cache sits between the controllers and the API to serve these lookups, reducing the number of requests.
It is enabled by default since we believe the implementation is safe in practice, but is experimental and may see breaking changes within minor releases. Configure it via environment variables:
-
HCLOUD_SERVER_CACHE_MODE(all|one|off, defaultall):all— fetch all Servers once and serve lookups from the snapshot until the TTL expires.one— cache each Server individually with its own expiration.off— disable caching; every lookup hits the API.
-
HCLOUD_SERVER_CACHE_TTL(duration, default10s): lifetime of cached entries (e.g.30s,2m); values above a minute are not recommended.
Features
- instances: cache server lookups to reduce API calls (#1252)
v1.31.1
Bug Fixes
- routes controller on node name drift (#1221)
v1.31.0
Features
- robot: allow Robot support without API credentials for IP-based LB targets (#1163)
- helm: allow customizing chart deployment strategy (#1190)
- support Kubernetes v1.36
- drop support for Kubernetes v1.32
Bug Fixes
- helm: remove permissions for persistentvolumes (#1203)
- route: error handling on locked networks (#1215)
v1.30.1
Datacenter Deprecation
The server.datacenter field is deprecated and will be removed from the API response after July 2026: https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters
To avoid a breaking change in HCCM, we decided to statically map from the old location names to the existing datacenter names for the topology.kubernetes.io/zone label. For new locations we will return the location name without a -dcxx suffix.
Deployments of hcloud-cloud-controller-manager that are not updated when the field is removed from the API will panic with the following error:
"Observed a panic" panic="runtime error: invalid memory address or nil pointer dereference" panicGoValue=""invalid memory address or nil pointer dereference""
We have published an RFC which details how we want to continue utilizing the labels topology.kubernetes.io/zone and topology.kubernetes.io/region: https://github.com/hetznercloud/hcloud-cloud-controller-manager/issues/1146#issuecomment-3919929223
Bug Fixes
- statically map deprecated datacenter names (#1159)
v1.30.0
Features
- support Kubernetes v1.35
- drop support for Kubernetes v1.31
Bug Fixes
- load-balancer: wait for action of managed certificate (#1144)
v1.29.2
Bug Fixes
- tcp service created for service with unsupported load balancer protocol (#1129)
v1.29.1
Bug Fixes
- respect proxy protocol default from config for load balancer status (#1131)
v1.29.0
Watch-Based Route Reconciliation
Previously, route reconciliation is performed at a fixed interval of 30s. This leads to unnecessary API requests, as a GET /v1/networks/{id} call is triggered every 30s, even when no changes have occurred.
Upstream, we have contributed an event-driven approach, similar to the mechanisms used by other controllers such as the Load Balancer controller. With this new approach, route reconciliation is triggered by node additions, node deletions, or changes to a node’s PodCIDRs or Addresses. Additionally, to ensure consistency, reconciliation still occurs periodically at a randomized interval between 12 and 24 hours.
Enabled by default
This feature is now enabled by default.
If you encounter any problems you can disable the feature by setting the following Helm value:
args.feature-gates=CloudControllerManagerWatchBasedRoutesReconciliation=false
Global Load Balancer Defaults
Configure cluster-wide defaults for Load Balancers via the extended HCLOUD_LOAD_BALANCERS_* env vars. These values automatically apply during Load Balancer creation and reconciliation whenever annotations are omitted. Learn more about it in the reference documentation
Features
- extend environment variables for default load balancer configuration (#1052)
- enable watch based route reconciliation by default (#1112)
v1.28.0
Updated ClusterRole for HCCM
We have introduced a custom ClusterRole for the HCCM component, based on the upstream recommendation from sig-cloud-provider.
To ensure a smooth transition, we renamed the ClusterRoleBinding by adding the :restricted suffix. This change was necessary because the roleRef field in a ClusterRoleBinding is immutable, which would otherwise cause errors during a Helm upgrade.
As a result, users who deploy HCCM using the provided Kubernetes manifests must manually delete the old ClusterRoleBinding after applying the updated manifests. Users deploying via the Helm chart do not need to take any action.
kubectl delete clusterrolebindings.rbac.authorization.k8s.io system:hcloud-cloud-controller-manager
Features
- helm: use custom ClusterRole
- configurable metrics address (#1055)
Bug Fixes
- add client-side timeouts to hcloud and robot clients (#1058)
v1.28.0-rc.1
Updated ClusterRole for HCCM
We have introduced a custom ClusterRole for the HCCM component, based on the upstream recommendation from sig-cloud-provider.
Due to this change, users who deploy HCCM using the provided Kubernetes manifests must manually remove the old ClusterRoleBinding after applying the updated manifests. Users deploying via the Helm chart do not need to perform any migration steps.
kubectl delete clusterrolebindings.rbac.authorization.k8s.io system:hcloud-cloud-controller-manager
v1.28.0-rc.0
Updated ClusterRole for HCCM
We have introduced a custom ClusterRole for the HCCM component, based on the upstream recommendation from sig-cloud-provider.
Because of this change, a simple helm upgrade may fail due to immutable fields in the existing ClusterRoleBinding. To ensure a successful upgrade, you must delete the existing ClusterRoleBinding before upgrading. This will make HCCM temporarily unavailable until the new version is deployed. Please avoid making any changes to the clusters, especially node- or service-related modifications, during this time.
kubectl delete clusterrolebindings.rbac.authorization.k8s.io system:hcloud-cloud-controller-manager
Features
- helm: use custom ClusterRole
- configurable metrics address (#1055)
Bug Fixes
- add client-side timeouts to hcloud and robot clients (#1058)
v1.27.0
Attach Load Balancer to a Subnet
If your CCM is configured for a Private Network, Load Balancers can now join one of its subnets. To place a Load Balancer in a specific subnet, use the new load-balancer.hetzner.cloud/private-subnet-ip-range annotation. Learn more about this feature here.
Watch-Based Route Reconciliation (Experimental)
Currently, route reconciliation is performed at a fixed interval of 30s. This leads to unnecessary API requests, as a GET /v1/networks/{id} call is triggered every 30s, even when no changes have occurred.
Upstream we have proposed an event-driven approach, similar to the mechanism used by other controllers such as the Load Balancer Controller. With this new approach, route reconciliation is triggered on node additions, node deletions, or when the PodCIDRs or Addresses of nodes change. Additionally, to ensure consistency, reconciliation will still occur periodically at a randomized interval between 12 and 24 hours.
We are close to merging a Kubernetes Enhancement Proposal (KEP). Furthermore, a pull request containing the implementation is already open in the Kubernetes repository.
Forked Upstream Libraries
In this release, we replaced the upstream controller-manager and cloud-provider libraries with our own forks. These forks are based on the upstream v0.34.1 release (aligned with Kubernetes v1.34.1) and include our patches on top.
Enabling the Feature
This feature is disabled by default and will not affect existing deployments unless explicitly enabled. We recommend testing it in a non-production environment before considering use in production.
As the KEP has not yet been reviewed for production readiness, the feature gate name may change in an upcoming release. Since this feature is marked as experimental, such changes will not be considered breaking.
To enable the feature, set the following Helm value:
args.feature-gates=CloudControllerManagerWatchBasedRoutesReconciliation=true
Features
- watch-based route reconciliation (#970)
- set dns config via helm chart values (#1027)
- support Kubernetes v1.34 and drop v1.30 (#1037)
- load-balancer: attach load balancer to specific subnetwork (#1031)
Bug Fixes
- feature gate cannot be enabled (#980)
v1.27.0-alpha.1
This release introduces an experimental feature to address #395.
Watch-Based Route Reconciliation (Experimental)
Currently, route reconciliation is performed at a fixed interval of 30s. This leads to unnecessary API requests, as a GET /v1/networks/{id} call is triggered every 30s, even when no changes have occurred.
Upstream we have proposed an event-driven approach, similar to the mechanism used by other controllers such as the Load Balancer Controller. With this new approach, route reconciliation is triggered on node additions, node deletions, or when the PodCIDRs or Addresses of nodes change. Additionally, to ensure consistency, reconciliation will still occur periodically at a randomized interval between 12 and 24 hours.
We are close to merging a Kubernetes Enhancement Proposal (KEP). Furthermore, a work-in-progress pull request containing the implementation is already open in the Kubernetes repository.
Forked Upstream Libraries
In this release, we replaced the upstream controller-manager and cloud-provider libraries with our own forks. These forks are based on the upstream v0.33.2 release (aligned with Kubernetes v1.33.2) and include our patches on top.
Enabling the Feature
This feature is disabled by default and will not impact existing deployments unless explicitly enabled. We do not recommend running this feature in production environments at this stage. However, we welcome early testers who can try it in non-critical setups. Running with this feature active is enough for us to analyze its impact. No additional feedback is required.
To enable the feature, set the following Helm value:
args.feature-gates=CloudControllerManagerWatchBasedRoutesReconciliation=true
Bug Fixes
- feature gate cannot be enabled (#980)
v1.27.0-alpha.0
This release introduces an experimental feature to address #395.
Watch-Based Route Reconciliation (Experimental)
Currently, route reconciliation is performed at a fixed interval of 30 seconds. This leads to unnecessary API requests, as a GET /v1/networks/{id} call is triggered every 30 seconds, even when no changes have occurred.
Upstream we have proposed an event-driven approach, similar to the mechanism used by other controllers such as the Load Balancer Controller. With this new approach, route reconciliation is triggered on node additions, node deletions, or when the PodCIDRs or Addresses of nodes change. Additionally, to ensure consistency, reconciliation will still occur periodically at a randomized interval between 12 and 24 hours.
We are close to merging a Kubernetes Enhancement Proposal (KEP). Furthermore, a work-in-progress pull request containing the implementation is already open in the Kubernetes repository.
Forked Upstream Libraries
In this release, we replaced the upstream controller-manager and cloud-provider libraries with our own forks. These forks are based on the upstream v0.33.2 release (aligned with Kubernetes v1.33.2) and include our patches on top.
Enabling the Feature
This feature is disabled by default and will not impact existing deployments unless explicitly enabled. We do not recommend running this feature in production environments at this stage. However, we welcome early testers who can try it in non-critical setups. Running with this feature active is enough for us to analyze its impact. No additional feedback is required.
To enable the feature, set the following Helm value:
args.feature-gates=CloudControllerManagerWatchBasedRoutesReconciliation=true
Features
- watch-based route reconciliation (#970)
v1.26.0
Features
- add Kubernetes v1.33 and remove EOL version v1.29 (#934)
- helm: add value to disable ClusterRoleBinding for out-of-cluster install (#962)
v1.25.1
Bug Fixes
- binaries are missing in the release (#930)
v1.25.1-rc.0
Bug Fixes
- binaries are missing in the release (#930)
v1.25.0
Features
- helm: support custom priorityClassName (#908)
- helm: support imagePullSecrets (#907)
v1.24.0
Improved Robot Support in hcloud-cloud-controller-manager
The hcloud-cloud-controller-manager now forwards InternalIPs by default on Robot nodes when the --node-ip flag is used. If the provided IP is not already registered as an ExternalIP and matches the expected address family, it will be forwarded automatically during initialization.
This allows the use of vSwitch IPs in private networks and Load Balancers.
🔗 Learn more in our updated Robot documentation 📘 Follow our how-to-guide to set up Load Balancers with vSwitch IPs.
Features
- robot: forward InternalIPs by default on Robot nodes (#865)
- load-balancer: enable use-private-ip annotation for Robot servers (#898)
Bug Fixes
- load-balancer: don't print entire node object when adding robot target (#904)
v1.23.0
Features
- add support and tests for Kubernetes 1.32 (#846)
Bug Fixes
- metrics: do not emit kubernetes_build_info metric (#849)
v1.22.0
This release includes an extension of our current metrics to also include the internals of k8s.io/cloud-provider with respect to the work queue depth and requests to the Kubernetes API.
Besides having all data available, this will also help us with debugging #661.
Features
- metrics: add metrics from cloud-provider library (#824)
- load-balancer: emit warning if unsupported port protocol is configured (#828)
- allow arbitrary length API tokens (#752)
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=cloudkubectl 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:
- https://github.com/kubernetes/enhancements/issues/1860
- https://github.com/hetznercloud/hcloud-cloud-controller-manager/issues/160#issuecomment-788638132
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.
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
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)
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)
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)
1.17.2 (2023-08-18)
Bug Fixes
1.17.1 (2023-07-19)
Bug Fixes
- deploy: make last resource name configurable (#477) (79ee405)
- deploy: manifests have wrong namespace "default" (#476) (d800781), closes #475
1.17.0 (2023-07-18)
Features
- helm: allow to set labels and annotations for podMonitor (#471) (5dad655)
- upgrade to hcloud-go v2 e4352ec (5a066a1)
Bug Fixes
- helm-chart: resource namespace and name (#462) (0c4eee6)
- routes: deleting wrong routes when other server has same private IP (#472) (5461038), closes #470
1.16.0 (2023-06-16)
Features
Bug Fixes
- ci: qemu binfmt wrappers during release (#421) (84a7541)
- routes: Only delete routes in the Cluster CIDR (#432) (c35d292)
Continuous Integration
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 https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/404
- chore(deps): update golangci/golangci-lint docker tag to v1.52.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/405
- feat(helm): env var config by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/406
- chore(chart): basic README by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/407
- fix(chart): README typo by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/409
- chore(deps): update golangci/golangci-lint docker tag to v1.52.1 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/410
- chore(deps): update actions/stale action to v8 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/411
- chore(deps): update golangci/golangci-lint docker tag to v1.52.2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/413
- refactor: Update & Fix golangci-lint by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/408
- feat: new dev/test environment by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/414
- fix(ci): run e2e tests on main by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/416
- feat(goreleaser): produce OCI manifest images by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/417
- feat: publish ARM container images by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/420
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.14.2...v1.15.0
v1.15.0-rc.0
What's Changed
- fix(deps): update kubernetes packages to v0.26.3 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/404
- chore(deps): update golangci/golangci-lint docker tag to v1.52.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/405
- feat(helm): env var config by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/406
- chore(chart): basic README by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/407
- fix(chart): README typo by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/409
- chore(deps): update golangci/golangci-lint docker tag to v1.52.1 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/410
- chore(deps): update actions/stale action to v8 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/411
- chore(deps): update golangci/golangci-lint docker tag to v1.52.2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/413
- refactor: Update & Fix golangci-lint by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/408
- feat: new dev/test environment by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/414
- fix(ci): run e2e tests on main by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/416
- feat(goreleaser): produce OCI manifest images by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/417
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.14.2...v1.15.0-rc.0
v1.14.2
What's Changed
- chore: multiple improvements to the release process by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/394
- feat(helm): configurable image by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/396
- chore: README / comment cleanups by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/397
- feat(chart): metrics + PodMonitor support by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/399
- chore(deps): update actions/setup-go action to v4 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/400
- feat(chart): configurable cmdline args by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/401
- fix: handle nil servers in InstanceV2 #398 by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/402
- fix: many API requests from Routes controller by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/403
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.14.1...v1.14.2
v1.14.1
What's Changed
- fix(ci): wrong version published when two tags point to same commit by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/392
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.14.0...v1.14.1
v1.14.0
The release pipeline for this version was broken and no Docker Image was actually published. Please use v1.14.1 instead.
Notable Changes
- Significantly reduced the number of Requests made to the Hetzner Cloud API. While this does not solve all cases of API rate limits, the situation should be better than before.
- feat: add InstancesV2 interface by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/385
- refactor: unnecessary API call in instance reconciliation by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/386
All Changes
- chore: add apricote as codeowner by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/335
- feat: test against Kubernetes v1.26 by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/334
- ci: stop logging api token by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/336
- chore: update codeowner to use groups by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/345
- fix(deploy): node.kubernetes.io/not-ready taint is NoExecute by @flokli in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/344
- Bump golang.org/x/text from 0.3.7 to 0.3.8 by @dependabot in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/346
- chore(deps): Bump golang.org/x/net from 0.0.0-20220225172249-27dd8689420f to 0.7.0 by @dependabot in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/352
- chore(deps): Bump github.com/emicklei/go-restful from 2.9.5+incompatible to 2.16.0+incompatible by @dependabot in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/343
- test(e2e): fix flake when LB health checks have not passed by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/354
- feat: drop support for Kubernetes v1.23 by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/350
- docs: fix skaffold guide by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/348
- docs(lb): reference existing lb #351 by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/353
- Configure Renovate by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/355
- chore(deps): update alpine docker tag to v3.17 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/357
- fix(deps): update module github.com/stretchr/testify to v1.8.2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/356
- chore(deps): update golang docker tag to v1.20 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/359
- chore(deps): update golangci/golangci-lint docker tag to v1.51.2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/360
- fix(deps): update module github.com/hetznercloud/hcloud-go to v1.40.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/361
- chore(deps): update actions/setup-go action to v3 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/367
- chore(deps): update docker/login-action action to v2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/369
- chore(deps): update docker/setup-buildx-action action to v2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/370
- chore(deps): update goreleaser/goreleaser-action action to v4 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/371
- fix(deps): update kubernetes packages to v0.26.2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/365
- chore(deps): update actions/stale action to v7 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/368
- chore(deps): update actions/checkout action to v3 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/364
- fix(deps): update module golang.org/x/crypto to v0.6.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/366
- fix(deps): update module k8s.io/klog/v2 to v2.90.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/363
- chore: initial basic helm chart by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/375
- fix(deps): update module k8s.io/klog/v2 to v2.90.1 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/374
- chore(chart): resources configurable via values.yaml by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/376
- chore: basic .gitpod.yml by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/377
- fix(ci): main branch rename by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/379
- feat: add packaged helm chart to release artifacts by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/378
- refactor(e2e): remove dev-ccm manifests by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/380
- fix(deps): update module github.com/hetznercloud/hcloud-go to v1.41.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/383
- feat(ci): publish helm chart to repository by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/381
- fix(deps): update module golang.org/x/crypto to v0.7.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/382
- feat: add InstancesV2 interface by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/385
- fix: self-reported version not correct by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/387
- chore(ci): run e2e on public workers by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/388
- refactor: unnecessary API call in instance reconciliation by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/386
- test: use actual test cases by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/389
- ci: fix goreleaser helm chart config by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/390
- ci: build helm repo index by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/391
New Contributors
- @apricote made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/335
- @renovate made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/355
- @samcday made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/375
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.13.2...v1.14.0
v1.14.0-rc.0
Notable Changes
- Significantly reduced the number of Requests made to the Hetzner Cloud API. While this does not solve all cases of API rate limits, the situation should be better than before.
- feat: add InstancesV2 interface by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/385
- refactor: unnecessary API call in instance reconciliation by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/386
What's Changed
- chore: add apricote as codeowner by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/335
- feat: test against Kubernetes v1.26 by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/334
- ci: stop logging api token by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/336
- chore: update codeowner to use groups by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/345
- fix(deploy): node.kubernetes.io/not-ready taint is NoExecute by @flokli in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/344
- Bump golang.org/x/text from 0.3.7 to 0.3.8 by @dependabot in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/346
- chore(deps): Bump golang.org/x/net from 0.0.0-20220225172249-27dd8689420f to 0.7.0 by @dependabot in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/352
- chore(deps): Bump github.com/emicklei/go-restful from 2.9.5+incompatible to 2.16.0+incompatible by @dependabot in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/343
- test(e2e): fix flake when LB health checks have not passed by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/354
- feat: drop support for Kubernetes v1.23 by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/350
- docs: fix skaffold guide by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/348
- docs(lb): reference existing lb #351 by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/353
- Configure Renovate by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/355
- chore(deps): update alpine docker tag to v3.17 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/357
- fix(deps): update module github.com/stretchr/testify to v1.8.2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/356
- chore(deps): update golang docker tag to v1.20 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/359
- chore(deps): update golangci/golangci-lint docker tag to v1.51.2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/360
- fix(deps): update module github.com/hetznercloud/hcloud-go to v1.40.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/361
- chore(deps): update actions/setup-go action to v3 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/367
- chore(deps): update docker/login-action action to v2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/369
- chore(deps): update docker/setup-buildx-action action to v2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/370
- chore(deps): update goreleaser/goreleaser-action action to v4 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/371
- fix(deps): update kubernetes packages to v0.26.2 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/365
- chore(deps): update actions/stale action to v7 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/368
- chore(deps): update actions/checkout action to v3 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/364
- fix(deps): update module golang.org/x/crypto to v0.6.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/366
- fix(deps): update module k8s.io/klog/v2 to v2.90.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/363
- chore: initial basic helm chart by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/375
- fix(deps): update module k8s.io/klog/v2 to v2.90.1 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/374
- chore(chart): resources configurable via values.yaml by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/376
- chore: basic .gitpod.yml by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/377
- fix(ci): main branch rename by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/379
- feat: add packaged helm chart to release artifacts by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/378
- refactor(e2e): remove dev-ccm manifests by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/380
- fix(deps): update module github.com/hetznercloud/hcloud-go to v1.41.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/383
- feat(ci): publish helm chart to repository by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/381
- fix(deps): update module golang.org/x/crypto to v0.7.0 by @renovate in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/382
- feat: add InstancesV2 interface by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/385
- fix: self-reported version not correct by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/387
- chore(ci): run e2e on public workers by @samcday in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/388
- refactor: unnecessary API call in instance reconciliation by @apricote in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/386
New Contributors
- @apricote made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/335
- @renovate made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/355
- @samcday made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/375
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.13.2...v1.14.0-rc.0
v1.13.2
What's Changed
- Fix PTR update for load balancer by @ym in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/315
New Contributors
- @ym made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/315
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.13.1...v1.13.2
v1.13.1
What's Changed
- Add skaffold for 1 click debugging + update k8s gitlab versions by @4ND3R50N in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/314
- Update hcloud go to v1.35.3 by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/317
- Fix goreleaser by @4ND3R50N in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/318
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.13.0...v1.13.1
v1.13.0
What's Changed
- Update k8s dependencies to v0.20.13 by @fhofherr in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/260
- Use our own Runners by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/261
- feat: allow setting of reverse DNS records by @morremeyer in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/274
- Use Go 1.18 by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/293
- Update K8s/k3s Support Matrix by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/294
- Update Dependencies by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/295
- Update hcloud-go and fix possible crash cases for servers with flexib… by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/296
- Metrics for Hetzner API calls by @maksim-paskal in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/303
- Raise cache reload timeout limit by @4ND3R50N in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/309
- Update to Go 1.19 by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/311
- Prioritize IPv4 address family by dual-stack by @rastislavs in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/306
- Migrate to priorityClassName API by @onpaws in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/283
- Flag to disable network routes by @maksim-paskal in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/304
- Update all non k8s related dependencies to last versions by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/312
- Add support for k8s 1.25 by @LKaemmerling in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/313
New Contributors
- @morremeyer made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/274
- @maksim-paskal made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/303
- @4ND3R50N made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/309
- @rastislavs made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/306
- @onpaws made their first contribution in https://github.com/hetznercloud/hcloud-cloud-controller-manager/pull/283
Full Changelog: https://github.com/hetznercloud/hcloud-cloud-controller-manager/compare/v1.12.1...v1.13.0
v1.12.1
Changelog
- 1b33f524 Prepare Release v1.21.1
- 9fa68870 Update hcloud-go to v1.33 (#255)
- ff044e93 deploy: add missing operator: Exists (#251)
- 7c9948b6 Bump k8s.io/kubernetes from 1.18.3 to 1.18.19 (#243)
- 451703ae Testsetup: Unify with CSI Driver test setup suite (#244)
- 635cf10a Update docs (#240)
- f21278cc Health Check: Set healthcheck port to destination port if no port was defined via annotation (#239)
Docker images
docker pull hetznercloud/hcloud-cloud-controller-manager:v1.12.1
v1.12.0
Changelog
- 580c9db9 Prepare Release v1.12.0
- 9d259b9b Bring IPv6 flag in line with private ingress flag (#237)
- 7728df20 add explanation for private node IPs (#219)
- 3f1a081f Build and test with go 1.17 (#235)
- 867e2377 Ignore stale routes on RouteList (#238)
- fb6b551c Use Metadata Client provided by hcloud-go (#234)
- bcf0e74e Update README for kube-proxy IPVS information (#213)
- 6f30ee1d Update hcloud-go to v1.28.0
Docker images
docker pull hetznercloud/hcloud-cloud-controller-manager:v1.12.0
v1.11.1
Changelog
- b721e5ae fix release asset version
Docker images
docker pull hetznercloud/hcloud-cloud-controller-manager:latestdocker pull hetznercloud/hcloud-cloud-controller-manager:v1.11.1
v1.11.0
Changelog
- 659f728c Use ::1 host of the IPv6 subnet as the instance address
- f8d6673c Support for IPv6 NodeAddresses
- 32f602a0 Apply review results
- 354f8f85 Add Master is attached to configured Network check on controller boot.
- 1e444837 Fix typo in log message (#207)
- bf44907b Improving documentation
- e52a79be Update README.md to include Networks support
- 0d3274ca Fix for typo in hcloud command
- 1641943b Fix glob for deployment yamls
Docker images
docker pull hetznercloud/hcloud-cloud-controller-manager:latestdocker pull hetznercloud/hcloud-cloud-controller-manager:v1.11.0
v1.10.0
Changelog
- b54847b9 Add option to disable IPv6 for load balancers
- 13cac638 Add #190 to yaml templates
Docker images
docker pull hetznercloud/hcloud-cloud-controller-manager:latestdocker pull hetznercloud/hcloud-cloud-controller-manager:v1.10.0
v1.10.0-rc2
Changelog
- f40fa216 Fix generation of deployment yamls
Docker images
docker pull hetznercloud/hcloud-cloud-controller-manager:latestdocker pull hetznercloud/hcloud-cloud-controller-manager:v1.10.0-rc2
v1.10.0-rc1
Changelog
- a0e90cae Automate release process
- 96013341 Tolerate node-role.kubernetes.io/control-plane:NoSchedule taints
Docker images
docker pull hetznercloud/hcloud-cloud-controller-manager:latestdocker pull hetznercloud/hcloud-cloud-controller-manager:v1.10.0-rc1
v1.9.1
- Fix: add correct version number to config files
v1.9.0
- Add support for setting load balancer values via cluster-wide defaults:
HCLOUD_LOAD_BALANCERS_LOCATION,HCLOUD_LOAD_BALANCERS_NETWORK_ZONE,HCLOUD_LOAD_BALANCERS_DISABLE_PRIVATE_INGRESS,HCLOUD_LOAD_BALANCERS_USE_PRIVATE_IP(#125) - Fix: allow referencing certificates by name (#116)
- Update build to go 1.16
- Update hcloud-go to 1.25.0
- Fix: Creating a Route may fail because of stale cache
- Add support for Hetzner Cloud Managed Certificates
v1.8.1
- Fix: excessive calls to
/v1/serversendpoint.
v1.8.0
- Fix: nil pointer dereference when Load Balancers were disabled
- Update hcloud-go to 1.22.0
- Update build to go 1.15
- Fix: update default health check (#87)
- Fix: Ignore protected Load Balancers on deletion instead of raising an error
You can update by running
### for Networks Version
kubectl apply -f https://raw.githubusercontent.com/hetznercloud/hcloud-cloud-controller-manager/master/deploy/ccm-networks.yaml
### for without Networks
https://raw.githubusercontent.com/hetznercloud/hcloud-cloud-controller-manager/master/deploy/ccm.yaml
v1.7.0
- Fix: nil pointer dereference when Network was not found
- Update hcloud-go to 1.20.0
- Add
HCLOUD_LOAD_BALANCERS_ENABLEDenv variable to disable the Load Balancer feature, per default the Load Balancers are enabled. - Use defaults if health check annotations are not set.
- Add support for changing the Load Balancer type
v1.6.1
- Add missing support Load Balancer sticky sessions
- Fix wrong parsing of health check timeout and interval
v1.6.0
- Add support for hcloud Load Balancer
- Update kubernetes dependencies to v1.16.2
- Update build to go 1.14
You can find a detailed description for the new Load Balancers under https://github.com/hetznercloud/hcloud-cloud-controller-manager/blob/master/docs/load_balancers.md
v1.5.1
- Add better error handling and validation for certain errors related to wrong API tokens
v1.5.0
- Add Support for Kubernetes 1.16
v1.4.0
- Add Networks Support
This release was tested on Kubernetes 1.15.x.
v1.3.0
- Kubernetes 1.11 and 1.12 are now supported
- update hcloud-go to 1.12.0
v1.2.0
- update hcloud-go to v1.4.0
- update kubernetes dependencies to v1.9.3
v1.1.0
- update kubernetes dependencies to v1.9.2
v1.0.0
- initial release