Add HealthCheck for KubernetesCRD ExternalName services

This commit is contained in:
Marc Mognol 2024-05-30 17:18:05 +02:00 committed by GitHub
parent c0a2e6b4b6
commit 7fc56454ea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 885 additions and 22 deletions

View file

@ -305,6 +305,7 @@ func (c configBuilder) buildServersLB(namespace string, svc traefikv1alpha1.Load
lb := &dynamic.ServersLoadBalancer{}
lb.SetDefaults()
lb.Servers = servers
lb.HealthCheck = svc.HealthCheck
conf := svc
lb.PassHostHeader = conf.PassHostHeader
@ -380,6 +381,10 @@ func (c configBuilder) loadServers(parentNamespace string, svc traefikv1alpha1.L
}
var servers []dynamic.Server
if service.Spec.Type != corev1.ServiceTypeExternalName && svc.HealthCheck != nil {
return nil, fmt.Errorf("HealthCheck allowed only for ExternalName services: %s/%s", namespace, sanitizedName)
}
if service.Spec.Type == corev1.ServiceTypeExternalName {
if !c.allowExternalNameServices {
return nil, fmt.Errorf("externalName services not allowed: %s/%s", namespace, sanitizedName)