From 4fbe9b81ecb8d6d0ece62b74f19c484a9dc23221 Mon Sep 17 00:00:00 2001 From: Romain Date: Tue, 20 Jun 2023 10:26:05 +0200 Subject: [PATCH] Remove support of the networking.k8s.io/v1beta1 APIVersion --- .golangci.yml | 8 +- docs/content/deprecation/features.md | 11 +- docs/content/migration/v2-to-v3.md | 9 +- docs/content/providers/kubernetes-ingress.md | 65 +-- .../routing/providers/kubernetes-ingress.md | 105 ---- integration/fixtures/k8s/03-ingress-https.yml | 9 +- integration/fixtures/k8s/03-ingress.yml | 9 +- integration/fixtures/k8s/08-ingressclass.yml | 33 +- integration/resources/compose/k8s.yml | 4 +- pkg/provider/kubernetes/ingress/client.go | 189 +------ .../kubernetes/ingress/client_mock_test.go | 65 +-- .../kubernetes/ingress/client_test.go | 70 --- pkg/provider/kubernetes/ingress/convert.go | 3 +- .../kubernetes/ingress/convert_test.go | 71 --- ...erent-namespace-with-same-service-name.yml | 102 ++++ ...espace-with-same-service-name_endpoint.yml | 29 -- ...mespace-with-same-service-name_ingress.yml | 37 -- ...mespace-with-same-service-name_service.yml | 24 - .../Double-Single-Service-Ingress.yml | 84 +++ ...Double-Single-Service-Ingress_endpoint.yml | 32 -- .../Double-Single-Service-Ingress_ingress.yml | 22 - .../Double-Single-Service-Ingress_service.yml | 22 - .../ingress/fixtures/Empty-ingresses.yml | 0 ...s-Two-rules-with-one-host-and-one-path.yml | 57 +++ ...es-with-one-host-and-one-path_endpoint.yml | 15 - ...les-with-one-host-and-one-path_ingress.yml | 22 - ...les-with-one-host-and-one-path_service.yml | 10 - ...ess.yml => Ingress-one-rule-host-only.yml} | 2 +- ...s-one-rule-with-one-host-and-two-paths.yml | 54 ++ ...e-with-one-host-and-two-paths_endpoint.yml | 15 - ...le-with-one-host-and-two-paths_ingress.yml | 19 - ...le-with-one-host-and-two-paths_service.yml | 10 - ...ss-one-rule-with-one-path-and-one-host.yml | 47 ++ ...le-with-one-path-and-one-host_endpoint.yml | 15 - ...ule-with-one-path-and-one-host_ingress.yml | 15 - ...ule-with-one-path-and-one-host_service.yml | 10 - .../Ingress-one-rule-with-two-paths.yml | 53 ++ ...gress-one-rule-with-two-paths_endpoint.yml | 15 - ...ngress-one-rule-with-two-paths_ingress.yml | 18 - ...ngress-one-rule-with-two-paths_service.yml | 10 - ...th-IPv6-endpoints-externalname-enabled.yml | 31 ++ ...endpoints-externalname-enabled_ingress.yml | 14 - ...endpoints-externalname-enabled_service.yml | 13 - .../fixtures/Ingress-with-IPv6-endpoints.yml | 66 +++ .../Ingress-with-IPv6-endpoints_endpoint.yml | 12 - .../Ingress-with-IPv6-endpoints_ingress.yml | 18 - .../Ingress-with-IPv6-endpoints_service.yml | 26 - ...ngress-with-a-bad-host-syntax_endpoint.yml | 15 - ...Ingress-with-a-bad-host-syntax_service.yml | 10 - ...ngress-with-a-bad-path-syntax_endpoint.yml | 15 - ...Ingress-with-a-bad-path-syntax_service.yml | 10 - ...e-on-one-path-with-https-(port-==-443).yml | 47 ++ ...path-with-https-(port-==-443)_endpoint.yml | 15 - ...-path-with-https-(port-==-443)_ingress.yml | 14 - ...-path-with-https-(port-==-443)_service.yml | 11 - ...ne-path-with-https-(portname-==-https).yml | 50 ++ ...ith-https-(portname-==-https)_endpoint.yml | 17 - ...with-https-(portname-==-https)_ingress.yml | 14 - ...with-https-(portname-==-https)_service.yml | 12 - ...ith-https-(portname-starts-with-https).yml | 50 ++ ...-(portname-starts-with-https)_endpoint.yml | 17 - ...s-(portname-starts-with-https)_ingress.yml | 14 - ...s-(portname-starts-with-https)_service.yml | 12 - .../Ingress-with-a-basic-rule-on-one-path.yml | 46 ++ ...with-a-basic-rule-on-one-path_endpoint.yml | 15 - ...-with-a-basic-rule-on-one-path_ingress.yml | 14 - ...-with-a-basic-rule-on-one-path_service.yml | 11 - ...d-port-matching-subset-of-service-pods.yml | 55 ++ ...tching-subset-of-service-pods_endpoint.yml | 20 - ...atching-subset-of-service-pods_ingress.yml | 15 - ...atching-subset-of-service-pods_service.yml | 14 - .../fixtures/Ingress-with-annotations.yml | 70 +++ .../Ingress-with-annotations_endpoint.yml | 15 - .../Ingress-with-annotations_ingress.yml | 28 - .../Ingress-with-annotations_service.yml | 21 - ...gress-with-conflicting-routers-on-host.yml | 58 +++ ...h-conflicting-routers-on-host_endpoint.yml | 15 - ...th-conflicting-routers-on-host_ingress.yml | 23 - ...th-conflicting-routers-on-host_service.yml | 10 - ...gress-with-conflicting-routers-on-path.yml | 54 ++ ...h-conflicting-routers-on-path_endpoint.yml | 15 - ...th-conflicting-routers-on-path_ingress.yml | 19 - ...th-conflicting-routers-on-path_service.yml | 10 - ...ress-with-default-traefik-ingressClass.yml | 44 ++ ...-default-traefik-ingressClass_endpoint.yml | 11 - ...h-default-traefik-ingressClass_ingress.yml | 16 - ...h-default-traefik-ingressClass_service.yml | 10 - .../fixtures/Ingress-with-defaultbackend.yml | 62 +++ ...ss.yml => Ingress-with-empty-pathType.yml} | 25 + .../fixtures/Ingress-with-exact-pathType.yml | 41 ++ ...-with-implementationSpecific-pathType.yml} | 27 +- .../Ingress-with-ingress-annotation.yml | 43 ++ ...s-with-ingressClass-without-annotation.yml | 44 ++ ...gressClass-without-annotation_endpoint.yml | 11 - ...ngressClass-without-annotation_ingress.yml | 16 - ...ngressClass-without-annotation_service.yml | 10 - .../fixtures/Ingress-with-ingressClass.yml | 51 ++ .../Ingress-with-ingressClasses-filter.yml | 77 +++ .../Ingress-with-missing-ingressClass.yml | 42 ++ .../Ingress-with-multiple-ingressClasses.yml | 77 +++ .../fixtures/Ingress-with-named-port.yml | 43 ++ .../Ingress-with-native-service-lb.yml | 34 ++ ...Ingress-with-native-service-lb_ingress.yml | 15 - ...Ingress-with-native-service-lb_service.yml | 15 - ...er-traefik-ingressClass-and-annotation.yml | 44 ++ ...k-ingressClass-and-annotation_endpoint.yml | 11 - ...ik-ingressClass-and-annotation_ingress.yml | 16 - ...ik-ingressClass-and-annotation_service.yml | 10 - .../Ingress-with-one-host-without-path.yml | 45 ++ ...ss-with-one-host-without-path_endpoint.yml | 12 - ...ess-with-one-host-without-path_ingress.yml | 14 - ...ess-with-one-host-without-path_service.yml | 12 - ...ress-with-one-service-without-endpoint.yml | 29 ++ ...h-one-service-without-endpoint_service.yml | 10 - ...-one-service-without-endpoints-subset.yml} | 25 +- ...vice-without-endpoints-subset_endpoint.yml | 5 - ...rvice-without-endpoints-subset_ingress.yml | 15 - ...rvice-without-endpoints-subset_service.yml | 10 - ...s-with-only-a-bad-host-syntax_endpoint.yml | 15 - ...ss-with-only-a-bad-host-syntax_service.yml | 10 - ...s-with-only-a-bad-path-syntax_endpoint.yml | 15 - ...ss-with-only-a-bad-path-syntax_service.yml | 10 - ...ress-with-port-invalid-for-one-service.yml | 63 +++ ...-port-invalid-for-one-service_endpoint.yml | 21 - ...h-port-invalid-for-one-service_ingress.yml | 15 - ...h-port-invalid-for-one-service_service.yml | 20 - ...port-name-in-backend-and-2-pod-replica.yml | 50 ++ ...-in-backend-and-2-pod-replica_endpoint.yml | 15 - ...e-in-backend-and-2-pod-replica_ingress.yml | 15 - ...e-in-backend-and-2-pod-replica_service.yml | 14 - ...ort-name-in-backend-and-no-pod-replica.yml | 56 ++ ...in-backend-and-no-pod-replica_endpoint.yml | 21 - ...-in-backend-and-no-pod-replica_ingress.yml | 15 - ...-in-backend-and-no-pod-replica_service.yml | 14 - ...rt-value-in-backend-and-no-pod-replica.yml | 56 ++ ...in-backend-and-no-pod-replica_endpoint.yml | 21 - ...-in-backend-and-no-pod-replica_ingress.yml | 15 - ...-in-backend-and-no-pod-replica_service.yml | 14 - .../fixtures/Ingress-with-prefix-pathType.yml | 41 ++ ...with-service-with-externalName-enabled.yml | 32 ++ ...vice-with-externalName-enabled_ingress.yml | 15 - ...vice-with-externalName-enabled_service.yml | 13 - ...Ingress-with-service-with-externalName.yml | 32 ++ ...with-service-with-externalName_ingress.yml | 15 - ...with-service-with-externalName_service.yml | 13 - ...with-two-different-rules-with-one-path.yml | 55 ++ ...different-rules-with-one-path_endpoint.yml | 15 - ...-different-rules-with-one-path_ingress.yml | 20 - ...-different-rules-with-one-path_service.yml | 10 - ...g-same-service-and-different-port-name.yml | 57 +++ ...rvice-and-different-port-name_endpoint.yml | 15 - ...ervice-and-different-port-name_ingress.yml | 19 - ...ervice-and-different-port-name_service.yml | 14 - .../fixtures/Ingress-with-two-services.yml | 86 ++++ .../Ingress-with-two-services_ingress.yml | 22 - .../Ingress-with-two-services_service.yml | 22 - ...Ingress-with-unknown-service-port-name.yml | 44 ++ ...ith-unknown-service-port-name_endpoint.yml | 12 - ...with-unknown-service-port-name_ingress.yml | 15 - ...with-unknown-service-port-name_service.yml | 10 - .../Ingress-with-unknown-service-port.yml | 44 ++ ...ess-with-unknown-service-port_endpoint.yml | 12 - ...ress-with-unknown-service-port_ingress.yml | 15 - ...ress-with-unknown-service-port_service.yml | 10 - .../fixtures/Ingress-with-wildcard-host.yml | 43 ++ .../Ingress-with-wildcard-host_endpoint.yml | 11 - .../Ingress-with-wildcard-host_ingress.yml | 15 - .../Ingress-with-wildcard-host_service.yml | 11 - ...ik-ingressClass-and-unknown-annotation.yml | 44 ++ ...sClass-and-unknown-annotation_endpoint.yml | 11 - ...ssClass-and-unknown-annotation_ingress.yml | 16 - ...ssClass-and-unknown-annotation_service.yml | 10 - ...e-Service-Ingress-(without-any-rules).yml} | 43 +- ...e-Ingress-(without-any-rules)_endpoint.yml | 15 - ...ce-Ingress-(without-any-rules)_ingress.yml | 10 - ...ce-Ingress-(without-any-rules)_service.yml | 10 - .../ingress/fixtures/TLS-support.yml | 97 ++++ .../ingress/fixtures/TLS-support_endpoint.yml | 12 - .../ingress/fixtures/TLS-support_ingress.yml | 38 -- .../ingress/fixtures/TLS-support_secret.yml | 9 - .../ingress/fixtures/TLS-support_service.yml | 26 - ...8-Ingress-with-empty-pathType_endpoint.yml | 11 - ...18-Ingress-with-empty-pathType_ingress.yml | 16 - ...18-Ingress-with-empty-pathType_service.yml | 10 - ...8-Ingress-with-exact-pathType_endpoint.yml | 11 - ...18-Ingress-with-exact-pathType_ingress.yml | 14 - ...18-Ingress-with-exact-pathType_service.yml | 10 - ...plementationSpecific-pathType_endpoint.yml | 11 - ...mplementationSpecific-pathType_ingress.yml | 16 - ...mplementationSpecific-pathType_service.yml | 10 - ...gress-with-ingress-annotation_endpoint.yml | 11 - ...ngress-with-ingress-annotation_ingress.yml | 15 - ...ngress-with-ingress-annotation_service.yml | 10 - ...v18-Ingress-with-ingressClass_endpoint.yml | 11 - .../v18-Ingress-with-ingressClass_ingress.yml | 14 - ...Ingress-with-ingressClass_ingressclass.yml | 6 - .../v18-Ingress-with-ingressClass_service.yml | 10 - ...ss-with-ingressClasses-filter_endpoint.yml | 11 - ...ess-with-ingressClasses-filter_ingress.yml | 30 -- ...ith-ingressClasses-filter_ingressclass.yml | 14 - ...ess-with-ingressClasses-filter_service.yml | 10 - ...ess-with-missing-ingressClass_endpoint.yml | 11 - ...ress-with-missing-ingressClass_ingress.yml | 14 - ...ress-with-missing-ingressClass_service.yml | 10 - ...-with-multiple-ingressClasses_endpoint.yml | 11 - ...s-with-multiple-ingressClasses_ingress.yml | 30 -- ...h-multiple-ingressClasses_ingressclass.yml | 14 - ...s-with-multiple-ingressClasses_service.yml | 10 - .../v18-Ingress-with-no-pathType_endpoint.yml | 11 - .../v18-Ingress-with-no-pathType_ingress.yml | 15 - .../v18-Ingress-with-no-pathType_service.yml | 10 - ...-Ingress-with-prefix-pathType_endpoint.yml | 11 - ...8-Ingress-with-prefix-pathType_ingress.yml | 14 - ...8-Ingress-with-prefix-pathType_service.yml | 10 - ...9-Ingress-with-defaultbackend_endpoint.yml | 24 - ...19-Ingress-with-defaultbackend_ingress.yml | 12 - ...19-Ingress-with-defaultbackend_service.yml | 22 - ...9-Ingress-with-empty-pathType_endpoint.yml | 11 - ...19-Ingress-with-empty-pathType_service.yml | 10 - ...9-Ingress-with-exact-pathType_endpoint.yml | 11 - ...19-Ingress-with-exact-pathType_ingress.yml | 16 - ...19-Ingress-with-exact-pathType_service.yml | 10 - ...plementationSpecific-pathType_endpoint.yml | 11 - ...mplementationSpecific-pathType_service.yml | 10 - ...gress-with-ingress-annotation_endpoint.yml | 11 - ...ngress-with-ingress-annotation_ingress.yml | 17 - ...ngress-with-ingress-annotation_service.yml | 10 - ...v19-Ingress-with-ingressClass_endpoint.yml | 11 - .../v19-Ingress-with-ingressClass_ingress.yml | 16 - ...Ingress-with-ingressClass_ingressclass.yml | 6 - .../v19-Ingress-with-ingressClass_service.yml | 10 - ...9-Ingress-with-ingressClassv1_endpoint.yml | 11 - ...19-Ingress-with-ingressClassv1_ingress.yml | 16 - ...gress-with-ingressClassv1_ingressclass.yml | 6 - ...19-Ingress-with-ingressClassv1_service.yml | 10 - ...ess-with-missing-ingressClass_endpoint.yml | 11 - ...ress-with-missing-ingressClass_ingress.yml | 16 - ...ress-with-missing-ingressClass_service.yml | 10 - .../v19-Ingress-with-named-port_endpoint.yml | 12 - .../v19-Ingress-with-named-port_ingress.yml | 16 - .../v19-Ingress-with-named-port_service.yml | 12 - .../v19-Ingress-with-no-pathType_endpoint.yml | 11 - .../v19-Ingress-with-no-pathType_ingress.yml | 17 - .../v19-Ingress-with-no-pathType_service.yml | 10 - ...-Ingress-with-prefix-pathType_endpoint.yml | 11 - ...9-Ingress-with-prefix-pathType_service.yml | 10 - pkg/provider/kubernetes/ingress/kubernetes.go | 4 +- .../kubernetes/ingress/kubernetes_test.go | 484 +----------------- 248 files changed, 2614 insertions(+), 3640 deletions(-) create mode 100644 pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Empty-ingresses.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_service.yml rename pkg/provider/kubernetes/ingress/fixtures/{Ingress-one-rule-host-only_ingress.yml => Ingress-one-rule-host-only.yml} (72%) create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-host-syntax_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-host-syntax_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-path-syntax_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-path-syntax_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443).yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https).yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https).yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-defaultbackend.yml rename pkg/provider/kubernetes/ingress/fixtures/{v19-Ingress-with-empty-pathType_ingress.yml => Ingress-with-empty-pathType.yml} (53%) create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-exact-pathType.yml rename pkg/provider/kubernetes/ingress/fixtures/{v19-Ingress-with-implementationSpecific-pathType_ingress.yml => Ingress-with-implementationSpecific-pathType.yml} (51%) create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingress-annotation.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClasses-filter.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-missing-ingressClass.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-multiple-ingressClasses.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-named-port.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoint_service.yml rename pkg/provider/kubernetes/ingress/fixtures/{v19-Ingress-with-prefix-pathType_ingress.yml => Ingress-with-one-service-without-endpoints-subset.yml} (51%) delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-host-syntax_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-host-syntax_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-path-syntax_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-path-syntax_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-prefix-pathType.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_service.yml rename pkg/provider/kubernetes/ingress/fixtures/{Ingress-with-two-services_endpoint.yml => Single-Service-Ingress-(without-any-rules).yml} (50%) delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_service.yml create mode 100644 pkg/provider/kubernetes/ingress/fixtures/TLS-support.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/TLS-support_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/TLS-support_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/TLS-support_secret.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/TLS-support_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_ingressclass.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_ingressclass.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_ingressclass.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_ingressclass.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_ingressclass.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_ingress.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_service.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_endpoint.yml delete mode 100644 pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_service.yml diff --git a/.golangci.yml b/.golangci.yml index c28db5839..3b42c4aad 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -33,6 +33,10 @@ linters-settings: desc: not allowed - pkg: "github.com/pkg/errors" desc: Should be replaced by standard lib errors package + - pkg: "k8s.io/api/networking/v1beta1" + desc: This API is deprecated + - pkg: "k8s.io/api/extensions/v1beta1" + desc: This API is deprecated godox: keywords: - FIXME @@ -47,14 +51,10 @@ linters-settings: pkg: "k8s.io/api/core/v1" - alias: netv1 pkg: "k8s.io/api/networking/v1" - - alias: netv1beta1 - pkg: "k8s.io/api/networking/v1beta1" - alias: admv1 pkg: "k8s.io/api/admission/v1" - alias: admv1beta1 pkg: "k8s.io/api/admission/v1beta1" - - alias: extv1beta1 - pkg: "k8s.io/api/extensions/v1beta1" - alias: metav1 pkg: "k8s.io/apimachinery/pkg/apis/meta/v1" - alias: ktypes diff --git a/docs/content/deprecation/features.md b/docs/content/deprecation/features.md index fa41c56b0..f74a0bd2d 100644 --- a/docs/content/deprecation/features.md +++ b/docs/content/deprecation/features.md @@ -2,12 +2,17 @@ This page is maintained and updated periodically to reflect our roadmap and any decisions around feature deprecation. -| Feature | Deprecated | End of Support | Removal | -|-----------------------------------------------------------------------------------------------------|------------|----------------|---------| -| [Kubernetes CRDs API Version `traefik.io/v1alpha1`](#kubernetes-crds-api-version-traefikiov1alpha1) | N/A | N/A | 3.0 | +| Feature | Deprecated | End of Support | Removal | +|----------------------------------------------------------------------------------------------------------------------|------------|----------------|---------| +| [Kubernetes CRDs API Version `traefik.io/v1alpha1`](#kubernetes-crds-api-version-traefikiov1alpha1) | N/A | N/A | 3.0 | +| [Kubernetes Ingress API Version `networking.k8s.io/v1beta1`](#kubernetes-ingress-api-version-networkingk8siov1beta1) | N/A | N/A | 3.0 | ## Impact ### Kubernetes CRDs API Version `traefik.io/v1alpha1` The newly introduced Kubernetes CRD API Version `traefik.io/v1alpha1` will subsequently be removed in Traefik v3. The following version will be `traefik.io/v1`. + +### Kubernetes Ingress API Version `networking.k8s.io/v1beta1` + +The Kubernetes Ingress API Version `networking.k8s.io/v1beta1` is removed in v3. Please use the API Group `networking.k8s.io/v1` instead. diff --git a/docs/content/migration/v2-to-v3.md b/docs/content/migration/v2-to-v3.md index 6de93ca9c..1f5f0de46 100644 --- a/docs/content/migration/v2-to-v3.md +++ b/docs/content/migration/v2-to-v3.md @@ -85,7 +85,7 @@ In v3, the InfluxDB v1 metrics provider has been removed because InfluxDB v1.x m ### Kubernetes CRDs API Group `traefik.containo.us` -In v3 the Kubernetes CRDs API Group `traefik.containo.us` has been removed. +In v3, the Kubernetes CRDs API Group `traefik.containo.us` has been removed. Please use the API Group `traefik.io` instead. ## Docker & Docker Swarm @@ -94,3 +94,10 @@ In v3, the provider Docker has been split into 2 providers: - Docker provider (without Swarm support) - Swarm provider (Swarm support only) + +### Kubernetes Ingress API Group `networking.k8s.io/v1beta1` + +As v3 is targeting support for Kubernetes v1.23+, +the Kubernetes Ingress API Group `networking.k8s.io/v1beta1` ([removed since Kubernetes v1.22](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#ingress-v122)) support has been removed. + +Please use the API Group `networking.k8s.io/v1` instead. diff --git a/docs/content/providers/kubernetes-ingress.md b/docs/content/providers/kubernetes-ingress.md index d6eb1b4e9..b51d87d79 100644 --- a/docs/content/providers/kubernetes-ingress.md +++ b/docs/content/providers/kubernetes-ingress.md @@ -13,7 +13,7 @@ it manages access to cluster services by supporting the [Ingress](https://kubern ## Requirements -Traefik supports `1.14+` Kubernetes clusters. +Traefik supports `1.23+` Kubernetes clusters. ## Routing Configuration @@ -68,28 +68,6 @@ spec: number: 80 ``` -```yaml tab="Ingress v1beta1 (deprecated)" -apiVersion: networking.k8s.io/v1beta1 -kind: Ingress -metadata: - name: foo - namespace: production - -spec: - rules: - - host: example.net - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - - path: /foo - backend: - serviceName: service1 - servicePort: 80 -``` - ## LetsEncrypt Support with the Ingress Provider By design, Traefik is a stateless application, @@ -257,46 +235,7 @@ Value of `kubernetes.io/ingress.class` annotation that identifies Ingress object If the parameter is set, only Ingresses containing an annotation with the same value are processed. Otherwise, Ingresses missing the annotation, having an empty value, or the value `traefik` are processed. -??? info "Kubernetes 1.18+" - - If the Kubernetes cluster version is 1.18+, - the new `IngressClass` resource can be leveraged to identify Ingress objects that should be processed. - In that case, Traefik will look for an `IngressClass` in the cluster with the controller value equal to *traefik.io/ingress-controller*. - - In addition to the controller value matching mechanism, the property `ingressClass` (if set) will be used to select IngressClasses by applying a strict matching on their name. - - Please see [this article](https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/) for more information or the example below. - - ```yaml tab="IngressClass" - apiVersion: networking.k8s.io/v1beta1 - kind: IngressClass - metadata: - name: traefik-lb - spec: - controller: traefik.io/ingress-controller - ``` - - ```yaml tab="Ingress" - apiVersion: networking.k8s.io/v1beta1 - kind: Ingress - metadata: - name: example-ingress - spec: - ingressClassName: traefik-lb - rules: - - host: "*.example.com" - http: - paths: - - path: /example - backend: - serviceName: example-service - servicePort: 80 - ``` - -??? info "Kubernetes 1.19+" - - If the Kubernetes cluster version is 1.19+, - prefer using the `networking.k8s.io/v1` [apiVersion](https://v1-19.docs.kubernetes.io/docs/setup/release/notes/#api-change) of `Ingress` and `IngressClass`. +??? info "Example" ```yaml tab="IngressClass" apiVersion: networking.k8s.io/v1 diff --git a/docs/content/routing/providers/kubernetes-ingress.md b/docs/content/routing/providers/kubernetes-ingress.md index bb87501c4..5f9a32073 100644 --- a/docs/content/routing/providers/kubernetes-ingress.md +++ b/docs/content/routing/providers/kubernetes-ingress.md @@ -97,29 +97,6 @@ which in turn will create the resulting routers, services, handlers, etc. number: 80 ``` - ```yaml tab="Ingress v1beta1 (deprecated)" - apiVersion: networking.k8s.io/v1beta1 - kind: Ingress - metadata: - name: myingress - annotations: - traefik.ingress.kubernetes.io/router.entrypoints: web - - spec: - rules: - - host: example.com - http: - paths: - - path: /bar - backend: - serviceName: whoami - servicePort: 80 - - path: /foo - backend: - serviceName: whoami - servicePort: 80 - ``` - ```yaml tab="Traefik" apiVersion: v1 kind: ServiceAccount @@ -500,29 +477,6 @@ This way, any Ingress attached to this Entrypoint will have TLS termination by d number: 80 ``` - ```yaml tab="Ingress v1beta1 (deprecated)" - apiVersion: networking.k8s.io/v1beta1 - kind: Ingress - metadata: - name: myingress - annotations: - traefik.ingress.kubernetes.io/router.entrypoints: websecure - - spec: - rules: - - host: example.com - http: - paths: - - path: /bar - backend: - serviceName: whoami - servicePort: 80 - - path: /foo - backend: - serviceName: whoami - servicePort: 80 - ``` - ```yaml tab="Traefik" apiVersion: v1 kind: ServiceAccount @@ -709,30 +663,6 @@ For more options, please refer to the available [annotations](#on-ingress). number: 80 ``` - ```yaml tab="Ingress v1beta1 (deprecated)" - apiVersion: networking.k8s.io/v1beta1 - kind: Ingress - metadata: - name: myingress - annotations: - traefik.ingress.kubernetes.io/router.entrypoints: websecure - traefik.ingress.kubernetes.io/router.tls: true - - spec: - rules: - - host: example.com - http: - paths: - - path: /bar - backend: - serviceName: whoami - servicePort: 80 - - path: /foo - backend: - serviceName: whoami - servicePort: 80 - ``` - ```yaml tab="Traefik" apiVersion: v1 kind: ServiceAccount @@ -856,29 +786,6 @@ For more options, please refer to the available [annotations](#on-ingress). - secretName: supersecret ``` - ```yaml tab="Ingress v1beta1 (deprecated)" - apiVersion: networking.k8s.io/v1beta1 - kind: Ingress - metadata: - name: foo - namespace: production - - spec: - rules: - - host: example.net - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - # Only selects which certificate(s) should be loaded from the secret, in order to terminate TLS. - # Doesn't enable TLS for that ingress (hence for the underlying router). - # Please see the TLS annotations on ingress made for that purpose. - tls: - - secretName: supersecret - ``` - ```yaml tab="Secret" apiVersion: v1 kind: Secret @@ -947,18 +854,6 @@ spec: number: 80 ``` -```yaml tab="Ingress v1beta1 (deprecated)" -apiVersion: networking.k8s.io/v1beta1 -kind: Ingress -metadata: - name: cheese - -spec: - defaultBackend: - serviceName: stilton - serverPort: 80 -``` - This ingress follows the Global Default Backend property of ingresses. This will allow users to create a "default router" that will match all unmatched requests. diff --git a/integration/fixtures/k8s/03-ingress-https.yml b/integration/fixtures/k8s/03-ingress-https.yml index dc6ec813a..c466f7252 100644 --- a/integration/fixtures/k8s/03-ingress-https.yml +++ b/integration/fixtures/k8s/03-ingress-https.yml @@ -1,4 +1,4 @@ -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test.ingress.https @@ -11,7 +11,10 @@ spec: paths: - path: /whoami backend: - serviceName: whoami - servicePort: http + service: + name: whoami + port: + name: http + pathType: Prefix tls: - secretName: tls-cert diff --git a/integration/fixtures/k8s/03-ingress.yml b/integration/fixtures/k8s/03-ingress.yml index 22dde97cc..4985784b9 100644 --- a/integration/fixtures/k8s/03-ingress.yml +++ b/integration/fixtures/k8s/03-ingress.yml @@ -1,4 +1,4 @@ -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test.ingress @@ -13,5 +13,8 @@ spec: paths: - path: /whoami backend: - serviceName: whoami - servicePort: http + service: + name: whoami + port: + name: http + pathType: Prefix diff --git a/integration/fixtures/k8s/08-ingressclass.yml b/integration/fixtures/k8s/08-ingressclass.yml index 7ae47a208..c679cbbfb 100644 --- a/integration/fixtures/k8s/08-ingressclass.yml +++ b/integration/fixtures/k8s/08-ingressclass.yml @@ -1,4 +1,4 @@ -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: traefik-keep @@ -7,7 +7,7 @@ spec: --- kind: Ingress -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 metadata: name: "whoami-keep-route" spec: @@ -18,11 +18,14 @@ spec: paths: - path: "/keep" backend: - serviceName: "whoami" - servicePort: 80 + service: + name: whoami + port: + number: 80 + pathType: Prefix --- -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: traefik-drop @@ -31,7 +34,7 @@ spec: --- kind: Ingress -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 metadata: name: "whoami-drop-route" spec: @@ -42,11 +45,14 @@ spec: paths: - path: "/drop" backend: - serviceName: "whoami" - servicePort: 80 + service: + name: whoami + port: + number: 80 + pathType: Prefix --- -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: traefik-not-ingress-controller @@ -55,7 +61,7 @@ spec: --- kind: Ingress -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 metadata: name: "whoami-drop-ingress" spec: @@ -66,5 +72,8 @@ spec: paths: - path: "/ingress" backend: - serviceName: "whoami" - servicePort: 80 + service: + name: whoami + port: + number: 80 + pathType: Prefix diff --git a/integration/resources/compose/k8s.yml b/integration/resources/compose/k8s.yml index 7b15d5ed4..d718743c1 100644 --- a/integration/resources/compose/k8s.yml +++ b/integration/resources/compose/k8s.yml @@ -1,7 +1,7 @@ version: "3.8" services: server: - image: rancher/k3s:v1.20.15-k3s1 + image: rancher/k3s:v1.23.17-k3s1 command: server --disable-agent --no-deploy coredns --no-deploy servicelb --no-deploy traefik --no-deploy local-storage --no-deploy metrics-server --log /output/k3s.log --bind-address=server --tls-san=server environment: K3S_CLUSTER_SECRET: somethingtotallyrandom @@ -12,7 +12,7 @@ services: - ./fixtures/k8s:/var/lib/rancher/k3s/server/manifests node: - image: rancher/k3s:v1.20.15-k3s1 + image: rancher/k3s:v1.23.17-k3s1 privileged: true environment: K3S_URL: https://server:6443 diff --git a/pkg/provider/kubernetes/ingress/client.go b/pkg/provider/kubernetes/ingress/client.go index b0388e1fa..8bbdbc637 100644 --- a/pkg/provider/kubernetes/ingress/client.go +++ b/pkg/provider/kubernetes/ingress/client.go @@ -15,11 +15,9 @@ import ( traefikversion "github.com/traefik/traefik/v3/pkg/version" corev1 "k8s.io/api/core/v1" netv1 "k8s.io/api/networking/v1" - netv1beta1 "k8s.io/api/networking/v1beta1" kerror "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "k8s.io/apimachinery/pkg/util/intstr" kinformers "k8s.io/client-go/informers" kclientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" @@ -42,7 +40,6 @@ type Client interface { GetSecret(namespace, name string) (*corev1.Secret, bool, error) GetEndpoints(namespace, name string) (*corev1.Endpoints, bool, error) UpdateIngressStatus(ing *netv1.Ingress, ingStatus []netv1.IngressLoadBalancerIngress) error - GetServerVersion() *version.Version } type clientWrapper struct { @@ -167,16 +164,9 @@ func (c *clientWrapper) WatchAll(namespaces []string, stopCh <-chan struct{}) (< for _, ns := range namespaces { factoryIngress := kinformers.NewSharedInformerFactoryWithOptions(c.clientset, resyncPeriod, kinformers.WithNamespace(ns), kinformers.WithTweakListOptions(matchesLabelSelector)) - if supportsNetworkingV1Ingress(serverVersion) { - _, err = factoryIngress.Networking().V1().Ingresses().Informer().AddEventHandler(eventHandler) - if err != nil { - return nil, err - } - } else { - _, err = factoryIngress.Networking().V1beta1().Ingresses().Informer().AddEventHandler(eventHandler) - if err != nil { - return nil, err - } + _, err = factoryIngress.Networking().V1().Ingresses().Informer().AddEventHandler(eventHandler) + if err != nil { + return nil, err } c.factoriesIngress[ns] = factoryIngress @@ -226,19 +216,12 @@ func (c *clientWrapper) WatchAll(namespaces []string, stopCh <-chan struct{}) (< } } - if !c.disableIngressClassInformer && supportsIngressClass(serverVersion) { + if !c.disableIngressClassInformer { c.clusterFactory = kinformers.NewSharedInformerFactoryWithOptions(c.clientset, resyncPeriod) - if supportsNetworkingV1Ingress(serverVersion) { - _, err = c.clusterFactory.Networking().V1().IngressClasses().Informer().AddEventHandler(eventHandler) - if err != nil { - return nil, err - } - } else { - _, err = c.clusterFactory.Networking().V1beta1().IngressClasses().Informer().AddEventHandler(eventHandler) - if err != nil { - return nil, err - } + _, err = c.clusterFactory.Networking().V1().IngressClasses().Informer().AddEventHandler(eventHandler) + if err != nil { + return nil, err } c.clusterFactory.Start(stopCh) @@ -257,98 +240,26 @@ func (c *clientWrapper) WatchAll(namespaces []string, stopCh <-chan struct{}) (< func (c *clientWrapper) GetIngresses() []*netv1.Ingress { var results []*netv1.Ingress - isNetworkingV1Supported := supportsNetworkingV1Ingress(c.serverVersion) - for ns, factory := range c.factoriesIngress { - if isNetworkingV1Supported { - // networking - listNew, err := factory.Networking().V1().Ingresses().Lister().List(labels.Everything()) - if err != nil { - log.Error().Err(err).Msgf("Failed to list ingresses in namespace %s", ns) - continue - } - - results = append(results, listNew...) - continue - } - - // networking beta - list, err := factory.Networking().V1beta1().Ingresses().Lister().List(labels.Everything()) + // networking + listNew, err := factory.Networking().V1().Ingresses().Lister().List(labels.Everything()) if err != nil { log.Error().Err(err).Msgf("Failed to list ingresses in namespace %s", ns) continue } - for _, ing := range list { - n, err := convert[netv1.Ingress](ing) - if err != nil { - log.Error().Err(err).Msgf("Failed to convert ingress %s from networking/v1beta1 to networking/v1", ns) - continue - } - - addServiceFromV1Beta1(n, *ing) - - results = append(results, n) - } + results = append(results, listNew...) } + return results } -func addServiceFromV1Beta1(ing *netv1.Ingress, old netv1beta1.Ingress) { - if old.Spec.Backend != nil { - port := netv1.ServiceBackendPort{} - if old.Spec.Backend.ServicePort.Type == intstr.Int { - port.Number = old.Spec.Backend.ServicePort.IntVal - } else { - port.Name = old.Spec.Backend.ServicePort.StrVal - } - - if old.Spec.Backend.ServiceName != "" { - ing.Spec.DefaultBackend = &netv1.IngressBackend{ - Service: &netv1.IngressServiceBackend{ - Name: old.Spec.Backend.ServiceName, - Port: port, - }, - } - } - } - - for rc, rule := range ing.Spec.Rules { - if rule.HTTP == nil { - continue - } - for pc, path := range rule.HTTP.Paths { - if path.Backend.Service == nil { - oldBackend := old.Spec.Rules[rc].HTTP.Paths[pc].Backend - - port := netv1.ServiceBackendPort{} - if oldBackend.ServicePort.Type == intstr.Int { - port.Number = oldBackend.ServicePort.IntVal - } else { - port.Name = oldBackend.ServicePort.StrVal - } - - svc := netv1.IngressServiceBackend{ - Name: oldBackend.ServiceName, - Port: port, - } - - ing.Spec.Rules[rc].HTTP.Paths[pc].Backend.Service = &svc - } - } - } -} - // UpdateIngressStatus updates an Ingress with a provided status. func (c *clientWrapper) UpdateIngressStatus(src *netv1.Ingress, ingStatus []netv1.IngressLoadBalancerIngress) error { if !c.isWatchedNamespace(src.Namespace) { return fmt.Errorf("failed to get ingress %s/%s: namespace is not within watched namespaces", src.Namespace, src.Name) } - if !supportsNetworkingV1Ingress(c.serverVersion) { - return c.updateIngressStatusOld(src, ingStatus) - } - ing, err := c.factoriesIngress[c.lookupNamespace(src.Namespace)].Networking().V1().Ingresses().Lister().Ingresses(src.Namespace).Get(src.Name) if err != nil { return fmt.Errorf("failed to get ingress %s/%s: %w", src.Namespace, src.Name, err) @@ -376,43 +287,6 @@ func (c *clientWrapper) UpdateIngressStatus(src *netv1.Ingress, ingStatus []netv return nil } -func (c *clientWrapper) updateIngressStatusOld(src *netv1.Ingress, ingStatus []netv1.IngressLoadBalancerIngress) error { - ing, err := c.factoriesIngress[c.lookupNamespace(src.Namespace)].Networking().V1beta1().Ingresses().Lister().Ingresses(src.Namespace).Get(src.Name) - if err != nil { - return fmt.Errorf("failed to get ingress %s/%s: %w", src.Namespace, src.Name, err) - } - - logger := log.With().Str("namespace", ing.Namespace).Str("ingress", ing.Name).Logger() - - ingresses, err := convertSlice[netv1.IngressLoadBalancerIngress](ing.Status.LoadBalancer.Ingress) - if err != nil { - return err - } - - if isLoadBalancerIngressEquals(ingresses, ingStatus) { - logger.Debug().Msg("Skipping ingress status update") - return nil - } - - ingressesBeta1, err := convertSlice[netv1beta1.IngressLoadBalancerIngress](ingStatus) - if err != nil { - return err - } - - ingCopy := ing.DeepCopy() - ingCopy.Status = netv1beta1.IngressStatus{LoadBalancer: netv1beta1.IngressLoadBalancerStatus{Ingress: ingressesBeta1}} - - ctx, cancel := context.WithTimeout(context.Background(), defaultTimeout) - defer cancel() - - _, err = c.clientset.NetworkingV1beta1().Ingresses(ingCopy.Namespace).UpdateStatus(ctx, ingCopy, metav1.UpdateOptions{}) - if err != nil { - return fmt.Errorf("failed to update ingress status %s/%s: %w", src.Namespace, src.Name, err) - } - logger.Info().Msg("Updated ingress status") - return nil -} - // isLoadBalancerIngressEquals returns true if the given slices are equal, false otherwise. func isLoadBalancerIngressEquals(aSlice, bSlice []netv1.IngressLoadBalancerIngress) bool { if len(aSlice) != len(bSlice) { @@ -472,26 +346,6 @@ func (c *clientWrapper) GetIngressClasses() ([]*netv1.IngressClass, error) { } var ics []*netv1.IngressClass - if !supportsNetworkingV1Ingress(c.serverVersion) { - ingressClasses, err := c.clusterFactory.Networking().V1beta1().IngressClasses().Lister().List(labels.Everything()) - if err != nil { - return nil, err - } - - for _, ic := range ingressClasses { - if ic.Spec.Controller == traefikDefaultIngressClassController { - icN, err := convert[netv1.IngressClass](ic) - if err != nil { - log.Error().Err(err).Msgf("Failed to convert ingress class %s from networking/v1beta1 to networking/v1", ic.Name) - continue - } - ics = append(ics, icN) - } - } - - return ics, nil - } - ingressClasses, err := c.clusterFactory.Networking().V1().IngressClasses().Lister().List(labels.Everything()) if err != nil { return nil, err @@ -519,11 +373,6 @@ func (c *clientWrapper) lookupNamespace(ns string) string { return ns } -// GetServerVersion returns the cluster server version, or an error. -func (c *clientWrapper) GetServerVersion() *version.Version { - return c.serverVersion -} - // translateNotFoundError will translate a "not found" error to a boolean return // value which indicates if the resource exists and a nil error. func translateNotFoundError(err error) (bool, error) { @@ -547,14 +396,6 @@ func (c *clientWrapper) isWatchedNamespace(ns string) bool { return false } -// IngressClass objects are supported since Kubernetes v1.18. -// See https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class -func supportsIngressClass(serverVersion *version.Version) bool { - ingressClassVersion := version.Must(version.NewVersion("1.18")) - - return ingressClassVersion.LessThanOrEqual(serverVersion) -} - // filterIngressClassByName return a slice containing ingressclasses with the correct name. func filterIngressClassByName(ingressClassName string, ics []*netv1.IngressClass) []*netv1.IngressClass { var ingressClasses []*netv1.IngressClass @@ -567,11 +408,3 @@ func filterIngressClassByName(ingressClassName string, ics []*netv1.IngressClass return ingressClasses } - -// Ingress in networking.k8s.io/v1 is supported starting 1.19. -// thus, we query it in K8s starting 1.19. -func supportsNetworkingV1Ingress(serverVersion *version.Version) bool { - ingressNetworkingVersion := version.Must(version.NewVersion("1.19")) - - return serverVersion.GreaterThanOrEqual(ingressNetworkingVersion) -} diff --git a/pkg/provider/kubernetes/ingress/client_mock_test.go b/pkg/provider/kubernetes/ingress/client_mock_test.go index 518797a8c..6f565b25c 100644 --- a/pkg/provider/kubernetes/ingress/client_mock_test.go +++ b/pkg/provider/kubernetes/ingress/client_mock_test.go @@ -4,11 +4,9 @@ import ( "fmt" "os" - "github.com/hashicorp/go-version" "github.com/traefik/traefik/v3/pkg/provider/kubernetes/k8s" corev1 "k8s.io/api/core/v1" netv1 "k8s.io/api/networking/v1" - netv1beta1 "k8s.io/api/networking/v1beta1" ) var _ Client = (*clientMock)(nil) @@ -20,8 +18,6 @@ type clientMock struct { endpoints []*corev1.Endpoints ingressClasses []*netv1.IngressClass - serverVersion *version.Version - apiServiceError error apiSecretError error apiEndpointsError error @@ -30,46 +26,29 @@ type clientMock struct { watchChan chan interface{} } -func newClientMock(serverVersion string, paths ...string) clientMock { +func newClientMock(path string) clientMock { c := clientMock{} - c.serverVersion = version.Must(version.NewVersion(serverVersion)) + yamlContent, err := os.ReadFile(path) + if err != nil { + panic(fmt.Errorf("unable to read file %q: %w", path, err)) + } - for _, path := range paths { - yamlContent, err := os.ReadFile(path) - if err != nil { - panic(err) - } - - k8sObjects := k8s.MustParseYaml(yamlContent) - for _, obj := range k8sObjects { - switch o := obj.(type) { - case *corev1.Service: - c.services = append(c.services, o) - case *corev1.Secret: - c.secrets = append(c.secrets, o) - case *corev1.Endpoints: - c.endpoints = append(c.endpoints, o) - case *netv1beta1.Ingress: - ing, err := convert[netv1.Ingress](o) - if err != nil { - panic(err) - } - addServiceFromV1Beta1(ing, *o) - c.ingresses = append(c.ingresses, ing) - case *netv1.Ingress: - c.ingresses = append(c.ingresses, o) - case *netv1beta1.IngressClass: - ic, err := convert[netv1.IngressClass](o) - if err != nil { - panic(err) - } - c.ingressClasses = append(c.ingressClasses, ic) - case *netv1.IngressClass: - c.ingressClasses = append(c.ingressClasses, o) - default: - panic(fmt.Sprintf("Unknown runtime object %+v %T", o, o)) - } + k8sObjects := k8s.MustParseYaml(yamlContent) + for _, obj := range k8sObjects { + switch o := obj.(type) { + case *corev1.Service: + c.services = append(c.services, o) + case *corev1.Secret: + c.secrets = append(c.secrets, o) + case *corev1.Endpoints: + c.endpoints = append(c.endpoints, o) + case *netv1.Ingress: + c.ingresses = append(c.ingresses, o) + case *netv1.IngressClass: + c.ingressClasses = append(c.ingressClasses, o) + default: + panic(fmt.Sprintf("Unknown runtime object %+v %T", o, o)) } } @@ -80,10 +59,6 @@ func (c clientMock) GetIngresses() []*netv1.Ingress { return c.ingresses } -func (c clientMock) GetServerVersion() *version.Version { - return c.serverVersion -} - func (c clientMock) GetService(namespace, name string) (*corev1.Service, bool, error) { if c.apiServiceError != nil { return nil, false, c.apiServiceError diff --git a/pkg/provider/kubernetes/ingress/client_test.go b/pkg/provider/kubernetes/ingress/client_test.go index 402da8e45..44d611bcb 100644 --- a/pkg/provider/kubernetes/ingress/client_test.go +++ b/pkg/provider/kubernetes/ingress/client_test.go @@ -10,7 +10,6 @@ import ( "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" netv1 "k8s.io/api/networking/v1" - netv1beta1 "k8s.io/api/networking/v1beta1" kerror "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kschema "k8s.io/apimachinery/pkg/runtime/schema" @@ -289,72 +288,3 @@ func TestClientIgnoresEmptyEndpointUpdates(t *testing.T) { case <-time.After(50 * time.Millisecond): } } - -func TestClientUsesCorrectServerVersion(t *testing.T) { - ingressV1Beta := &netv1beta1.Ingress{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "default", - Name: "ingress-v1beta", - }, - } - - ingressV1 := &netv1.Ingress{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "default", - Name: "ingress-v1", - }, - } - - kubeClient := kubefake.NewSimpleClientset(ingressV1Beta, ingressV1) - - discovery, _ := kubeClient.Discovery().(*discoveryfake.FakeDiscovery) - discovery.FakedServerVersion = &kversion.Info{ - GitVersion: "v1.18.12+foobar", - } - - stopCh := make(chan struct{}) - - client := newClientImpl(kubeClient) - - eventCh, err := client.WatchAll(nil, stopCh) - require.NoError(t, err) - - select { - case event := <-eventCh: - ingress, ok := event.(*netv1beta1.Ingress) - require.True(t, ok) - - assert.Equal(t, "ingress-v1beta", ingress.Name) - case <-time.After(50 * time.Millisecond): - assert.Fail(t, "expected to receive event for ingress") - } - - select { - case <-eventCh: - assert.Fail(t, "received more than one event") - case <-time.After(50 * time.Millisecond): - } - - discovery.FakedServerVersion = &kversion.Info{ - GitVersion: "v1.19", - } - - eventCh, err = client.WatchAll(nil, stopCh) - require.NoError(t, err) - - select { - case event := <-eventCh: - ingress, ok := event.(*netv1.Ingress) - require.True(t, ok) - - assert.Equal(t, "ingress-v1", ingress.Name) - case <-time.After(50 * time.Millisecond): - assert.Fail(t, "expected to receive event for ingress") - } - - select { - case <-eventCh: - assert.Fail(t, "received more than one event") - case <-time.After(50 * time.Millisecond): - } -} diff --git a/pkg/provider/kubernetes/ingress/convert.go b/pkg/provider/kubernetes/ingress/convert.go index b0274d660..d5c5006fc 100644 --- a/pkg/provider/kubernetes/ingress/convert.go +++ b/pkg/provider/kubernetes/ingress/convert.go @@ -5,7 +5,6 @@ import ( corev1 "k8s.io/api/core/v1" netv1 "k8s.io/api/networking/v1" - netv1beta1 "k8s.io/api/networking/v1beta1" ) type marshaler interface { @@ -17,7 +16,7 @@ type unmarshaler interface { } type LoadBalancerIngress interface { - corev1.LoadBalancerIngress | netv1beta1.IngressLoadBalancerIngress | netv1.IngressLoadBalancerIngress + corev1.LoadBalancerIngress | netv1.IngressLoadBalancerIngress } // convertSlice converts slice of LoadBalancerIngress to slice of LoadBalancerIngress. diff --git a/pkg/provider/kubernetes/ingress/convert_test.go b/pkg/provider/kubernetes/ingress/convert_test.go index 0002b2b3a..285a6cb40 100644 --- a/pkg/provider/kubernetes/ingress/convert_test.go +++ b/pkg/provider/kubernetes/ingress/convert_test.go @@ -7,7 +7,6 @@ import ( "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" netv1 "k8s.io/api/networking/v1" - netv1beta1 "k8s.io/api/networking/v1beta1" ) func Test_convertSlice_corev1_to_networkingv1(t *testing.T) { @@ -45,76 +44,6 @@ func Test_convertSlice_corev1_to_networkingv1(t *testing.T) { assert.Equal(t, expected, actual) } -func Test_convertSlice_networkingv1beta1_to_networkingv1(t *testing.T) { - g := []netv1beta1.IngressLoadBalancerIngress{ - { - IP: "132456", - Hostname: "foo", - Ports: []netv1beta1.IngressPortStatus{ - { - Port: 123, - Protocol: "https", - Error: ptr("test"), - }, - }, - }, - } - - actual, err := convertSlice[netv1.IngressLoadBalancerIngress](g) - require.NoError(t, err) - - expected := []netv1.IngressLoadBalancerIngress{ - { - IP: "132456", - Hostname: "foo", - Ports: []netv1.IngressPortStatus{ - { - Port: 123, - Protocol: "https", - Error: ptr("test"), - }, - }, - }, - } - - assert.Equal(t, expected, actual) -} - -func Test_convertSlice_networkingv1_to_networkingv1beta1(t *testing.T) { - g := []netv1.IngressLoadBalancerIngress{ - { - IP: "132456", - Hostname: "foo", - Ports: []netv1.IngressPortStatus{ - { - Port: 123, - Protocol: "https", - Error: ptr("test"), - }, - }, - }, - } - - actual, err := convertSlice[netv1beta1.IngressLoadBalancerIngress](g) - require.NoError(t, err) - - expected := []netv1beta1.IngressLoadBalancerIngress{ - { - IP: "132456", - Hostname: "foo", - Ports: []netv1beta1.IngressPortStatus{ - { - Port: 123, - Protocol: "https", - Error: ptr("test"), - }, - }, - }, - } - - assert.Equal(t, expected, actual) -} - func Test_convert(t *testing.T) { g := &corev1.LoadBalancerIngress{ IP: "132456", diff --git a/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name.yml b/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name.yml new file mode 100644 index 000000000..616e2e3a8 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name.yml @@ -0,0 +1,102 @@ +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + - ip: 10.10.0.2 + ports: + - name: tchouk + port: 8089 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: toto + +subsets: + - addresses: + - ip: 10.11.0.1 + - ip: 10.11.0.2 + ports: + - name: tchouk + port: 8089 + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + name: tchouk + pathType: Prefix + - path: /foo + backend: + service: + name: service1 + port: + name: carotte + pathType: Prefix + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: toto + +spec: + rules: + - host: toto.traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + name: tchouk + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: tchouk + port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: toto + +spec: + ports: + - name: tchouk + port: 80 + clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_endpoint.yml deleted file mode 100644 index 3eee9b2a4..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_endpoint.yml +++ /dev/null @@ -1,29 +0,0 @@ ---- -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: - - addresses: - - ip: 10.10.0.1 - - ip: 10.10.0.2 - ports: - - name: tchouk - port: 8089 - ---- -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: toto - -subsets: - - addresses: - - ip: 10.11.0.1 - - ip: 10.11.0.2 - ports: - - name: tchouk - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_ingress.yml deleted file mode 100644 index a44f610bb..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_ingress.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: tchouk - - path: /foo - backend: - serviceName: service1 - servicePort: carotte - ---- -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: toto - -spec: - rules: - - host: toto.traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: tchouk diff --git a/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_service.yml b/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_service.yml deleted file mode 100644 index 0ca4be86a..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/2-ingresses-in-different-namespace-with-same-service-name_service.yml +++ /dev/null @@ -1,24 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: tchouk - port: 80 - clusterIP: 10.0.0.1 - ---- -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: toto - -spec: - ports: - - name: tchouk - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress.yml new file mode 100644 index 000000000..b002d0fc5 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress.yml @@ -0,0 +1,84 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + defaultBackend: + service: + name: service1 + port: + number: 80 + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + defaultBackend: + service: + name: service2 + port: + number: 80 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service2 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiversion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.30.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.41.0.1 + ports: + - port: 8080 + +--- +kind: Endpoints +apiversion: v1 +metadata: + name: service2 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_endpoint.yml deleted file mode 100644 index ea93c651a..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_endpoint.yml +++ /dev/null @@ -1,32 +0,0 @@ -kind: Endpoints -apiversion: v1 -metadata: - name: service1 - namespace: testing - -subsets: - - addresses: - - ip: 10.30.0.1 - ports: - - port: 8080 - - addresses: - - ip: 10.41.0.1 - ports: - - port: 8080 - ---- -kind: Endpoints -apiversion: v1 -metadata: - name: service2 - namespace: testing - -subsets: - - addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 - - addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_ingress.yml deleted file mode 100644 index 040df2ac8..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_ingress.yml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - backend: - serviceName: service1 - servicePort: 80 - ---- -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - backend: - serviceName: service2 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_service.yml deleted file mode 100644 index aa1c61f36..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Double-Single-Service-Ingress_service.yml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 - ---- -kind: Service -apiVersion: v1 -metadata: - name: service2 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Empty-ingresses.yml b/pkg/provider/kubernetes/ingress/fixtures/Empty-ingresses.yml new file mode 100644 index 000000000..e69de29bb diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path.yml new file mode 100644 index 000000000..14b050fbd --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path.yml @@ -0,0 +1,57 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + - host: traefik.courgette + http: + paths: + - path: /carotte + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_ingress.yml deleted file mode 100644 index 72c7aa9ed..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_ingress.yml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - - host: traefik.courgette - http: - paths: - - path: /carotte - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-Two-rules-with-one-host-and-one-path_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-host-only_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-host-only.yml similarity index 72% rename from pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-host-only_ingress.yml rename to pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-host-only.yml index 529c8d9ea..47a6d07e9 100644 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-host-only_ingress.yml +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-host-only.yml @@ -1,5 +1,5 @@ kind: Ingress -apiVersion: networking.k8s.io/v1beta1 +apiVersion: networking.k8s.io/v1 metadata: name: "" namespace: testing diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths.yml new file mode 100644 index 000000000..675ddac66 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths.yml @@ -0,0 +1,54 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + - path: /foo + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_ingress.yml deleted file mode 100644 index 4d6bd4349..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_ingress.yml +++ /dev/null @@ -1,19 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - - path: /foo - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-host-and-two-paths_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host.yml new file mode 100644 index 000000000..2cb84cb33 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host.yml @@ -0,0 +1,47 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_ingress.yml deleted file mode 100644 index 4e27d7f07..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-one-path-and-one-host_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths.yml new file mode 100644 index 000000000..8cd87d4c4 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths.yml @@ -0,0 +1,53 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + - path: /foo + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_ingress.yml deleted file mode 100644 index d04fc0ef5..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_ingress.yml +++ /dev/null @@ -1,18 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - - path: /foo - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-one-rule-with-two-paths_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled.yml new file mode 100644 index 000000000..41a68b162 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled.yml @@ -0,0 +1,31 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: example.com + namespace: testing + +spec: + rules: + - http: + paths: + - path: /foo + backend: + service: + name: service-foo + port: + number: 8080 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service-foo + namespace: testing + +spec: + ports: + - name: http + port: 8080 + type: ExternalName + externalName: "2001:0db8:3c4d:0015:0000:0000:1a2f:2a3b" diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled_ingress.yml deleted file mode 100644 index e41dde42f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: example.com - namespace: testing - -spec: - rules: - - http: - paths: - - path: /foo - backend: - serviceName: service-foo - servicePort: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled_service.yml deleted file mode 100644 index 67c193cfa..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints-externalname-enabled_service.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- -kind: Service -apiVersion: v1 -metadata: - name: service-foo - namespace: testing - -spec: - ports: - - name: http - port: 8080 - type: ExternalName - externalName: "2001:0db8:3c4d:0015:0000:0000:1a2f:2a3b" diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints.yml new file mode 100644 index 000000000..340f79a60 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints.yml @@ -0,0 +1,66 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: example.com + namespace: testing + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service-bar + port: + number: 8080 + pathType: Prefix + - path: /foo + backend: + service: + name: service-foo + port: + number: 8080 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service-bar + namespace: testing + +spec: + ports: + - name: http + port: 8080 + clusterIP: "fc00:f853:ccd:e793::1" + type: ClusterIP + +--- +kind: Service +apiVersion: v1 +metadata: + name: service-foo + namespace: testing + +spec: + ports: + - name: http + port: 8080 + type: ExternalName + externalName: "2001:0db8:3c4d:0015:0000:0000:1a2f:2a3b" + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service-bar + namespace: testing + +subsets: + - addresses: + - ip: "2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b" + ports: + - name: http + port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_endpoint.yml deleted file mode 100644 index e70dd1a13..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_endpoint.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service-bar - namespace: testing - -subsets: -- addresses: - - ip: "2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b" - ports: - - name: http - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_ingress.yml deleted file mode 100644 index a12baef74..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_ingress.yml +++ /dev/null @@ -1,18 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: example.com - namespace: testing - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service-bar - servicePort: 8080 - - path: /foo - backend: - serviceName: service-foo - servicePort: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_service.yml deleted file mode 100644 index da1189725..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-IPv6-endpoints_service.yml +++ /dev/null @@ -1,26 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service-bar - namespace: testing - -spec: - ports: - - name: http - port: 8080 - clusterIP: "fc00:f853:ccd:e793::1" - type: ClusterIP - ---- -kind: Service -apiVersion: v1 -metadata: - name: service-foo - namespace: testing - -spec: - ports: - - name: http - port: 8080 - type: ExternalName - externalName: "2001:0db8:3c4d:0015:0000:0000:1a2f:2a3b" diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-host-syntax_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-host-syntax_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-host-syntax_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-host-syntax_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-host-syntax_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-host-syntax_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-path-syntax_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-path-syntax_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-path-syntax_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-path-syntax_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-path-syntax_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-bad-path-syntax_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443).yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443).yml new file mode 100644 index 000000000..0b3f020db --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443).yml @@ -0,0 +1,47 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 443 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 443 + targetPort: 8443 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8443 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8443 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 deleted file mode 100644 index 2c5387099..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8443 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8443 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_ingress.yml deleted file mode 100644 index 582a06a56..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 443 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 deleted file mode 100644 index 8c4b63324..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(port-==-443)_service.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 443 - targetPort: 8443 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https).yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https).yml new file mode 100644 index 000000000..46227d191 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https).yml @@ -0,0 +1,50 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 8443 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: https + protocol: "" + port: 8443 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - name: https + port: 8443 + - addresses: + - ip: 10.21.0.1 + ports: + - name: https + port: 8443 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_endpoint.yml deleted file mode 100644 index b409a7851..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_endpoint.yml +++ /dev/null @@ -1,17 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - name: https - port: 8443 -- addresses: - - ip: 10.21.0.1 - ports: - - name: https - port: 8443 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_ingress.yml deleted file mode 100644 index 544c4bb82..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 8443 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_service.yml deleted file mode 100644 index 106e85b97..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-==-https)_service.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: https - protocol: "" - port: 8443 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https).yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https).yml new file mode 100644 index 000000000..3cce7e424 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https).yml @@ -0,0 +1,50 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 8443 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: https-foo + protocol: "" + port: 8443 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - name: https-foo + port: 8443 + - addresses: + - ip: 10.21.0.1 + ports: + - name: https-foo + port: 8443 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_endpoint.yml deleted file mode 100644 index 7e71390a4..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_endpoint.yml +++ /dev/null @@ -1,17 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - name: https-foo - port: 8443 -- addresses: - - ip: 10.21.0.1 - ports: - - name: https-foo - port: 8443 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_ingress.yml deleted file mode 100644 index 544c4bb82..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 8443 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_service.yml deleted file mode 100644 index 0a858f63b..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path-with-https-(portname-starts-with-https)_service.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: https-foo - protocol: "" - port: 8443 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path.yml new file mode 100644 index 000000000..fcfbc08b1 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path.yml @@ -0,0 +1,46 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_ingress.yml deleted file mode 100644 index c8c0919f6..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_service.yml deleted file mode 100644 index cc747fa4d..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-basic-rule-on-one-path_service.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods.yml new file mode 100644 index 000000000..8c65a2271 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods.yml @@ -0,0 +1,55 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + name: tchouk + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: carotte + port: 8082 + - name: tchouk + port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + - ip: 10.10.0.2 + ports: + - name: tchouk + port: 8089 + - addresses: + - ip: 10.10.0.1 + - ip: 10.10.0.2 + - ip: 10.10.0.3 + ports: + - name: carotte + port: 8090 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_endpoint.yml deleted file mode 100644 index 21004ad0f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_endpoint.yml +++ /dev/null @@ -1,20 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: - - addresses: - - ip: 10.10.0.1 - - ip: 10.10.0.2 - ports: - - name: tchouk - port: 8089 - - addresses: - - ip: 10.10.0.1 - - ip: 10.10.0.2 - - ip: 10.10.0.3 - ports: - - name: carotte - port: 8090 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_ingress.yml deleted file mode 100644 index ddc20ca40..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: tchouk diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_service.yml deleted file mode 100644 index 55437f6b2..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-a-named-port-matching-subset-of-service-pods_service.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: carotte - port: 8082 - - name: tchouk - port: 80 - clusterIP: 10.0.0.1 - diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations.yml new file mode 100644 index 000000000..8acc12c2f --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations.yml @@ -0,0 +1,70 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + annotations: + ingress.kubernetes.io/foo: bar + traefik.ingress.kubernetes.io/foo: bar + traefik.ingress.kubernetes.io/router.pathmatcher: Path + traefik.ingress.kubernetes.io/router.entrypoints: ep1,ep2 + traefik.ingress.kubernetes.io/router.middlewares: md1,md2 + traefik.ingress.kubernetes.io/router.priority: "42" + traefik.ingress.kubernetes.io/router.tls: "true" + traefik.ingress.kubernetes.io/router.tls.certresolver: foobar + traefik.ingress.kubernetes.io/router.tls.domains.0.main: domain.com + traefik.ingress.kubernetes.io/router.tls.domains.0.sans: one.domain.com,two.domain.com + traefik.ingress.kubernetes.io/router.tls.domains.1.main: example.com + traefik.ingress.kubernetes.io/router.tls.domains.1.sans: one.example.com,two.example.com + traefik.ingress.kubernetes.io/router.tls.options: foobar + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Exact + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + annotations: + ingress.kubernetes.io/foo: bar + traefik.ingress.kubernetes.io/foo: bar + traefik.ingress.kubernetes.io/service.serversscheme: protocol + traefik.ingress.kubernetes.io/service.serverstransport: foobar@file + traefik.ingress.kubernetes.io/service.passhostheader: "true" + traefik.ingress.kubernetes.io/service.sticky.cookie: "true" + traefik.ingress.kubernetes.io/service.sticky.cookie.httponly: "true" + traefik.ingress.kubernetes.io/service.sticky.cookie.name: foobar + traefik.ingress.kubernetes.io/service.sticky.cookie.secure: "true" + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_ingress.yml deleted file mode 100644 index 01247f76c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_ingress.yml +++ /dev/null @@ -1,28 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - ingress.kubernetes.io/foo: bar - traefik.ingress.kubernetes.io/foo: bar - traefik.ingress.kubernetes.io/router.pathmatcher: Path - traefik.ingress.kubernetes.io/router.entrypoints: ep1,ep2 - traefik.ingress.kubernetes.io/router.middlewares: md1,md2 - traefik.ingress.kubernetes.io/router.priority: "42" - traefik.ingress.kubernetes.io/router.tls: "true" - traefik.ingress.kubernetes.io/router.tls.certresolver: foobar - traefik.ingress.kubernetes.io/router.tls.domains.0.main: domain.com - traefik.ingress.kubernetes.io/router.tls.domains.0.sans: one.domain.com,two.domain.com - traefik.ingress.kubernetes.io/router.tls.domains.1.main: example.com - traefik.ingress.kubernetes.io/router.tls.domains.1.sans: one.example.com,two.example.com - traefik.ingress.kubernetes.io/router.tls.options: foobar - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_service.yml deleted file mode 100644 index 57c561247..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-annotations_service.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - annotations: - ingress.kubernetes.io/foo: bar - traefik.ingress.kubernetes.io/foo: bar - traefik.ingress.kubernetes.io/service.serversscheme: protocol - traefik.ingress.kubernetes.io/service.serverstransport: foobar@file - traefik.ingress.kubernetes.io/service.passhostheader: "true" - traefik.ingress.kubernetes.io/service.sticky.cookie: "true" - traefik.ingress.kubernetes.io/service.sticky.cookie.httponly: "true" - traefik.ingress.kubernetes.io/service.sticky.cookie.name: foobar - traefik.ingress.kubernetes.io/service.sticky.cookie.secure: "true" - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host.yml new file mode 100644 index 000000000..b9d2b116d --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host.yml @@ -0,0 +1,58 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: "*.bar" + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + + - host: "bar" + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_ingress.yml deleted file mode 100644 index a8aa09dcd..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_ingress.yml +++ /dev/null @@ -1,23 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: "*.bar" - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - - - host: "bar" - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-host_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path.yml new file mode 100644 index 000000000..d0ef9b15d --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path.yml @@ -0,0 +1,54 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - http: + paths: + - path: /foo/bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + + - path: /foo-bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_ingress.yml deleted file mode 100644 index abfe74519..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_ingress.yml +++ /dev/null @@ -1,19 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - http: - paths: - - path: /foo/bar - backend: - serviceName: service1 - servicePort: 80 - - - path: /foo-bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-conflicting-routers-on-path_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass.yml new file mode 100644 index 000000000..96ad4c8fd --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass.yml @@ -0,0 +1,44 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + annotations: + kubernetes.io/ingress.class: traefik + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_ingress.yml deleted file mode 100644 index 528bfd84d..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - kubernetes.io/ingress.class: traefik - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-default-traefik-ingressClass_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-defaultbackend.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-defaultbackend.yml new file mode 100644 index 000000000..7a9e31231 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-defaultbackend.yml @@ -0,0 +1,62 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: defaultbackend + namespace: testing + +spec: + defaultBackend: + service: + name: defaultservice + port: + number: 8080 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 +--- + +kind: Service +apiVersion: v1 +metadata: + name: defaultservice + namespace: testing + +spec: + ports: + - port: 8080 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 80 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: defaultservice + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-empty-pathType.yml similarity index 53% rename from pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_ingress.yml rename to pkg/provider/kubernetes/ingress/fixtures/Ingress-with-empty-pathType.yml index 2ea3bf486..e4557b59b 100644 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_ingress.yml +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-empty-pathType.yml @@ -16,3 +16,28 @@ spec: name: service1 port: number: 80 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-exact-pathType.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-exact-pathType.yml new file mode 100644 index 000000000..cf33330da --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-exact-pathType.yml @@ -0,0 +1,41 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + rules: + - http: + paths: + - path: /bar + pathType: Exact + backend: + service: + name: service1 + port: + number: 80 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-implementationSpecific-pathType.yml similarity index 51% rename from pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_ingress.yml rename to pkg/provider/kubernetes/ingress/fixtures/Ingress-with-implementationSpecific-pathType.yml index 9804e7eba..f410cd5f3 100644 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_ingress.yml +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-implementationSpecific-pathType.yml @@ -15,4 +15,29 @@ spec: service: name: service1 port: - number: 80 \ No newline at end of file + number: 80 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingress-annotation.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingress-annotation.yml new file mode 100644 index 000000000..3f9a500f5 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingress-annotation.yml @@ -0,0 +1,43 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + annotations: + kubernetes.io/ingress.class: traefik +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation.yml new file mode 100644 index 000000000..96ad4c8fd --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation.yml @@ -0,0 +1,44 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + annotations: + kubernetes.io/ingress.class: traefik + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_ingress.yml deleted file mode 100644 index 528bfd84d..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - kubernetes.io/ingress.class: traefik - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass-without-annotation_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass.yml new file mode 100644 index 000000000..e272a505a --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClass.yml @@ -0,0 +1,51 @@ +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + name: traefik-lb +spec: + controller: traefik.io/ingress-controller + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + ingressClassName: traefik-lb + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClasses-filter.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClasses-filter.yml new file mode 100644 index 000000000..edc1b2a05 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-ingressClasses-filter.yml @@ -0,0 +1,77 @@ +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + name: traefik-lb2 +spec: + controller: traefik.io/ingress-controller + +--- +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + name: traefik-lb +spec: + controller: traefik.io/ingress-controller + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + ingressClassName: traefik-lb + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + ingressClassName: traefik-lb2 + rules: + - http: + paths: + - path: /foo + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-missing-ingressClass.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-missing-ingressClass.yml new file mode 100644 index 000000000..26473bbb3 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-missing-ingressClass.yml @@ -0,0 +1,42 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + ingressClassName: traefik-lb + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-multiple-ingressClasses.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-multiple-ingressClasses.yml new file mode 100644 index 000000000..edc1b2a05 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-multiple-ingressClasses.yml @@ -0,0 +1,77 @@ +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + name: traefik-lb2 +spec: + controller: traefik.io/ingress-controller + +--- +apiVersion: networking.k8s.io/v1 +kind: IngressClass +metadata: + name: traefik-lb +spec: + controller: traefik.io/ingress-controller + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + ingressClassName: traefik-lb + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + ingressClassName: traefik-lb2 + rules: + - http: + paths: + - path: /foo + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-named-port.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-named-port.yml new file mode 100644 index 000000000..4d0394000 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-named-port.yml @@ -0,0 +1,43 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + rules: + - http: + paths: + - path: /bar + pathType: Prefix + backend: + service: + name: service1 + port: + name: foobar + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: foobar + port: 4711 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - name: foobar + port: 4711 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb.yml new file mode 100644 index 000000000..1c2c49b44 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb.yml @@ -0,0 +1,34 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 8080 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + annotations: + traefik.ingress.kubernetes.io/service.nativelb: "true" + +spec: + ports: + - port: 8080 + clusterIP: 10.0.0.1 + type: ClusterIP + externalName: traefik.wtf diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb_ingress.yml deleted file mode 100644 index f9645ad09..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb_service.yml deleted file mode 100644 index e394301fc..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-native-service-lb_service.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - annotations: - traefik.ingress.kubernetes.io/service.nativelb: "true" - -spec: - ports: - - port: 8080 - clusterIP: 10.0.0.1 - type: ClusterIP - externalName: traefik.wtf - diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation.yml new file mode 100644 index 000000000..7c69c842b --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation.yml @@ -0,0 +1,44 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + annotations: + kubernetes.io/ingress.class: toto + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_ingress.yml deleted file mode 100644 index 69d02cc8f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - kubernetes.io/ingress.class: toto - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-non-matching-provider-traefik-ingressClass-and-annotation_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path.yml new file mode 100644 index 000000000..8de5910ad --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path.yml @@ -0,0 +1,45 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: example.com + http: + paths: + - backend: + service: + name: example-com + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: example-com + namespace: testing + +spec: + ports: + - name: http + port: 80 + clusterIP: 10.0.0.1 + type: ClusterIP + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: example-com + namespace: testing + +subsets: + - addresses: + - ip: 10.11.0.1 + ports: + - name: http + port: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_endpoint.yml deleted file mode 100644 index 97545bba8..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_endpoint.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: example-com - namespace: testing - -subsets: -- addresses: - - ip: 10.11.0.1 - ports: - - name: http - port: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_ingress.yml deleted file mode 100644 index dd233845f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: example.com - http: - paths: - - backend: - serviceName: example-com - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_service.yml deleted file mode 100644 index d68c69269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-host-without-path_service.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: example-com - namespace: testing - -spec: - ports: - - name: http - port: 80 - clusterIP: 10.0.0.1 - type: ClusterIP diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoint.yml new file mode 100644 index 000000000..6437806f0 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoint.yml @@ -0,0 +1,29 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoint_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoint_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoint_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset.yml similarity index 51% rename from pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_ingress.yml rename to pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset.yml index bc88fc058..f0d9ffc8b 100644 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_ingress.yml +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset.yml @@ -3,14 +3,35 @@ apiVersion: networking.k8s.io/v1 metadata: name: "" namespace: testing + spec: rules: - - http: + - host: traefik.tchouk + http: paths: - path: /bar - pathType: Prefix backend: service: name: service1 port: number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_endpoint.yml deleted file mode 100644 index 72b65cf58..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_endpoint.yml +++ /dev/null @@ -1,5 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_ingress.yml deleted file mode 100644 index 4e27d7f07..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-one-service-without-endpoints-subset_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-host-syntax_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-host-syntax_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-host-syntax_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-host-syntax_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-host-syntax_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-host-syntax_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-path-syntax_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-path-syntax_endpoint.yml deleted file mode 100644 index ecd9082d9..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-path-syntax_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: - - addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 - - addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-path-syntax_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-path-syntax_service.yml deleted file mode 100644 index e05f39335..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-only-a-bad-path-syntax_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service.yml new file mode 100644 index 000000000..ccf4c9557 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service.yml @@ -0,0 +1,63 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.port + http: + paths: + - path: /port + backend: + service: + name: service1 + port: + number: 8080 + pathType: Prefix + +--- +apiVersion: v1 +kind: Service +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: http + port: 8080 + protocol: TCP + targetPort: http-api + - name: http-admin + port: 8079 + protocol: TCP + targetPort: http-admin + selector: + app: foo + sessionAffinity: None + type: ClusterIP + +--- +apiVersion: v1 +kind: Endpoints +metadata: + name: service1 + namespace: testing +subsets: + - addresses: + - ip: 10.0.0.1 + nodeName: admin.whoami.service1 + ports: + - name: http-admin + port: 8079 + protocol: TCP + - addresses: + - ip: 10.0.0.1 + nodeName: whoami.service1 + # targetRef: + ports: + - name: http + port: 8080 + protocol: TCP diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_endpoint.yml deleted file mode 100644 index dfe20f52d..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_endpoint.yml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v1 -kind: Endpoints -metadata: - name: service1 - namespace: testing -subsets: - - addresses: - - ip: 10.0.0.1 - nodeName: admin.whoami.service1 - ports: - - name: http-admin - port: 8079 - protocol: TCP - - addresses: - - ip: 10.0.0.1 - nodeName: whoami.service1 -# targetRef: - ports: - - name: http - port: 8080 - protocol: TCP diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_ingress.yml deleted file mode 100644 index 12c508feb..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.port - http: - paths: - - path: /port - backend: - serviceName: service1 - servicePort: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_service.yml deleted file mode 100644 index d83acc42f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-invalid-for-one-service_service.yml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: http - port: 8080 - protocol: TCP - targetPort: http-api - - name: http-admin - port: 8079 - protocol: TCP - targetPort: http-admin - selector: - app: foo - sessionAffinity: None - type: ClusterIP diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica.yml new file mode 100644 index 000000000..10216d602 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica.yml @@ -0,0 +1,50 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + name: tchouk + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: carotte + port: 8082 + - name: tchouk + port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + - ip: 10.10.0.2 + ports: + - name: carotte + port: 8090 + - name: tchouk + port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_endpoint.yml deleted file mode 100644 index a3fb499b0..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - - ip: 10.10.0.2 - ports: - - name: carotte - port: 8090 - - name: tchouk - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_ingress.yml deleted file mode 100644 index 613f43959..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: tchouk diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_service.yml deleted file mode 100644 index 141a467c1..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-2-pod-replica_service.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: carotte - port: 8082 - - name: tchouk - port: 80 - clusterIP: 10.0.0.1 - diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica.yml new file mode 100644 index 000000000..d9ea086f4 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica.yml @@ -0,0 +1,56 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + name: tchouk + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: carotte + port: 8082 + - name: tchouk + port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - name: carotte + port: 8090 + - name: tchouk + port: 8089 + - addresses: + - ip: 10.21.0.1 + ports: + - name: carotte + port: 8090 + - name: tchouk + port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_endpoint.yml deleted file mode 100644 index ad4e1d04a..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_endpoint.yml +++ /dev/null @@ -1,21 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - name: carotte - port: 8090 - - name: tchouk - port: 8089 -- addresses: - - ip: 10.21.0.1 - ports: - - name: carotte - port: 8090 - - name: tchouk - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_ingress.yml deleted file mode 100644 index 613f43959..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: tchouk diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_service.yml deleted file mode 100644 index 141a467c1..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-name-in-backend-and-no-pod-replica_service.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: carotte - port: 8082 - - name: tchouk - port: 80 - clusterIP: 10.0.0.1 - diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica.yml new file mode 100644 index 000000000..073f5faa5 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica.yml @@ -0,0 +1,56 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: carotte + port: 8082 + - name: tchouk + port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - name: carotte + port: 8090 + - name: tchouk + port: 8089 + - addresses: + - ip: 10.21.0.1 + ports: + - name: carotte + port: 8090 + - name: tchouk + port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_endpoint.yml deleted file mode 100644 index ad4e1d04a..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_endpoint.yml +++ /dev/null @@ -1,21 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - name: carotte - port: 8090 - - name: tchouk - port: 8089 -- addresses: - - ip: 10.21.0.1 - ports: - - name: carotte - port: 8090 - - name: tchouk - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_ingress.yml deleted file mode 100644 index 4e27d7f07..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_service.yml deleted file mode 100644 index 141a467c1..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-port-value-in-backend-and-no-pod-replica_service.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: carotte - port: 8082 - - name: tchouk - port: 80 - clusterIP: 10.0.0.1 - diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-prefix-pathType.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-prefix-pathType.yml new file mode 100644 index 000000000..ca66982c8 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-prefix-pathType.yml @@ -0,0 +1,41 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing +spec: + rules: + - http: + paths: + - path: /bar + pathType: Prefix + backend: + service: + name: service1 + port: + number: 80 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled.yml new file mode 100644 index 000000000..1b02e27fd --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled.yml @@ -0,0 +1,32 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 8080 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 8080 + clusterIP: 10.0.0.1 + type: ExternalName + externalName: traefik.wtf diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled_ingress.yml deleted file mode 100644 index f9645ad09..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled_service.yml deleted file mode 100644 index 972e4cdbc..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName-enabled_service.yml +++ /dev/null @@ -1,13 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 8080 - clusterIP: 10.0.0.1 - type: ExternalName - externalName: traefik.wtf - diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName.yml new file mode 100644 index 000000000..1b02e27fd --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName.yml @@ -0,0 +1,32 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 8080 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 8080 + clusterIP: 10.0.0.1 + type: ExternalName + externalName: traefik.wtf diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName_ingress.yml deleted file mode 100644 index f9645ad09..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName_service.yml deleted file mode 100644 index 972e4cdbc..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-service-with-externalName_service.yml +++ /dev/null @@ -1,13 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 8080 - clusterIP: 10.0.0.1 - type: ExternalName - externalName: traefik.wtf - diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path.yml new file mode 100644 index 000000000..9f3a5d477 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path.yml @@ -0,0 +1,55 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + - http: + paths: + - path: /foo + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_ingress.yml deleted file mode 100644 index 0b6d34c1f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_ingress.yml +++ /dev/null @@ -1,20 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - - http: - paths: - - path: /foo - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-different-rules-with-one-path_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name.yml new file mode 100644 index 000000000..8474965be --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name.yml @@ -0,0 +1,57 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + name: tchouk + pathType: Prefix + - path: /foo + backend: + service: + name: service1 + port: + name: carotte + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - name: carotte + port: 8082 + - name: tchouk + port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + - ip: 10.10.0.2 + ports: + - name: carotte + port: 8090 + - name: tchouk + port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_endpoint.yml deleted file mode 100644 index a3fb499b0..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - - ip: 10.10.0.2 - ports: - - name: carotte - port: 8090 - - name: tchouk - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_ingress.yml deleted file mode 100644 index c25449a50..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_ingress.yml +++ /dev/null @@ -1,19 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: tchouk - - path: /foo - backend: - serviceName: service1 - servicePort: carotte diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_service.yml deleted file mode 100644 index 141a467c1..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-paths-using-same-service-and-different-port-name_service.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: carotte - port: 8082 - - name: tchouk - port: 80 - clusterIP: 10.0.0.1 - diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services.yml new file mode 100644 index 000000000..55b9e4218 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services.yml @@ -0,0 +1,86 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + - host: traefik.courgette + http: + paths: + - path: /carotte + backend: + service: + name: service2 + port: + number: 8082 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service2 + namespace: testing + +spec: + ports: + - port: 8082 + clusterIP: 10.1.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.1 + ports: + - port: 8080 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service2 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.2 + ports: + - port: 8080 + - addresses: + - ip: 10.21.0.2 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_ingress.yml deleted file mode 100644 index 887df113f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_ingress.yml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - - host: traefik.courgette - http: - paths: - - path: /carotte - backend: - serviceName: service2 - servicePort: 8082 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_service.yml deleted file mode 100644 index befb87b74..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_service.yml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 - ---- -kind: Service -apiVersion: v1 -metadata: - name: service2 - namespace: testing - -spec: - ports: - - port: 8082 - clusterIP: 10.1.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name.yml new file mode 100644 index 000000000..b22892ff5 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name.yml @@ -0,0 +1,44 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + name: toto + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.11.0.1 + - ip: 10.11.0.2 + ports: + - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_endpoint.yml deleted file mode 100644 index 017fb01cf..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_endpoint.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.11.0.1 - - ip: 10.11.0.2 - ports: - - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_ingress.yml deleted file mode 100644 index 3ac34b3ae..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: toto diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port-name_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port.yml new file mode 100644 index 000000000..7ef564b1a --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port.yml @@ -0,0 +1,44 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: traefik.tchouk + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 21 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.11.0.1 + - ip: 10.11.0.2 + ports: + - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_endpoint.yml deleted file mode 100644 index 017fb01cf..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_endpoint.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.11.0.1 - - ip: 10.11.0.2 - ports: - - port: 8089 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_ingress.yml deleted file mode 100644 index 18a3af939..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: traefik.tchouk - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 21 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-unknown-service-port_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host.yml new file mode 100644 index 000000000..ff18bfd83 --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host.yml @@ -0,0 +1,43 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + rules: + - host: "*.foobar.com" + http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_ingress.yml deleted file mode 100644 index c72c09d85..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - rules: - - host: "*.foobar.com" - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_service.yml deleted file mode 100644 index cc747fa4d..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-wildcard-host_service.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation.yml new file mode 100644 index 000000000..e2312d68e --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation.yml @@ -0,0 +1,44 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + annotations: + kubernetes.io/ingress.class: tchouk + +spec: + rules: + - http: + paths: + - path: /bar + backend: + service: + name: service1 + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +subsets: + - addresses: + - ip: 10.10.0.1 + ports: + - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_ingress.yml deleted file mode 100644 index 28def8528..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - kubernetes.io/ingress.class: tchouk - -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-without-provider-traefik-ingressClass-and-unknown-annotation_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules).yml similarity index 50% rename from pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_endpoint.yml rename to pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules).yml index b30fe3dab..7ba4b0196 100644 --- a/pkg/provider/kubernetes/ingress/fixtures/Ingress-with-two-services_endpoint.yml +++ b/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules).yml @@ -1,3 +1,29 @@ +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + defaultBackend: + service: + name: service1 + port: + number: 80 + +--- +kind: Service +apiVersion: v1 +metadata: + name: service1 + namespace: testing + +spec: + ports: + - port: 80 + clusterIP: 10.0.0.1 + +--- kind: Endpoints apiVersion: v1 metadata: @@ -13,20 +39,3 @@ subsets: - ip: 10.21.0.1 ports: - port: 8080 - ---- -kind: Endpoints -apiVersion: v1 -metadata: - name: service2 - namespace: testing - -subsets: - - addresses: - - ip: 10.10.0.2 - ports: - - port: 8080 - - addresses: - - ip: 10.21.0.2 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_endpoint.yml deleted file mode 100644 index b19cd5c3f..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_endpoint.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 -- addresses: - - ip: 10.21.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_ingress.yml deleted file mode 100644 index ac692c73e..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_ingress.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_service.yml b/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/Single-Service-Ingress-(without-any-rules)_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/TLS-support.yml b/pkg/provider/kubernetes/ingress/fixtures/TLS-support.yml new file mode 100644 index 000000000..6760730cd --- /dev/null +++ b/pkg/provider/kubernetes/ingress/fixtures/TLS-support.yml @@ -0,0 +1,97 @@ +apiVersion: v1 +kind: Secret +metadata: + name: my-tls-secret + namespace: testing + +data: + tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0= + tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0= + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + annotations: + traefik.ingress.kubernetes.io/router.tls: "true" + +spec: + tls: + - secretName: my-tls-secret + rules: + - host: example.com + http: + paths: + - path: "" + backend: + service: + name: example-com + port: + number: 80 + pathType: Prefix + +--- +kind: Ingress +apiVersion: networking.k8s.io/v1 +metadata: + name: "" + namespace: testing + +spec: + tls: + - secretName: my-undefined-secret + rules: + - host: example.fail + http: + paths: + - path: "" + backend: + service: + name: example-fail + port: + number: 80 + pathType: Prefix + +--- +kind: Service +apiVersion: v1 +metadata: + name: example-com + namespace: testing + +spec: + ports: + - name: http + port: 80 + clusterIP: 10.0.0.1 + type: ClusterIP + +--- +kind: Service +apiVersion: v1 +metadata: + name: example-org + namespace: testing + +spec: + ports: + - name: http + port: 80 + clusterIP: 10.0.0.2 + type: ClusterIP + +--- +kind: Endpoints +apiVersion: v1 +metadata: + name: example-com + namespace: testing + +subsets: + - addresses: + - ip: 10.11.0.1 + ports: + - name: http + port: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/TLS-support_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/TLS-support_endpoint.yml deleted file mode 100644 index 97545bba8..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/TLS-support_endpoint.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: example-com - namespace: testing - -subsets: -- addresses: - - ip: 10.11.0.1 - ports: - - name: http - port: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/TLS-support_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/TLS-support_ingress.yml deleted file mode 100644 index e5f39fc91..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/TLS-support_ingress.yml +++ /dev/null @@ -1,38 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - traefik.ingress.kubernetes.io/router.tls: "true" - -spec: - tls: - - secretName: my-tls-secret - rules: - - host: example.com - http: - paths: - - path: "" - backend: - serviceName: example-com - servicePort: 80 - ---- -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - -spec: - tls: - - secretName: my-undefined-secret - rules: - - host: example.fail - http: - paths: - - path: "" - backend: - serviceName: example-fail - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/TLS-support_secret.yml b/pkg/provider/kubernetes/ingress/fixtures/TLS-support_secret.yml deleted file mode 100644 index 77df8ed37..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/TLS-support_secret.yml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: my-tls-secret - namespace: testing - -data: - tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0= - tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0= diff --git a/pkg/provider/kubernetes/ingress/fixtures/TLS-support_service.yml b/pkg/provider/kubernetes/ingress/fixtures/TLS-support_service.yml deleted file mode 100644 index d204e8dbb..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/TLS-support_service.yml +++ /dev/null @@ -1,26 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: example-com - namespace: testing - -spec: - ports: - - name: http - port: 80 - clusterIP: 10.0.0.1 - type: ClusterIP - ---- -kind: Service -apiVersion: v1 -metadata: - name: example-org - namespace: testing - -spec: - ports: - - name: http - port: 80 - clusterIP: 10.0.0.2 - type: ClusterIP diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_ingress.yml deleted file mode 100644 index b01a04d51..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - traefik.ingress.kubernetes.io/router.pathmatcher: Path -spec: - rules: - - http: - paths: - - path: /bar - pathType: "" - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-empty-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_ingress.yml deleted file mode 100644 index d3f9848f6..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing -spec: - rules: - - http: - paths: - - path: /bar - pathType: Exact - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-exact-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_ingress.yml deleted file mode 100644 index 8b1cc9674..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - traefik.ingress.kubernetes.io/router.pathmatcher: Path -spec: - rules: - - http: - paths: - - path: /bar - pathType: ImplementationSpecific - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-implementationSpecific-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_ingress.yml deleted file mode 100644 index e223946d0..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - kubernetes.io/ingress.class: traefik -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingress-annotation_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_ingress.yml deleted file mode 100644 index 0a8047318..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_ingressclass.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_ingressclass.yml deleted file mode 100644 index b96f42518..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_ingressclass.yml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: networking.k8s.io/v1beta1 -kind: IngressClass -metadata: - name: traefik-lb -spec: - controller: traefik.io/ingress-controller diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClass_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_ingress.yml deleted file mode 100644 index fb4eec709..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_ingress.yml +++ /dev/null @@ -1,30 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - ---- -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb2 - rules: - - http: - paths: - - path: /foo - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_ingressclass.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_ingressclass.yml deleted file mode 100644 index c0dd6d23a..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_ingressclass.yml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: networking.k8s.io/v1beta1 -kind: IngressClass -metadata: - name: traefik-lb2 -spec: - controller: traefik.io/ingress-controller - ---- -apiVersion: networking.k8s.io/v1beta1 -kind: IngressClass -metadata: - name: traefik-lb -spec: - controller: traefik.io/ingress-controller diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-ingressClasses-filter_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_ingress.yml deleted file mode 100644 index 0a8047318..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-missing-ingressClass_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_ingress.yml deleted file mode 100644 index fb4eec709..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_ingress.yml +++ /dev/null @@ -1,30 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 - ---- -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb2 - rules: - - http: - paths: - - path: /foo - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_ingressclass.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_ingressclass.yml deleted file mode 100644 index c0dd6d23a..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_ingressclass.yml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: networking.k8s.io/v1beta1 -kind: IngressClass -metadata: - name: traefik-lb2 -spec: - controller: traefik.io/ingress-controller - ---- -apiVersion: networking.k8s.io/v1beta1 -kind: IngressClass -metadata: - name: traefik-lb -spec: - controller: traefik.io/ingress-controller diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-multiple-ingressClasses_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_ingress.yml deleted file mode 100644 index 740d39d1c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_ingress.yml +++ /dev/null @@ -1,15 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing - annotations: - traefik.ingress.kubernetes.io/router.pathmatcher: Path -spec: - rules: - - http: - paths: - - path: /bar - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-no-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_ingress.yml deleted file mode 100644 index 2ae20e2ef..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_ingress.yml +++ /dev/null @@ -1,14 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1beta1 -metadata: - name: "" - namespace: testing -spec: - rules: - - http: - paths: - - path: /bar - pathType: Prefix - backend: - serviceName: service1 - servicePort: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v18-Ingress-with-prefix-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_endpoint.yml deleted file mode 100644 index 0e64b4434..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_endpoint.yml +++ /dev/null @@ -1,24 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 80 - ---- -kind: Endpoints -apiVersion: v1 -metadata: - name: defaultservice - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_ingress.yml deleted file mode 100644 index 58b7aac63..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_ingress.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1 -metadata: - name: defaultbackend - namespace: testing - -spec: - defaultBackend: - service: - name: defaultservice - port: - number: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_service.yml deleted file mode 100644 index 1bca9be2b..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-defaultbackend_service.yml +++ /dev/null @@ -1,22 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 ---- - -kind: Service -apiVersion: v1 -metadata: - name: defaultservice - namespace: testing - -spec: - ports: - - port: 8080 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-empty-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_ingress.yml deleted file mode 100644 index ca25ad48e..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1 -metadata: - name: "" - namespace: testing -spec: - rules: - - http: - paths: - - path: /bar - pathType: Exact - backend: - service: - name: service1 - port: - number: 80 \ No newline at end of file diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-exact-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-implementationSpecific-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_ingress.yml deleted file mode 100644 index 1e8f60949..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_ingress.yml +++ /dev/null @@ -1,17 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1 -metadata: - name: "" - namespace: testing - annotations: - kubernetes.io/ingress.class: traefik -spec: - rules: - - http: - paths: - - path: /bar - backend: - service: - name: service1 - port: - number: 80 \ No newline at end of file diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingress-annotation_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_ingress.yml deleted file mode 100644 index 22c268983..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb - rules: - - http: - paths: - - path: /bar - backend: - service: - name: service1 - port: - number: 80 \ No newline at end of file diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_ingressclass.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_ingressclass.yml deleted file mode 100644 index b96f42518..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_ingressclass.yml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: networking.k8s.io/v1beta1 -kind: IngressClass -metadata: - name: traefik-lb -spec: - controller: traefik.io/ingress-controller diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClass_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_ingress.yml deleted file mode 100644 index c9be2e68c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb-v1 - rules: - - http: - paths: - - path: /bar - backend: - service: - name: service1 - port: - number: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_ingressclass.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_ingressclass.yml deleted file mode 100644 index 744ecc9cd..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_ingressclass.yml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: IngressClass -metadata: - name: traefik-lb-v1 -spec: - controller: traefik.io/ingress-controller diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-ingressClassv1_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_ingress.yml deleted file mode 100644 index b14b1a4bb..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1 -metadata: - name: "" - namespace: testing -spec: - ingressClassName: traefik-lb - rules: - - http: - paths: - - path: /bar - backend: - service: - name: service1 - port: - number: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-missing-ingressClass_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_endpoint.yml deleted file mode 100644 index bf2e7526e..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_endpoint.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: - - addresses: - - ip: 10.10.0.1 - ports: - - name: foobar - port: 4711 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_ingress.yml deleted file mode 100644 index 12f17bc54..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_ingress.yml +++ /dev/null @@ -1,16 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1 -metadata: - name: "" - namespace: testing -spec: - rules: - - http: - paths: - - path: /bar - pathType: Prefix - backend: - service: - name: service1 - port: - name: foobar diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_service.yml deleted file mode 100644 index c064e5872..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-named-port_service.yml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - name: foobar - port: 4711 - clusterIP: 10.0.0.1 - diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_ingress.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_ingress.yml deleted file mode 100644 index 6327a89a5..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_ingress.yml +++ /dev/null @@ -1,17 +0,0 @@ -kind: Ingress -apiVersion: networking.k8s.io/v1 -metadata: - name: "" - namespace: testing - annotations: - traefik.ingress.kubernetes.io/router.pathmatcher: Path -spec: - rules: - - http: - paths: - - path: /bar - backend: - service: - name: service1 - port: - number: 80 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-no-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_endpoint.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_endpoint.yml deleted file mode 100644 index 6ed60d79c..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_endpoint.yml +++ /dev/null @@ -1,11 +0,0 @@ -kind: Endpoints -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -subsets: -- addresses: - - ip: 10.10.0.1 - ports: - - port: 8080 diff --git a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_service.yml b/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_service.yml deleted file mode 100644 index 0ec7e2269..000000000 --- a/pkg/provider/kubernetes/ingress/fixtures/v19-Ingress-with-prefix-pathType_service.yml +++ /dev/null @@ -1,10 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: service1 - namespace: testing - -spec: - ports: - - port: 80 - clusterIP: 10.0.0.1 diff --git a/pkg/provider/kubernetes/ingress/kubernetes.go b/pkg/provider/kubernetes/ingress/kubernetes.go index cca5ea57e..05f3cbce9 100644 --- a/pkg/provider/kubernetes/ingress/kubernetes.go +++ b/pkg/provider/kubernetes/ingress/kubernetes.go @@ -212,11 +212,9 @@ func (p *Provider) loadConfigurationFromIngresses(ctx context.Context, client Cl TCP: &dynamic.TCPConfiguration{}, } - serverVersion := client.GetServerVersion() - var ingressClasses []*netv1.IngressClass - if !p.DisableIngressClassLookup && supportsIngressClass(serverVersion) { + if !p.DisableIngressClassLookup { ics, err := client.GetIngressClasses() if err != nil { log.Ctx(ctx).Warn().Err(err).Msg("Failed to list ingress classes") diff --git a/pkg/provider/kubernetes/ingress/kubernetes_test.go b/pkg/provider/kubernetes/ingress/kubernetes_test.go index 6a3119f0c..e044cf577 100644 --- a/pkg/provider/kubernetes/ingress/kubernetes_test.go +++ b/pkg/provider/kubernetes/ingress/kubernetes_test.go @@ -4,7 +4,6 @@ import ( "context" "errors" "math" - "os" "path/filepath" "strings" "testing" @@ -29,7 +28,6 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { testCases := []struct { desc string ingressClass string - serverVersion string expected *dynamic.Configuration allowEmptyServices bool disableIngressClassLookup bool @@ -1131,39 +1129,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v18 Ingress with ingressClass", - serverVersion: "v1.18", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "PathPrefix(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v18 Ingress with multiple ingressClasses", - serverVersion: "v1.18", + desc: "Ingress with multiple ingressClasses", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1197,241 +1163,8 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v18 Ingress with no pathType", - serverVersion: "v1.18", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "Path(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v18 Ingress with empty pathType", - serverVersion: "v1.18", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "Path(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v18 Ingress with implementationSpecific pathType", - serverVersion: "v1.18", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "Path(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v18 Ingress with prefix pathType", - serverVersion: "v1.18", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "PathPrefix(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v18 Ingress with exact pathType", - serverVersion: "v1.18", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "Path(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v18 Ingress with missing ingressClass", - serverVersion: "v1.18", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{}, - Services: map[string]*dynamic.Service{}, - }, - }, - }, - { - desc: "v18 Ingress with ingress annotation", - serverVersion: "v1.18", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "PathPrefix(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - // Duplicate test case with the same fixture as the one above, but with the disableIngressClassLookup option to true. - // Showing that disabling the ingressClass discovery still allow the discovery of ingresses with ingress annotation. - desc: "v18 Ingress with ingress annotation", - serverVersion: "v1.18", - disableIngressClassLookup: true, - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "PathPrefix(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v18 Ingress with ingressClasses filter", - serverVersion: "v1.18", - ingressClass: "traefik-lb2", + desc: "Ingress with ingressClasses filter", + ingressClass: "traefik-lb2", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1461,24 +1194,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - // Duplicate test case with the same fixture as the one above, but with the disableIngressClassLookup option to true. - // Showing that disabling the ingressClass discovery avoid discovering Ingresses with an IngressClass. - desc: "v18 Ingress with ingressClasses filter", - serverVersion: "v1.18", - ingressClass: "traefik-lb2", - disableIngressClassLookup: true, - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{}, - Services: map[string]*dynamic.Service{}, - }, - }, - }, - { - desc: "v19 Ingress with prefix pathType", - serverVersion: "v1.19", + desc: "Ingress with prefix pathType", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1508,8 +1224,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v19 Ingress with no pathType", - serverVersion: "v1.19", + desc: "Ingress with empty pathType", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1539,8 +1254,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v19 Ingress with empty pathType", - serverVersion: "v1.19", + desc: "Ingress with exact pathType", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1570,8 +1284,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v19 Ingress with exact pathType", - serverVersion: "v1.19", + desc: "Ingress with implementationSpecific pathType", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1601,39 +1314,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v19 Ingress with implementationSpecific pathType", - serverVersion: "v1.19", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "Path(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v19 Ingress with ingress annotation", - serverVersion: "v1.19", + desc: "Ingress with ingress annotation", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1665,8 +1346,8 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { { // Duplicate test case with the same fixture as the one above, but with the disableIngressClassLookup option to true. // Showing that disabling the ingressClass discovery still allow the discovery of ingresses with ingress annotation. - desc: "v19 Ingress with ingress annotation", - serverVersion: "v1.19", + desc: "Ingress with ingress annotation", + disableIngressClassLookup: true, expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1696,8 +1377,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v19 Ingress with ingressClass", - serverVersion: "v1.19", + desc: "Ingress with ingressClass", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1729,9 +1409,8 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { { // Duplicate test case with the same fixture as the one above, but with the disableIngressClassLookup option to true. // Showing that disabling the ingressClass discovery avoid discovering Ingresses with an IngressClass. - desc: "v19 Ingress with ingressClass", + desc: "Ingress with ingressClass", disableIngressClassLookup: true, - serverVersion: "v1.19", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1742,39 +1421,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v19 Ingress with ingressClassv1", - serverVersion: "v1.19", - expected: &dynamic.Configuration{ - TCP: &dynamic.TCPConfiguration{}, - HTTP: &dynamic.HTTPConfiguration{ - Middlewares: map[string]*dynamic.Middleware{}, - Routers: map[string]*dynamic.Router{ - "testing-bar": { - Rule: "PathPrefix(`/bar`)", - Service: "testing-service1-80", - }, - }, - Services: map[string]*dynamic.Service{ - "testing-service1-80": { - LoadBalancer: &dynamic.ServersLoadBalancer{ - PassHostHeader: Bool(true), - ResponseForwarding: &dynamic.ResponseForwarding{ - FlushInterval: ptypes.Duration(100 * time.Millisecond), - }, - Servers: []dynamic.Server{ - { - URL: "http://10.10.0.1:8080", - }, - }, - }, - }, - }, - }, - }, - }, - { - desc: "v19 Ingress with named port", - serverVersion: "v1.19", + desc: "Ingress with named port", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1804,8 +1451,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v19 Ingress with missing ingressClass", - serverVersion: "v1.19", + desc: "Ingress with missing ingressClass", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1816,8 +1462,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { }, }, { - desc: "v19 Ingress with defaultbackend", - serverVersion: "v1.19", + desc: "Ingress with defaultbackend", expected: &dynamic.Configuration{ TCP: &dynamic.TCPConfiguration{}, HTTP: &dynamic.HTTPConfiguration{ @@ -1855,34 +1500,7 @@ func TestLoadConfigurationFromIngresses(t *testing.T) { t.Run(test.desc, func(t *testing.T) { t.Parallel() - var paths []string - _, err := os.Stat(generateTestFilename("_ingress", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_ingress", test.desc)) - } - _, err = os.Stat(generateTestFilename("_endpoint", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_endpoint", test.desc)) - } - _, err = os.Stat(generateTestFilename("_service", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_service", test.desc)) - } - _, err = os.Stat(generateTestFilename("_secret", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_secret", test.desc)) - } - _, err = os.Stat(generateTestFilename("_ingressclass", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_ingressclass", test.desc)) - } - - serverVersion := test.serverVersion - if serverVersion == "" { - serverVersion = "v1.17" - } - - clientMock := newClientMock(serverVersion, paths...) + clientMock := newClientMock(generateTestFilename(test.desc)) p := Provider{ IngressClass: test.ingressClass, AllowEmptyServices: test.allowEmptyServices, @@ -1899,7 +1517,6 @@ func TestLoadConfigurationFromIngressesWithExternalNameServices(t *testing.T) { testCases := []struct { desc string ingressClass string - serverVersion string allowExternalNameServices bool expected *dynamic.Configuration }{ @@ -2014,34 +1631,7 @@ func TestLoadConfigurationFromIngressesWithExternalNameServices(t *testing.T) { t.Run(test.desc, func(t *testing.T) { t.Parallel() - var paths []string - _, err := os.Stat(generateTestFilename("_ingress", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_ingress", test.desc)) - } - _, err = os.Stat(generateTestFilename("_endpoint", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_endpoint", test.desc)) - } - _, err = os.Stat(generateTestFilename("_service", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_service", test.desc)) - } - _, err = os.Stat(generateTestFilename("_secret", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_secret", test.desc)) - } - _, err = os.Stat(generateTestFilename("_ingressclass", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_ingressclass", test.desc)) - } - - serverVersion := test.serverVersion - if serverVersion == "" { - serverVersion = "v1.17" - } - - clientMock := newClientMock(serverVersion, paths...) + clientMock := newClientMock(generateTestFilename(test.desc)) p := Provider{IngressClass: test.ingressClass} p.AllowExternalNameServices = test.allowExternalNameServices @@ -2054,10 +1644,9 @@ func TestLoadConfigurationFromIngressesWithExternalNameServices(t *testing.T) { func TestLoadConfigurationFromIngressesWithNativeLB(t *testing.T) { testCases := []struct { - desc string - ingressClass string - serverVersion string - expected *dynamic.Configuration + desc string + ingressClass string + expected *dynamic.Configuration }{ { desc: "Ingress with native service lb", @@ -2095,34 +1684,7 @@ func TestLoadConfigurationFromIngressesWithNativeLB(t *testing.T) { t.Run(test.desc, func(t *testing.T) { t.Parallel() - var paths []string - _, err := os.Stat(generateTestFilename("_ingress", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_ingress", test.desc)) - } - _, err = os.Stat(generateTestFilename("_endpoint", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_endpoint", test.desc)) - } - _, err = os.Stat(generateTestFilename("_service", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_service", test.desc)) - } - _, err = os.Stat(generateTestFilename("_secret", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_secret", test.desc)) - } - _, err = os.Stat(generateTestFilename("_ingressclass", test.desc)) - if err == nil { - paths = append(paths, generateTestFilename("_ingressclass", test.desc)) - } - - serverVersion := test.serverVersion - if serverVersion == "" { - serverVersion = "v1.17" - } - - clientMock := newClientMock(serverVersion, paths...) + clientMock := newClientMock(generateTestFilename(test.desc)) p := Provider{IngressClass: test.ingressClass} conf := p.loadConfigurationFromIngresses(context.Background(), clientMock) @@ -2132,8 +1694,8 @@ func TestLoadConfigurationFromIngressesWithNativeLB(t *testing.T) { } } -func generateTestFilename(suffix, desc string) string { - return filepath.Join("fixtures", strings.ReplaceAll(desc, " ", "-")+suffix+".yml") +func generateTestFilename(desc string) string { + return filepath.Join("fixtures", strings.ReplaceAll(desc, " ", "-")+".yml") } func TestGetCertificates(t *testing.T) {