From e72c875e63df1af15df40fa218a9068a91c6a432 Mon Sep 17 00:00:00 2001 From: Simon Pasquier Date: Fri, 22 Feb 2019 15:51:47 +0100 Subject: [PATCH] config: fix Kubernetes config with empty API server (#5256) Signed-off-by: Simon Pasquier --- config/config_test.go | 5 +++++ config/testdata/kubernetes_empty_apiserver.good.yml | 4 ++++ .../kubernetes_http_config_without_api_server.bad.yml | 1 - discovery/kubernetes/kubernetes.go | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 config/testdata/kubernetes_empty_apiserver.good.yml diff --git a/config/config_test.go b/config/config_test.go index dbba29a634..d8c939db0a 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -632,6 +632,11 @@ func TestLoadConfigRuleFilesAbsolutePath(t *testing.T) { testutil.Equals(t, ruleFilesExpectedConf, c) } +func TestKubernetesEmptyAPIServer(t *testing.T) { + _, err := LoadFile("testdata/kubernetes_empty_apiserver.good.yml") + testutil.Ok(t, err) +} + var expectedErrors = []struct { filename string errMsg string diff --git a/config/testdata/kubernetes_empty_apiserver.good.yml b/config/testdata/kubernetes_empty_apiserver.good.yml new file mode 100644 index 0000000000..12b428eb84 --- /dev/null +++ b/config/testdata/kubernetes_empty_apiserver.good.yml @@ -0,0 +1,4 @@ +scrape_configs: +- job_name: prometheus + kubernetes_sd_configs: + - role: endpoints diff --git a/config/testdata/kubernetes_http_config_without_api_server.bad.yml b/config/testdata/kubernetes_http_config_without_api_server.bad.yml index 1779454da2..db442c3bd1 100644 --- a/config/testdata/kubernetes_http_config_without_api_server.bad.yml +++ b/config/testdata/kubernetes_http_config_without_api_server.bad.yml @@ -1,6 +1,5 @@ scrape_configs: - job_name: prometheus - kubernetes_sd_configs: - role: pod bearer_token: 1234 diff --git a/discovery/kubernetes/kubernetes.go b/discovery/kubernetes/kubernetes.go index 988817c289..aa39a560b5 100644 --- a/discovery/kubernetes/kubernetes.go +++ b/discovery/kubernetes/kubernetes.go @@ -107,7 +107,7 @@ func (c *SDConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { if err != nil { return err } - if c.APIServer.URL == nil && !reflect.DeepEqual(c.HTTPClientConfig, &config_util.HTTPClientConfig{}) { + if c.APIServer.URL == nil && !reflect.DeepEqual(c.HTTPClientConfig, config_util.HTTPClientConfig{}) { return fmt.Errorf("to use custom HTTP client configuration please provide the 'api_server' URL explicitly") } return nil