diff --git a/pkg/provider/kubernetes/crd/fixtures/services.yml b/pkg/provider/kubernetes/crd/fixtures/services.yml index 1c89a9c00..b5d785193 100644 --- a/pkg/provider/kubernetes/crd/fixtures/services.yml +++ b/pkg/provider/kubernetes/crd/fixtures/services.yml @@ -68,6 +68,7 @@ spec: ports: - name: web-secure port: 443 + targetPort: 8443 selector: app: containous task: whoami2 @@ -85,7 +86,7 @@ subsets: - ip: 10.10.0.6 ports: - name: web-secure - port: 443 + port: 8443 --- apiVersion: v1 diff --git a/pkg/provider/kubernetes/crd/kubernetes.go b/pkg/provider/kubernetes/crd/kubernetes.go index f0e01c0e6..9e3726927 100644 --- a/pkg/provider/kubernetes/crd/kubernetes.go +++ b/pkg/provider/kubernetes/crd/kubernetes.go @@ -273,7 +273,7 @@ func loadServers(client Client, namespace string, svc v1alpha1.Service) ([]dynam case "http", "https", "h2c": protocol = svc.Scheme case "": - if port == 443 || strings.HasPrefix(portSpec.Name, "https") { + if portSpec.Port == 443 || strings.HasPrefix(portSpec.Name, "https") { protocol = "https" } default: diff --git a/pkg/provider/kubernetes/crd/kubernetes_test.go b/pkg/provider/kubernetes/crd/kubernetes_test.go index 3cd4af3af..75e7f122b 100644 --- a/pkg/provider/kubernetes/crd/kubernetes_test.go +++ b/pkg/provider/kubernetes/crd/kubernetes_test.go @@ -1324,10 +1324,10 @@ func TestLoadIngressRoutes(t *testing.T) { LoadBalancer: &dynamic.LoadBalancerService{ Servers: []dynamic.Server{ { - URL: "https://10.10.0.5:443", + URL: "https://10.10.0.5:8443", }, { - URL: "https://10.10.0.6:443", + URL: "https://10.10.0.6:8443", }, }, PassHostHeader: true, diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_endpoint.yml index 3719a0777..2c5387099 100644 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_endpoint.yml +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_endpoint.yml @@ -8,8 +8,8 @@ subsets: - addresses: - ip: 10.10.0.1 ports: - - port: 443 + - port: 8443 - addresses: - ip: 10.21.0.1 ports: - - port: 443 + - port: 8443 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_service.yml index 078a79689..f26256b02 100644 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_service.yml +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_service.yml @@ -7,4 +7,5 @@ metadata: spec: ports: - port: 443 + targetPort: 8443 clusterIp: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/kubernetes.go b/pkg/provider/kubernetes/ingress/kubernetes.go index 84f285aa4..ced73ef9a 100644 --- a/pkg/provider/kubernetes/ingress/kubernetes.go +++ b/pkg/provider/kubernetes/ingress/kubernetes.go @@ -216,7 +216,7 @@ func loadService(client Client, namespace string, backend v1beta1.IngressBackend } protocol := "http" - if port == 443 || strings.HasPrefix(portName, "https") { + if portSpec.Port == 443 || strings.HasPrefix(portName, "https") { protocol = "https" } diff --git a/pkg/provider/kubernetes/ingress/kubernetes_test.go b/pkg/provider/kubernetes/ingress/kubernetes_test.go index c508ac1c6..cacccda4c 100644 --- a/pkg/provider/kubernetes/ingress/kubernetes_test.go +++ b/pkg/provider/kubernetes/ingress/kubernetes_test.go @@ -732,10 +732,10 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { PassHostHeader: true, Servers: []dynamic.Server{ { - URL: "https://10.10.0.1:443", + URL: "https://10.10.0.1:8443", }, { - URL: "https://10.21.0.1:443", + URL: "https://10.21.0.1:8443", }, }, },