You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There is an issue when creating clusters (or upgrading clusters) with
kubernetes versions v1.30+ and using a classic elb with an SSL health
check (which the default for new clusters).
The problem is that Kubernetes v1.30+ switched to Go 1.22 which removed
the RSA ciphers. This then causes the ELB health check to fail.
There are a number of workarounds including manually specifying the
cipher suites to use for the api server.
This commit does the following:
- Adds warnings to the AWSCluster webhook to alert users that:
- their cluster is using a classic elb and this is now deprecated
- their cluster is using the default health check protocol which warnings
previously SSL and that now the default has changed to TCP.
- Will update the health check to TCP if the load balancer is "classic"
and the health check protocol is not set.
Signed-off-by: Richard Case <[email protected]>
Copy file name to clipboardExpand all lines: api/v1beta2/awscluster_webhook.go
+58-10Lines changed: 58 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -33,6 +33,11 @@ import (
33
33
"sigs.k8s.io/cluster-api/util/annotations"
34
34
)
35
35
36
+
const (
37
+
warningClassicELB="%s load balancer is using a classic elb which is deprecated & support will be removed in a future release, please consider using another type of load balancer instead"
38
+
warningHealthCheckProtocolNotSet="healthcheck protocol is not set, the default value has changed from SSL to TCP. Health checks for existing clusters will be updated to TCP"
39
+
)
40
+
36
41
// log is for logging in this package.
37
42
var_=ctrl.Log.WithName("awscluster-resource")
38
43
@@ -53,15 +58,23 @@ var (
53
58
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type.
allWarnings=append(allWarnings, "loadbalancer is using a classic elb with SSL health check, this causes issues with ciper suites with kubernetes v1.30+")
349
+
}
350
+
}
306
351
307
352
// If the secondary is defined, check that the name is not empty and different from the primary.
308
353
// Also, ensure that the secondary load balancer is an NLB
allErrs=append(allErrs, field.Invalid(field.NewPath("spec", "secondaryControlPlaneLoadBalancer", "loadBalancerType"), r.Spec.SecondaryControlPlaneLoadBalancer.LoadBalancerType, "secondary control plane load balancer must be a Network Load Balancer"))
0 commit comments