From 46c8c213df85cae55cc6bbf092a9e47e1d07e23c Mon Sep 17 00:00:00 2001 From: Tetiana Kravchenko Date: Thu, 20 Oct 2022 10:23:30 +0200 Subject: [PATCH 1/6] keep if is not returned in GKE metadata Signed-off-by: Tetiana Kravchenko --- CHANGELOG.next.asciidoc | 1 + libbeat/processors/add_cloud_metadata/provider_google_gce.go | 2 +- .../add_cloud_metadata/provider_google_gce_test.go | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index f772e419ef8c..b942fdb7774a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -48,6 +48,7 @@ https://github.com/elastic/beats/compare/v8.2.0\...main[Check the HEAD diff] - 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 *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..b977e39c2d15 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce.go @@ -111,7 +111,7 @@ var gceMetadataFetcher = provider{ } } } else { - meta.Delete("orchestrator") + meta.Delete("orchestrator.cluster.kubeconfig") } 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..df6c95793e31 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go @@ -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) } From 5a2d7bcd62f0d9cb7f452f90e5d5b7ded4e3be61 Mon Sep 17 00:00:00 2001 From: Tetiana Kravchenko Date: Thu, 20 Oct 2022 10:30:50 +0200 Subject: [PATCH 2/6] add PR number Signed-off-by: Tetiana Kravchenko --- CHANGELOG.next.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b942fdb7774a..6ace9c0cdd79 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -48,7 +48,7 @@ https://github.com/elastic/beats/compare/v8.2.0\...main[Check the HEAD diff] - 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 +- Keep `orchestrator.cluster.name` if `kubeconfig` is not returned in GKE metadata. {pull}33418[33418] *Auditbeat* From 62cfc1282d19ace1d2add635a1cace6da0141269 Mon Sep 17 00:00:00 2001 From: Tetiana Kravchenko Date: Thu, 20 Oct 2022 10:23:30 +0200 Subject: [PATCH 3/6] keep if is not returned in GKE metadata Signed-off-by: Tetiana Kravchenko --- CHANGELOG.next.asciidoc | 1 + libbeat/processors/add_cloud_metadata/provider_google_gce.go | 2 +- .../add_cloud_metadata/provider_google_gce_test.go | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index f772e419ef8c..b942fdb7774a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -48,6 +48,7 @@ https://github.com/elastic/beats/compare/v8.2.0\...main[Check the HEAD diff] - 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 *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..b977e39c2d15 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce.go @@ -111,7 +111,7 @@ var gceMetadataFetcher = provider{ } } } else { - meta.Delete("orchestrator") + meta.Delete("orchestrator.cluster.kubeconfig") } 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..df6c95793e31 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go @@ -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) } From 95e535eadb69ccb05a8ab36070aab96f023f16e9 Mon Sep 17 00:00:00 2001 From: Tetiana Kravchenko Date: Thu, 20 Oct 2022 10:30:50 +0200 Subject: [PATCH 4/6] add PR number Signed-off-by: Tetiana Kravchenko --- CHANGELOG.next.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b942fdb7774a..6ace9c0cdd79 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -48,7 +48,7 @@ https://github.com/elastic/beats/compare/v8.2.0\...main[Check the HEAD diff] - 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 +- Keep `orchestrator.cluster.name` if `kubeconfig` is not returned in GKE metadata. {pull}33418[33418] *Auditbeat* From 0088d83a3da87b0c3fe18b1aef95dba373054db9 Mon Sep 17 00:00:00 2001 From: Tetiana Kravchenko Date: Thu, 20 Oct 2022 15:54:32 +0200 Subject: [PATCH 5/6] remove orchestrator if cluster name is mepty Signed-off-by: Tetiana Kravchenko --- libbeat/processors/add_cloud_metadata/provider_google_gce.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libbeat/processors/add_cloud_metadata/provider_google_gce.go b/libbeat/processors/add_cloud_metadata/provider_google_gce.go index b977e39c2d15..83f9a21952d5 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce.go @@ -114,6 +114,10 @@ var gceMetadataFetcher = provider{ meta.Delete("orchestrator.cluster.kubeconfig") } + if _, err := meta.GetValue("orchestrator.cluster.name"); err != nil { + meta.Delete("orchestrator") + } + if project, ok := m["project"].(map[string]interface{}); ok { s.Schema{ "project": s.Object{ From 8710f610b4fd06efae66b4f97aa63df633ae0f63 Mon Sep 17 00:00:00 2001 From: Tetiana Kravchenko Date: Thu, 20 Oct 2022 18:39:57 +0200 Subject: [PATCH 6/6] changes needed to pass golangci-lint Signed-off-by: Tetiana Kravchenko --- .../add_cloud_metadata/provider_google_gce.go | 20 +++++++++++-------- .../provider_google_gce_test.go | 10 +++++----- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/libbeat/processors/add_cloud_metadata/provider_google_gce.go b/libbeat/processors/add_cloud_metadata/provider_google_gce.go index 83f9a21952d5..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,25 +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.cluster.kubeconfig") + _ = meta.Delete("orchestrator.cluster.kubeconfig") } - if _, err := meta.GetValue("orchestrator.cluster.name"); err != nil { - meta.Delete("orchestrator") + 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 df6c95793e31..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()