- Update dependencies: (@d-honeybadger)
- k8s.io packages v0.31.0
- sigs.k8s.io/controller-runtime v0.19.0
- github.com/prometheus/client_golang v1.20.2
- Update go to 1.23 (@d-honeybadger)
- When using the LoadBalancer
service.beta.kubernetes.io/do-loadbalancer-type=REGIONAL_NETWORK
(under closed beta), firewall rules are added to open up the underlying health check port and all the defined (port, protocols) defined on the service. This is to permit traffic to arrive directly on the underlying worker nodes.
- Fixes an issue with load balancer health checks when the LB is using PROXY protocol. The new health check
implementation (introduced in v0.1.51), now probes either kube proxy (Cluster) or the health check node port (Local).
If the LB enables PROXY protocol, this alters the health check behavior to also use PROXY protocol. Since these Kubernetes
components don't support PROXY protocol, this caused worker nodes to be marked as unhealthy. Support was added to the
load balancer health check to optionally enable/disable PROXY protocol. When using the default health check implementation
the health check will disable PROXY protocol. If the
service.beta.kubernetes.io/do-loadbalancer-override-health-check
is provided, then the health check will default to the setting on the LB.
- Adding support for internal load balancers (NOTE: this is a closed beta feature, contact DigitalOcean
support to review its public availability). This is enabled by setting a new annotation
service.beta.kubernetes.io/do-loadbalancer-network
toINTERNAL
.
- Adding support for specifiying
loadBalancerSourceRanges
in the service spec. Source ranges take precedence over annotation based allow rules (service.beta.kubernetes.io/do-loadbalancer-allow-rules
).
- Adjusts load balancer health check behaviour to probe Kubernetes components correctly, ensuring that LB traffic stops in time in case of unavailability and pending node replacements. The concrete health check configuration depends on the specified external traffic policy. See the extended documentation for details.
- Adding new annotation
service.beta.kubernetes.io/do-loadbalancer-certificate-name
to configure which TLS certificate to use for HTTPs forwarding rules. This can be used instead ofservice.beta.kubernetes.io/do-loadbalancer-certificate-id
which needs to be manually updated when using Let's Encrypt certificates. This is due to the certificate ID updating each time the certificate is rotated. If both annotations are provided, thenservice.beta.kubernetes.io/do-loadbalancer-certificate-id
takes precedence.
- Updates kubernetes dependencies: (@ihwang)
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- Update Go to v1.22 (@ihwang)
- Fix load balancer admission webhook to handle load balancer ID changes gracefully (@prichrd)
- Split release manifests to allow optional deployment of admission server (@prichrd)
- Add documentation for the admission server (@prichrd)
- Add validation webhook for LoadBalancer services (@prichrd)
- Updates kubernetes dependencies: (@kperath)
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- Updates K8s Registry Location (@userbradley)
- Update retry duration when DO LoadBalancer is being created (@olove)
- Updates kubernetes dependencies: (@olove)
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- Remove deny and allow load balancer firewall rules when annotations are removed (@olove)
- Updates kubernetes dependencies: (@olove)
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- Updates kubernetes dependencies: (@olove)
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- Add annotation for customizing Load Balancer HTTP Idle Timeout (@StephenVarela)
- Add annotations for Load Balancers Firewalls (@jrolheiser)
- Relax validation for Load Balancers UDP ports (@anitgandhi)
- Deprecate annotation for customizing Load Balancer algorithm (@anitgandhi)
- Support setting DO API rate limit (@timoreimann)
- Update Go to v1.19 (@timoreimann)
- Support specifying region explicitly (@shatoboar)
- Support custom annotation to specify HTTP3 entry ports for Load Balancers (@anitgandhi)
- Updates kubernetes dependencies:
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- k8s.io/[email protected]
- add UDP protocol support (@dikshant)
- Bump k8s.io/klog/v2 from 2.9.0 to 2.50.2
- Update godo to v1.78.0 (@cpanato)
- Update Kubernetes dependencies (@cpanato)
- Update Kubernetes dependencies to 1.22.5 (@cshoop)
- Add annotation for specifying load balancer size unit (@wez470)
- Add annotation for disabling automatic DNS record creation for load balancer Let's Encrypt certs (@wez470)
- Update Kubernetes dependencies to 1.21.3 (@varshavaradarajan)
- Update Kubernetes dependencies to 1.21.2 (@adamwg)
- Do not forget work item on firewall controller error (@timoreimann)
- Fix broken firewall counter metrics by incrementing (@timoreimann)
- Support LB custom size slug (@anitgandhi)
- Improve firewall metrics design (@timoreimann)
- Support marking Services as firewall-unmanaged (@timoreimann)
- Update Kubernetes dependencies to 1.19.3 (@timoreimann)
- Fix firewall cache usage (@timoreimann)
- Create context after retrieving item from worker queue (@MorrisLaw)
- Fix logging and update Kubernetes dependencies to 1.19.2 (@timoreimann)
- Expose health check failures (@timoreimann)
- Add exponential retry to firewall controller (@MorrisLaw)
- Update Kubernetes dependencies to 1.19.1 (@adamwg)
- Add prometheus metrics instrumentation to firewall controller (@MorrisLaw)
- Add controller to manage worker firewall for public access (@MorrisLaw)
- Support HTTPS as health check protocol (@timoreimann)
- Update Kubernetes dependences to 1.18.3 (@waynr)
- Support disowning LBs (@timoreimann)
- Add commented out leases RBAC rules to manifest (@waynr)
- Add annotation to specify HTTP ports explicitly (@timoreimann)
- Build using Go 1.14 (@timoreimann)
- Add support for enabling backend keepalive feature for load balancers (@anitgandhi)
- Bump godo dependency to v1.35.1 (@anitgandhi)
- Use correct annotation name for invalid health check protocol (@timoreimann)
- Add logging for Create and Update requests to the LB API (@morrislaw)
- Add support for specifying custom load-balancer names (@grzesiek)
- Support specifying a fake region by environment variable (@timoreimann)
- Update Kubernetes dependencies to 1.17.5 (@waynr)
- Add
service.beta.kubernetes.io/do-loadbalancer-healthcheck-port
annotation to customize DO LB health-check port (@ntate)
- Maintain default protocol when secure protocol override is applied (@timoreimann)
- Add
DEBUG_ADDR
environment variable for configuring the address of an HTTP server serving a/healthz
health endpoint (@nanzhong)
- Update Deployment release manifest API version from removed extensions/v1beta1 to apps/v1 (@timoreimann)
- Update Kubernetes dependencies to 1.16.2 (@timoreimann)
- loadbalancers: improve handling of DigitalOcean Let's Encrypt certificates that have been automatically rotated by DigitalOcean's LBaaS (@waynr)
- Overwrite service load-balancer ID on mismatch (@timoreimann)
- Reduce API interactions around LB tag synchronization (@timoreimann)
- Support LB with status.Hostname instead of status.IP (@snormore)
- Support custom annotation to specify HTTP2 ports (@timoreimann)
- Use provider ID for setting LB droplet targets (@timoreimann)
- Annotate Service objects by load-balancer UUIDs to enable free LB renames and improve the DO API consumption performance (@timoreimann)
- Do not force HTTP with sticky-sessions (@snormore)
- Set default health check protocol to HTTP if health check path is given (@snormore)
- HTTP/2 support for LB services (@snormore)
- Update Kubernetes dependencies to 1.15.0 (@timoreimann)
- Set default LB health check protocol to TCP if not specified (@snormore)
- Default to HTTP for sticky sessions if no protocol is defined (@snormore)
- Do not return error when load-balancer deletion succeeds (@timoreimann)
- Remove local load-balancer cache entry when load-balancer is deleted (@timoreimann)
- Set cloud tagging, authentication lookup skipping, and cloud provider flags in-code (@timoreimann)
- Drop droplet cache usage in Instances implementation (@timoreimann)
- Add note to README about CCM being already installed on DOKS (@snormore)
- Set a custom user agent for the godo client (@andrewsomething)
- Update Kubernetes dependencies to 1.14.1 (@timoreimann)
- Handle case where stale droplet cache can result in incorrect node deletions (@nanzhong)
- Add support for configuring a specific vpc id (@nanzhong)
- Cache API results for DigitalOcean resources and manage them in ResourcesController (@nanzhong)
- loadbalancers: add support for PROXY protocol (@timoreimann)
- loadbalancers: support numeric health check parameters (@timoreimann)
- loadbalancers: don't use pointer to loop variable in load balancers map (@bouk)
IMPORTANT: This release contains a significant bug. Use v0.1.10 instead.
- Reconcile cluster ID tags on DO load-balancer resources (@timoreimann)
- Makefile: Fix check-headers target and header violations (@timoreimann)
- prepend the DO-specific tag component to the cluster ID (@timoreimann)
- add script to clean up used DigitalOcean resources (@timoreimann)
- tag created load balancers with existing cluster ID (@timoreimann)
- add some documentation and fix load balancer naming (@tariq1890)
- bump Go version to 1.11.5 (@timoreimann)
- fix link in docs (@eddiezane)
- fix typo in Makefile (@rig0rmortis)
- remove duplicate 'contributing' section (@groovemonkey)
- add end-to-end test verifying Kubernetes compatibility (@timoreimann)
- support overriding the load-balancer health check protocol via the
service.beta.kubernetes.io/do-loadbalancer-healthcheck-protocol
annotation (@andrewsykim)
- add support for loadbalancer health check paths via service annotation
service.beta.kubernetes.io/do-loadbalancer-healthcheck-path
(@andrewsykim) - various clean ups (golint, CI, etc) (@timoreimann)
- implement InstanceShutdownByProviderID which adds taints to droplets that are shutdown (@andrewsykim)
- support loadbalancer http -> https redirect (@peterver)
- loadbalancers: Support nodes where nodeName is the private or public IP (@klausenbusk)
- Add the ability to overide the DO API address (@cagedmantis)
- update godo to v1.2.0 (@andrewsykim)
- update kubernetes dependenicies to v1.10.2 (@andrewsykim)
- Support loadbalancer sticky sessions (@xmudrii)
- Add RBAC ClusterRole, ClusterRoleBindings and ServiceAccount
Supports Kubernetes Versions: v1.8.X - v1.9.X
- Support clusters where nodeName is the private or public IP (@klausenbusk)
- Switch Docker base image to Alpine from Ubuntu (@klausenbusk)
Supports Kubernetes Versions: v1.8
- Implement InstanceExistsByProviderID (@andrewsykim)
- Cloud Controller Manager should run as a critical pod with resource requests (@andrewsykim)
- Handle new provider ID format in node spec - digitalocean://droplet-id (@andrewsykim)
- Implement GetZoneByProviderID and GetZoneByNodeName (@bhcleek)
- Remove import for in-tree cloud provider - results in smaller binary (@andrewsykim)
Supports Kubernetes Versions: v1.8
- Wait for load balancer to be active to retrieve its IP (@odacremolbap)
- Use pagination when listing all droplets (@yuvalsade)
Supports Kubernetes Versions: v1.7
- implement nodecontroller - responsible for: address managemnet, monitoring node status and node deletions.
- implement zones - responsible for assigning nodes a zone in DigitalOcean
- implement servicecontroller - responsible for: creating, updating and deleting services of type
LoadBalancer
with DO loadbalancers.
Supports Kubernetes Versions: v1.7