From d73bc56d0319c1a2826a5b1ef250b788add6a771 Mon Sep 17 00:00:00 2001 From: Tetiana Kravchenko Date: Wed, 2 Nov 2022 10:29:03 +0100 Subject: [PATCH] Keep 'orchestrator.cluster.name' if 'kubeconfig' is not returned in GKE metadata (#33418) * keep if is not returned in GKE metadata Signed-off-by: Tetiana Kravchenko * add PR number Signed-off-by: Tetiana Kravchenko * keep if is not returned in GKE metadata Signed-off-by: Tetiana Kravchenko * add PR number Signed-off-by: Tetiana Kravchenko * remove orchestrator if cluster name is mepty Signed-off-by: Tetiana Kravchenko * changes needed to pass golangci-lint Signed-off-by: Tetiana Kravchenko Signed-off-by: Tetiana Kravchenko (cherry picked from commit 6c01bc60614845ac77f71e13cbec9090400a16e7) --- CHANGELOG.next.asciidoc | 7 +++++++ .../add_cloud_metadata/provider_google_gce.go | 20 +++++++++++++------ .../provider_google_gce_test.go | 15 +++++++++----- 3 files changed, 31 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 18076ecb54fb..80662eb2254f 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -36,6 +36,13 @@ https://github.com/elastic/beats/compare/v8.2.0\...main[Check the HEAD diff] *Affecting all Beats* +- Fix namespacing for agent self-monitoring, CPU no longer reports as zero. {pull}32336[32336] +- Fix namespacing on self-monitoring {pull}32336[32336] +- Expand fields in `decode_json_fields` if target is set. {issue}31712[31712] {pull}32010[32010] +- Fix race condition when stopping runners {pull}32433[32433] +- Fix concurrent map writes when system/process code called from reporter code {pull}32491[32491] +- Fix in AWS related services initialisation relying on custom endpoint resolver. {issue}32888[32888] {pull}32921[32921] +- Keep `orchestrator.cluster.name` if `kubeconfig` is not returned in GKE metadata. {pull}33418[33418] *Auditbeat* diff --git a/libbeat/processors/add_cloud_metadata/provider_google_gce.go b/libbeat/processors/add_cloud_metadata/provider_google_gce.go index fb9b1e226290..c24c89cc72c9 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce.go @@ -66,7 +66,7 @@ var gceMetadataFetcher = provider{ if !ok { return } - cloud.Put(key, path.Base(p)) + _, _ = cloud.Put(key, path.Base(p)) } if instance, ok := m["instance"].(map[string]interface{}); ok { @@ -97,21 +97,29 @@ var gceMetadataFetcher = provider{ if kubeconfig, err := meta.GetValue("orchestrator.cluster.kubeconfig"); err == nil { kubeConfig, ok := kubeconfig.(string) if !ok { - meta.Delete("orchestrator.cluster.kubeconfig") + _ = meta.Delete("orchestrator.cluster.kubeconfig") } cc := &KubeConfig{} err := yaml.Unmarshal([]byte(kubeConfig), cc) if err != nil { - meta.Delete("orchestrator.cluster.kubeconfig") + _ = meta.Delete("orchestrator.cluster.kubeconfig") } if len(cc.Clusters) > 0 { if cc.Clusters[0].Cluster.Server != "" { - meta.Delete("orchestrator.cluster.kubeconfig") - meta.Put("orchestrator.cluster.url", cc.Clusters[0].Cluster.Server) + _ = meta.Delete("orchestrator.cluster.kubeconfig") + _, _ = meta.Put("orchestrator.cluster.url", cc.Clusters[0].Cluster.Server) } } } else { - meta.Delete("orchestrator") + _ = meta.Delete("orchestrator.cluster.kubeconfig") + } + + clusterName, err := meta.GetValue("orchestrator.cluster.name") + if err != nil { + _ = meta.Delete("orchestrator") + } + if clusterName, ok := clusterName.(string); !ok || clusterName == "" { + _ = meta.Delete("orchestrator") } if project, ok := m["project"].(map[string]interface{}); ok { diff --git a/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go b/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go index 522c501bcc8c..46888a0c4aae 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go @@ -299,7 +299,7 @@ const gceK8sPartialMetadataV1 = `{ func initGCETestServer(resp string) *httptest.Server { return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.RequestURI == "/computeMetadata/v1/?recursive=true&alt=json" { - w.Write([]byte(resp)) + _, _ = w.Write([]byte(resp)) return } @@ -308,7 +308,7 @@ func initGCETestServer(resp string) *httptest.Server { } func TestRetrieveGCEMetadata(t *testing.T) { - logp.TestingSetup() + _ = logp.TestingSetup() server := initGCETestServer(gceMetadataV1) defer server.Close() @@ -356,7 +356,7 @@ func TestRetrieveGCEMetadata(t *testing.T) { } func TestRetrieveGCEMetadataInK8s(t *testing.T) { - logp.TestingSetup() + _ = logp.TestingSetup() server := initGCETestServer(gceK8sMetadataV1) defer server.Close() @@ -410,7 +410,7 @@ func TestRetrieveGCEMetadataInK8s(t *testing.T) { } func TestRetrieveGCEMetadataInK8sNotOverriden(t *testing.T) { - logp.TestingSetup() + _ = logp.TestingSetup() server := initGCETestServer(gceK8sMetadataV1) defer server.Close() @@ -475,7 +475,7 @@ func TestRetrieveGCEMetadataInK8sNotOverriden(t *testing.T) { } func TestRetrieveGCEMetadataInK8sPartial(t *testing.T) { - logp.TestingSetup() + _ = logp.TestingSetup() server := initGCETestServer(gceK8sPartialMetadataV1) defer server.Close() @@ -518,6 +518,11 @@ func TestRetrieveGCEMetadataInK8sPartial(t *testing.T) { "name": "GCE", }, }, + "orchestrator": mapstr.M{ + "cluster": mapstr.M{ + "name": "staging-marketing-k8s", + }, + }, } assert.Equal(t, expected, actual.Fields) }