diff --git a/docs/content/reference/static-configuration/cli-ref.md b/docs/content/reference/static-configuration/cli-ref.md index 47384e163..e7c9d66d0 100644 --- a/docs/content/reference/static-configuration/cli-ref.md +++ b/docs/content/reference/static-configuration/cli-ref.md @@ -300,39 +300,6 @@ Override default configuration template. For advanced users :) `--providers.file.watch`: Watch provider. (Default: ```true```) -`--providers.kubernetes`: -Enable Kubernetes backend with default settings. (Default: ```false```) - -`--providers.kubernetes.certauthfilepath`: -Kubernetes certificate authority file path (not needed for in-cluster client). - -`--providers.kubernetes.disablepasshostheaders`: -Kubernetes disable PassHost Headers. (Default: ```false```) - -`--providers.kubernetes.endpoint`: -Kubernetes server endpoint (required for external cluster client). - -`--providers.kubernetes.ingressclass`: -Value of kubernetes.io/ingress.class annotation to watch for. - -`--providers.kubernetes.ingressendpoint.hostname`: -Hostname used for Kubernetes Ingress endpoints. - -`--providers.kubernetes.ingressendpoint.ip`: -IP used for Kubernetes Ingress endpoints. - -`--providers.kubernetes.ingressendpoint.publishedservice`: -Published Kubernetes Service to copy status from. - -`--providers.kubernetes.labelselector`: -Kubernetes Ingress label selector to use. - -`--providers.kubernetes.namespaces`: -Kubernetes namespaces. - -`--providers.kubernetes.token`: -Kubernetes bearer token (not needed for in-cluster client). - `--providers.kubernetescrd`: Enable Kubernetes backend with default settings. (Default: ```false```) @@ -357,6 +324,39 @@ Kubernetes namespaces. `--providers.kubernetescrd.token`: Kubernetes bearer token (not needed for in-cluster client). +`--providers.kubernetesingress`: +Enable Kubernetes backend with default settings. (Default: ```false```) + +`--providers.kubernetesingress.certauthfilepath`: +Kubernetes certificate authority file path (not needed for in-cluster client). + +`--providers.kubernetesingress.disablepasshostheaders`: +Kubernetes disable PassHost Headers. (Default: ```false```) + +`--providers.kubernetesingress.endpoint`: +Kubernetes server endpoint (required for external cluster client). + +`--providers.kubernetesingress.ingressclass`: +Value of kubernetes.io/ingress.class annotation to watch for. + +`--providers.kubernetesingress.ingressendpoint.hostname`: +Hostname used for Kubernetes Ingress endpoints. + +`--providers.kubernetesingress.ingressendpoint.ip`: +IP used for Kubernetes Ingress endpoints. + +`--providers.kubernetesingress.ingressendpoint.publishedservice`: +Published Kubernetes Service to copy status from. + +`--providers.kubernetesingress.labelselector`: +Kubernetes Ingress label selector to use. + +`--providers.kubernetesingress.namespaces`: +Kubernetes namespaces. + +`--providers.kubernetesingress.token`: +Kubernetes bearer token (not needed for in-cluster client). + `--providers.marathon`: Enable Marathon backend with default settings. (Default: ```false```) diff --git a/docs/content/reference/static-configuration/env-ref.md b/docs/content/reference/static-configuration/env-ref.md index 48fd382b2..c8021d8c3 100644 --- a/docs/content/reference/static-configuration/env-ref.md +++ b/docs/content/reference/static-configuration/env-ref.md @@ -300,9 +300,6 @@ Override default configuration template. For advanced users :) `TRAEFIK_PROVIDERS_FILE_WATCH`: Watch provider. (Default: ```true```) -`TRAEFIK_PROVIDERS_KUBERNETES`: -Enable Kubernetes backend with default settings. (Default: ```false```) - `TRAEFIK_PROVIDERS_KUBERNETESCRD`: Enable Kubernetes backend with default settings. (Default: ```false```) @@ -327,34 +324,37 @@ Kubernetes namespaces. `TRAEFIK_PROVIDERS_KUBERNETESCRD_TOKEN`: Kubernetes bearer token (not needed for in-cluster client). -`TRAEFIK_PROVIDERS_KUBERNETES_CERTAUTHFILEPATH`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS`: +Enable Kubernetes backend with default settings. (Default: ```false```) + +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_CERTAUTHFILEPATH`: Kubernetes certificate authority file path (not needed for in-cluster client). -`TRAEFIK_PROVIDERS_KUBERNETES_DISABLEPASSHOSTHEADERS`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_DISABLEPASSHOSTHEADERS`: Kubernetes disable PassHost Headers. (Default: ```false```) -`TRAEFIK_PROVIDERS_KUBERNETES_ENDPOINT`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_ENDPOINT`: Kubernetes server endpoint (required for external cluster client). -`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSCLASS`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_INGRESSCLASS`: Value of kubernetes.io/ingress.class annotation to watch for. -`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_HOSTNAME`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_INGRESSENDPOINT_HOSTNAME`: Hostname used for Kubernetes Ingress endpoints. -`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_IP`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_INGRESSENDPOINT_IP`: IP used for Kubernetes Ingress endpoints. -`TRAEFIK_PROVIDERS_KUBERNETES_INGRESSENDPOINT_PUBLISHEDSERVICE`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_INGRESSENDPOINT_PUBLISHEDSERVICE`: Published Kubernetes Service to copy status from. -`TRAEFIK_PROVIDERS_KUBERNETES_LABELSELECTOR`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_LABELSELECTOR`: Kubernetes Ingress label selector to use. -`TRAEFIK_PROVIDERS_KUBERNETES_NAMESPACES`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_NAMESPACES`: Kubernetes namespaces. -`TRAEFIK_PROVIDERS_KUBERNETES_TOKEN`: +`TRAEFIK_PROVIDERS_KUBERNETESINGRESS_TOKEN`: Kubernetes bearer token (not needed for in-cluster client). `TRAEFIK_PROVIDERS_MARATHON`: diff --git a/docs/content/reference/static-configuration/file.toml b/docs/content/reference/static-configuration/file.toml index 5b9236526..fc6e851ef 100644 --- a/docs/content/reference/static-configuration/file.toml +++ b/docs/content/reference/static-configuration/file.toml @@ -75,7 +75,7 @@ [providers.marathon.basic] httpBasicAuthUser = "foobar" httpBasicPassword = "foobar" - [providers.kubernetes] + [providers.kubernetesIngress] endpoint = "foobar" token = "foobar" certAuthFilePath = "foobar" @@ -83,7 +83,7 @@ namespaces = ["foobar", "foobar"] labelSelector = "foobar" ingressClass = "foobar" - [providers.kubernetes.ingressEndpoint] + [providers.kubernetesIngress.ingressEndpoint] ip = "foobar" hostname = "foobar" publishedService = "foobar" diff --git a/docs/content/reference/static-configuration/file.yaml b/docs/content/reference/static-configuration/file.yaml index e7eae1a7c..6d234f095 100644 --- a/docs/content/reference/static-configuration/file.yaml +++ b/docs/content/reference/static-configuration/file.yaml @@ -78,7 +78,7 @@ providers: httpBasicAuthUser: foobar httpBasicPassword: foobar respectReadinessChecks: true - kubernetes: + kubernetesIngress: endpoint: foobar token: foobar certAuthFilePath: foobar diff --git a/integration/fixtures/k8s_default.toml b/integration/fixtures/k8s_default.toml index c6bc9b298..2b39f0f65 100644 --- a/integration/fixtures/k8s_default.toml +++ b/integration/fixtures/k8s_default.toml @@ -11,4 +11,4 @@ [entryPoints.web] address = ":8000" -[providers.kubernetes] +[providers.kubernetesIngress] diff --git a/pkg/anonymize/anonymize_config_test.go b/pkg/anonymize/anonymize_config_test.go index 2f15468ad..d71afc806 100644 --- a/pkg/anonymize/anonymize_config_test.go +++ b/pkg/anonymize/anonymize_config_test.go @@ -171,7 +171,7 @@ func TestDo_globalConfiguration(t *testing.T) { SwarmModeRefreshSeconds: 42, } - config.Providers.Kubernetes = &ingress.Provider{ + config.Providers.KubernetesIngress = &ingress.Provider{ Endpoint: "MyEndpoint", Token: "MyToken", CertAuthFilePath: "MyCertAuthPath", diff --git a/pkg/anonymize/anonymize_doOnJSON_test.go b/pkg/anonymize/anonymize_doOnJSON_test.go index 24e565d2b..a005b8170 100644 --- a/pkg/anonymize/anonymize_doOnJSON_test.go +++ b/pkg/anonymize/anonymize_doOnJSON_test.go @@ -81,7 +81,8 @@ func Test_doOnJSON(t *testing.T) { "Etcd": null, "Zookeeper": null, "Boltdb": null, - "Kubernetes": null, + "KubernetesIngress": null, + "KubernetesCRD": null, "Mesos": null, "Eureka": null, "ECS": null, @@ -164,7 +165,8 @@ func Test_doOnJSON(t *testing.T) { "Etcd": null, "Zookeeper": null, "Boltdb": null, - "Kubernetes": null, + "KubernetesIngress": null, + "KubernetesCRD": null, "Mesos": null, "Eureka": null, "ECS": null, diff --git a/pkg/config/file/file_node_test.go b/pkg/config/file/file_node_test.go index 2a54fb47f..6ed2ba1c0 100644 --- a/pkg/config/file/file_node_test.go +++ b/pkg/config/file/file_node_test.go @@ -194,7 +194,16 @@ func Test_decodeFileToNode_Toml(t *testing.T) { {Name: "filename", Value: "foobar"}, {Name: "traefikFile", Value: "foobar"}, {Name: "watch", Value: "true"}}}, - {Name: "kubernetes", Children: []*parser.Node{ + {Name: "kubernetesCRD", + Children: []*parser.Node{ + {Name: "certAuthFilePath", Value: "foobar"}, + {Name: "disablePassHostHeaders", Value: "true"}, + {Name: "endpoint", Value: "foobar"}, + {Name: "ingressClass", Value: "foobar"}, + {Name: "labelSelector", Value: "foobar"}, + {Name: "namespaces", Value: "foobar,foobar"}, + {Name: "token", Value: "foobar"}}}, + {Name: "kubernetesIngress", Children: []*parser.Node{ {Name: "certAuthFilePath", Value: "foobar"}, {Name: "disablePassHostHeaders", Value: "true"}, {Name: "endpoint", Value: "foobar"}, @@ -206,15 +215,6 @@ func Test_decodeFileToNode_Toml(t *testing.T) { {Name: "labelSelector", Value: "foobar"}, {Name: "namespaces", Value: "foobar,foobar"}, {Name: "token", Value: "foobar"}}}, - {Name: "kubernetesCRD", - Children: []*parser.Node{ - {Name: "certAuthFilePath", Value: "foobar"}, - {Name: "disablePassHostHeaders", Value: "true"}, - {Name: "endpoint", Value: "foobar"}, - {Name: "ingressClass", Value: "foobar"}, - {Name: "labelSelector", Value: "foobar"}, - {Name: "namespaces", Value: "foobar,foobar"}, - {Name: "token", Value: "foobar"}}}, {Name: "marathon", Children: []*parser.Node{ {Name: "basic", Children: []*parser.Node{ {Name: "httpBasicAuthUser", Value: "foobar"}, @@ -437,7 +437,16 @@ func Test_decodeFileToNode_Yaml(t *testing.T) { {Name: "filename", Value: "foobar"}, {Name: "traefikFile", Value: "foobar"}, {Name: "watch", Value: "true"}}}, - {Name: "kubernetes", Children: []*parser.Node{ + {Name: "kubernetesCRD", + Children: []*parser.Node{ + {Name: "certAuthFilePath", Value: "foobar"}, + {Name: "disablePassHostHeaders", Value: "true"}, + {Name: "endpoint", Value: "foobar"}, + {Name: "ingressClass", Value: "foobar"}, + {Name: "labelSelector", Value: "foobar"}, + {Name: "namespaces", Value: "foobar,foobar"}, + {Name: "token", Value: "foobar"}}}, + {Name: "kubernetesIngress", Children: []*parser.Node{ {Name: "certAuthFilePath", Value: "foobar"}, {Name: "disablePassHostHeaders", Value: "true"}, {Name: "endpoint", Value: "foobar"}, @@ -449,15 +458,6 @@ func Test_decodeFileToNode_Yaml(t *testing.T) { {Name: "labelSelector", Value: "foobar"}, {Name: "namespaces", Value: "foobar,foobar"}, {Name: "token", Value: "foobar"}}}, - {Name: "kubernetesCRD", - Children: []*parser.Node{ - {Name: "certAuthFilePath", Value: "foobar"}, - {Name: "disablePassHostHeaders", Value: "true"}, - {Name: "endpoint", Value: "foobar"}, - {Name: "ingressClass", Value: "foobar"}, - {Name: "labelSelector", Value: "foobar"}, - {Name: "namespaces", Value: "foobar,foobar"}, - {Name: "token", Value: "foobar"}}}, {Name: "marathon", Children: []*parser.Node{ {Name: "basic", Children: []*parser.Node{ {Name: "httpBasicAuthUser", Value: "foobar"}, diff --git a/pkg/config/file/fixtures/sample.toml b/pkg/config/file/fixtures/sample.toml index 8db3b5093..0a288c010 100644 --- a/pkg/config/file/fixtures/sample.toml +++ b/pkg/config/file/fixtures/sample.toml @@ -76,7 +76,7 @@ [providers.marathon.basic] httpBasicAuthUser = "foobar" httpBasicPassword = "foobar" - [providers.kubernetes] + [providers.kubernetesIngress] endpoint = "foobar" token = "foobar" certAuthFilePath = "foobar" @@ -84,7 +84,7 @@ namespaces = ["foobar", "foobar"] labelSelector = "foobar" ingressClass = "foobar" - [providers.kubernetes.ingressEndpoint] + [providers.kubernetesIngress.ingressEndpoint] ip = "foobar" hostname = "foobar" publishedService = "foobar" diff --git a/pkg/config/file/fixtures/sample.yml b/pkg/config/file/fixtures/sample.yml index 40c269d72..f66fb2c93 100644 --- a/pkg/config/file/fixtures/sample.yml +++ b/pkg/config/file/fixtures/sample.yml @@ -79,7 +79,7 @@ providers: httpBasicAuthUser: foobar httpBasicPassword: foobar respectReadinessChecks: true - kubernetes: + kubernetesIngress: endpoint: foobar token: foobar certAuthFilePath: foobar diff --git a/pkg/config/static/static_config.go b/pkg/config/static/static_config.go index d34931506..b2290f8d6 100644 --- a/pkg/config/static/static_config.go +++ b/pkg/config/static/static_config.go @@ -151,7 +151,7 @@ type Providers struct { Docker *docker.Provider `description:"Enable Docker backend with default settings." json:"docker,omitempty" toml:"docker,omitempty" yaml:"docker,omitempty" export:"true" label:"allowEmpty"` File *file.Provider `description:"Enable File backend with default settings." json:"file,omitempty" toml:"file,omitempty" yaml:"file,omitempty" export:"true" label:"allowEmpty"` Marathon *marathon.Provider `description:"Enable Marathon backend with default settings." json:"marathon,omitempty" toml:"marathon,omitempty" yaml:"marathon,omitempty" export:"true" label:"allowEmpty"` - Kubernetes *ingress.Provider `description:"Enable Kubernetes backend with default settings." json:"kubernetes,omitempty" toml:"kubernetes,omitempty" yaml:"kubernetes,omitempty" export:"true" label:"allowEmpty"` + KubernetesIngress *ingress.Provider `description:"Enable Kubernetes backend with default settings." json:"kubernetesIngress,omitempty" toml:"kubernetesIngress,omitempty" yaml:"kubernetesIngress,omitempty" export:"true" label:"allowEmpty"` KubernetesCRD *crd.Provider `description:"Enable Kubernetes backend with default settings." json:"kubernetesCRD,omitempty" toml:"kubernetesCRD,omitempty" yaml:"kubernetesCRD,omitempty" export:"true" label:"allowEmpty"` Rest *rest.Provider `description:"Enable Rest backend with default settings." json:"rest,omitempty" toml:"rest,omitempty" yaml:"rest,omitempty" export:"true" label:"allowEmpty"` Rancher *rancher.Provider `description:"Enable Rancher backend with default settings." json:"rancher,omitempty" toml:"rancher,omitempty" yaml:"rancher,omitempty" export:"true" label:"allowEmpty"` diff --git a/pkg/provider/aggregator/aggregator.go b/pkg/provider/aggregator/aggregator.go index 016c9a632..d7053cd5d 100644 --- a/pkg/provider/aggregator/aggregator.go +++ b/pkg/provider/aggregator/aggregator.go @@ -37,8 +37,8 @@ func NewProviderAggregator(conf static.Providers) ProviderAggregator { p.quietAddProvider(conf.Rest) } - if conf.Kubernetes != nil { - p.quietAddProvider(conf.Kubernetes) + if conf.KubernetesIngress != nil { + p.quietAddProvider(conf.KubernetesIngress) } if conf.KubernetesCRD != nil {