1
0
Fork 0

NGINX Ingress Provider

Co-authored-by: Kevin Pollet <pollet.kevin@gmail.com>
This commit is contained in:
Romain 2025-06-23 18:06:04 +02:00 committed by GitHub
parent b39ee8ede5
commit 9bd5c61782
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 3894 additions and 18 deletions

View file

@ -339,6 +339,9 @@ Enable debug mode for the FastProxy implementation. (Default: ```false```)
`--experimental.kubernetesgateway`:
(Deprecated) Allow the Kubernetes gateway api provider usage. (Default: ```false```)
`--experimental.kubernetesingressnginx`:
Allow the Kubernetes Ingress NGINX provider usage. (Default: ```false```)
`--experimental.localplugins.<name>`:
Local plugins configuration. (Default: ```false```)
@ -1047,6 +1050,51 @@ Ingress refresh throttle duration (Default: ```0```)
`--providers.kubernetesingress.token`:
Kubernetes bearer token (not needed for in-cluster client). It accepts either a token value or a file path to the token.
`--providers.kubernetesingressnginx`:
Enable Kubernetes Ingress NGINX provider. (Default: ```false```)
`--providers.kubernetesingressnginx.certauthfilepath`:
Kubernetes certificate authority file path (not needed for in-cluster client).
`--providers.kubernetesingressnginx.controllerclass`:
Ingress Class Controller value this controller satisfies. (Default: ```k8s.io/ingress-nginx```)
`--providers.kubernetesingressnginx.defaultbackendservice`:
Service used to serve HTTP requests not matching any known server name (catch-all). Takes the form 'namespace/name'.
`--providers.kubernetesingressnginx.disablesvcexternalname`:
Disable support for Services of type ExternalName. (Default: ```false```)
`--providers.kubernetesingressnginx.endpoint`:
Kubernetes server endpoint (required for external cluster client).
`--providers.kubernetesingressnginx.ingressclass`:
Name of the ingress class this controller satisfies. (Default: ```nginx```)
`--providers.kubernetesingressnginx.ingressclassbyname`:
Define if Ingress Controller should watch for Ingress Class by Name together with Controller Class. (Default: ```false```)
`--providers.kubernetesingressnginx.publishservice`:
Service fronting the Ingress controller. Takes the form 'namespace/name'.
`--providers.kubernetesingressnginx.publishstatusaddress`:
Customized address (or addresses, separated by comma) to set as the load-balancer status of Ingress objects this controller satisfies.
`--providers.kubernetesingressnginx.throttleduration`:
Ingress refresh throttle duration. (Default: ```0```)
`--providers.kubernetesingressnginx.token`:
Kubernetes bearer token (not needed for in-cluster client). It accepts either a token value or a file path to the token.
`--providers.kubernetesingressnginx.watchingresswithoutclass`:
Define if Ingress Controller should also watch for Ingresses without an IngressClass or the annotation specified. (Default: ```false```)
`--providers.kubernetesingressnginx.watchnamespace`:
Namespace the controller watches for updates to Kubernetes objects. All namespaces are watched if this parameter is left empty.
`--providers.kubernetesingressnginx.watchnamespaceselector`:
Selector selects namespaces the controller watches for updates to Kubernetes objects.
`--providers.nomad`:
Enable Nomad backend with default settings. (Default: ```false```)

View file

@ -339,6 +339,9 @@ Enable debug mode for the FastProxy implementation. (Default: ```false```)
`TRAEFIK_EXPERIMENTAL_KUBERNETESGATEWAY`:
(Deprecated) Allow the Kubernetes gateway api provider usage. (Default: ```false```)
`TRAEFIK_EXPERIMENTAL_KUBERNETESINGRESSNGINX`:
Allow the Kubernetes Ingress NGINX provider usage. (Default: ```false```)
`TRAEFIK_EXPERIMENTAL_LOCALPLUGINS_<NAME>`:
Local plugins configuration. (Default: ```false```)
@ -999,6 +1002,51 @@ Kubernetes bearer token (not needed for in-cluster client). It accepts either a
`TRAEFIK_PROVIDERS_KUBERNETESINGRESS`:
Enable Kubernetes backend with default settings. (Default: ```false```)
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX`:
Enable Kubernetes Ingress NGINX provider. (Default: ```false```)
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_CERTAUTHFILEPATH`:
Kubernetes certificate authority file path (not needed for in-cluster client).
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_CONTROLLERCLASS`:
Ingress Class Controller value this controller satisfies. (Default: ```k8s.io/ingress-nginx```)
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_DEFAULTBACKENDSERVICE`:
Service used to serve HTTP requests not matching any known server name (catch-all). Takes the form 'namespace/name'.
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_DISABLESVCEXTERNALNAME`:
Disable support for Services of type ExternalName. (Default: ```false```)
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_ENDPOINT`:
Kubernetes server endpoint (required for external cluster client).
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_INGRESSCLASS`:
Name of the ingress class this controller satisfies. (Default: ```nginx```)
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_INGRESSCLASSBYNAME`:
Define if Ingress Controller should watch for Ingress Class by Name together with Controller Class. (Default: ```false```)
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_PUBLISHSERVICE`:
Service fronting the Ingress controller. Takes the form 'namespace/name'.
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_PUBLISHSTATUSADDRESS`:
Customized address (or addresses, separated by comma) to set as the load-balancer status of Ingress objects this controller satisfies.
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_THROTTLEDURATION`:
Ingress refresh throttle duration. (Default: ```0```)
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_TOKEN`:
Kubernetes bearer token (not needed for in-cluster client). It accepts either a token value or a file path to the token.
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_WATCHINGRESSWITHOUTCLASS`:
Define if Ingress Controller should also watch for Ingresses without an IngressClass or the annotation specified. (Default: ```false```)
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_WATCHNAMESPACE`:
Namespace the controller watches for updates to Kubernetes objects. All namespaces are watched if this parameter is left empty.
`TRAEFIK_PROVIDERS_KUBERNETESINGRESSNGINX_WATCHNAMESPACESELECTOR`:
Selector selects namespaces the controller watches for updates to Kubernetes objects.
`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_ALLOWEMPTYSERVICES`:
Allow creation of services without endpoints. (Default: ```false```)

View file

@ -143,6 +143,21 @@
ip = "foobar"
hostname = "foobar"
publishedService = "foobar"
[providers.kubernetesIngressNGINX]
endpoint = "foobar"
token = "foobar"
certAuthFilePath = "foobar"
throttleDuration = "42s"
watchNamespace = "foobar"
watchNamespaceSelector = "foobar"
ingressClass = "foobar"
controllerClass = "foobar"
watchIngressWithoutClass = true
ingressClassByName = true
publishService = "foobar"
publishStatusAddress = ["foobar", "foobar"]
defaultBackendService = "foobar"
disableSvcExternalName = true
[providers.kubernetesCRD]
endpoint = "foobar"
token = "foobar"
@ -572,6 +587,7 @@
[experimental]
abortOnPluginFailure = true
otlplogs = true
kubernetesIngressNGINX = true
kubernetesGateway = true
[experimental.plugins]
[experimental.plugins.Descriptor0]

View file

@ -158,6 +158,23 @@ providers:
disableClusterScopeResources: true
nativeLBByDefault: true
strictPrefixMatching: true
kubernetesIngressNGINX:
endpoint: foobar
token: foobar
certAuthFilePath: foobar
throttleDuration: 42s
watchNamespace: foobar
watchNamespaceSelector: foobar
ingressClass: foobar
controllerClass: foobar
watchIngressWithoutClass: true
ingressClassByName: true
publishService: foobar
publishStatusAddress:
- foobar
- foobar
defaultBackendService: foobar
disableSvcExternalName: true
kubernetesCRD:
endpoint: foobar
token: foobar
@ -670,6 +687,7 @@ experimental:
fastProxy:
debug: true
otlplogs: true
kubernetesIngressNGINX: true
kubernetesGateway: true
core:
defaultRuleSyntax: foobar