From bfbdb5121070fe87985971357f5e8e7c86a3a28f Mon Sep 17 00:00:00 2001 From: "felix.phipps" Date: Mon, 20 Oct 2025 10:55:51 +0100 Subject: [PATCH 1/4] immutable property added --- pkg/datagatherer/k8s/fieldfilter.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/datagatherer/k8s/fieldfilter.go b/pkg/datagatherer/k8s/fieldfilter.go index 2f09f1dd..6af47ed4 100644 --- a/pkg/datagatherer/k8s/fieldfilter.go +++ b/pkg/datagatherer/k8s/fieldfilter.go @@ -25,7 +25,7 @@ var SecretSelectedFields = []FieldPath{ {"metadata", "creationTimestamp"}, {"metadata", "deletionTimestamp"}, {"metadata", "resourceVersion"}, - + {"immutable"}, {"type"}, {"data", "tls.crt"}, {"data", "ca.crt"}, From 1330b71f6274c63c7d159e8f72f14a76f5511ddc Mon Sep 17 00:00:00 2001 From: "felix.phipps" Date: Mon, 20 Oct 2025 11:13:14 +0100 Subject: [PATCH 2/4] (Test) Confirm select function preserves immutability --- pkg/datagatherer/k8s/fieldfilter_test.go | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkg/datagatherer/k8s/fieldfilter_test.go b/pkg/datagatherer/k8s/fieldfilter_test.go index 3d81993f..c972d9b7 100644 --- a/pkg/datagatherer/k8s/fieldfilter_test.go +++ b/pkg/datagatherer/k8s/fieldfilter_test.go @@ -69,6 +69,31 @@ func TestSelect(t *testing.T) { }, )) + //Confirm select function preserves immutability + t.Run("secret-immutable", run_TestSelect( + map[string]interface{}{ + "apiVersion": "v1", + "kind": "Secret", + "immutable": true, + "metadata": map[string]interface{}{ + "name": "with-immutable", + "namespace": "example", + }, + "type": "Opaque", + }, + SecretSelectedFields, + map[string]interface{}{ + "apiVersion": "v1", + "kind": "Secret", + "immutable": true, + "metadata": map[string]interface{}{ + "name": "with-immutable", + "namespace": "example", + }, + "type": "Opaque", + }, + )) + t.Run("route", run_TestSelect( map[string]interface{}{ "apiVersion": "v1", From 40a5631fccdef6a8c318f48a5997f95d7739f5cd Mon Sep 17 00:00:00 2001 From: "felix.phipps" Date: Mon, 20 Oct 2025 11:17:14 +0100 Subject: [PATCH 3/4] commentFormatting fix --- pkg/datagatherer/k8s/fieldfilter_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/datagatherer/k8s/fieldfilter_test.go b/pkg/datagatherer/k8s/fieldfilter_test.go index c972d9b7..b55fd2c4 100644 --- a/pkg/datagatherer/k8s/fieldfilter_test.go +++ b/pkg/datagatherer/k8s/fieldfilter_test.go @@ -69,7 +69,7 @@ func TestSelect(t *testing.T) { }, )) - //Confirm select function preserves immutability + // Confirm select function preserves immutability t.Run("secret-immutable", run_TestSelect( map[string]interface{}{ "apiVersion": "v1", From f6591257068ce96b266995e9567a8f9290f127b4 Mon Sep 17 00:00:00 2001 From: "felix.phipps" Date: Mon, 20 Oct 2025 11:40:36 +0100 Subject: [PATCH 4/4] Aditional tests (Immutable False, Immutable unspecified) added --- pkg/datagatherer/k8s/fieldfilter_test.go | 46 ++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/pkg/datagatherer/k8s/fieldfilter_test.go b/pkg/datagatherer/k8s/fieldfilter_test.go index b55fd2c4..1590a9f8 100644 --- a/pkg/datagatherer/k8s/fieldfilter_test.go +++ b/pkg/datagatherer/k8s/fieldfilter_test.go @@ -94,6 +94,52 @@ func TestSelect(t *testing.T) { }, )) + t.Run("secret-immutable-false", run_TestSelect( + map[string]interface{}{ + "apiVersion": "v1", + "kind": "Secret", + "immutable": false, + "metadata": map[string]interface{}{ + "name": "with-immutable-false", + "namespace": "example", + }, + "type": "Opaque", + }, + SecretSelectedFields, + map[string]interface{}{ + "apiVersion": "v1", + "kind": "Secret", + "immutable": false, + "metadata": map[string]interface{}{ + "name": "with-immutable-false", + "namespace": "example", + }, + "type": "Opaque", + }, + )) + + t.Run("secret-immutable-absent", run_TestSelect( + map[string]interface{}{ + "apiVersion": "v1", + "kind": "Secret", + "metadata": map[string]interface{}{ + "name": "immutable-absent", + "namespace": "example", + }, + "type": "Opaque", + }, + SecretSelectedFields, + map[string]interface{}{ + "apiVersion": "v1", + "kind": "Secret", + "metadata": map[string]interface{}{ + "name": "immutable-absent", + "namespace": "example", + }, + "type": "Opaque", + }, + )) + t.Run("route", run_TestSelect( map[string]interface{}{ "apiVersion": "v1",