From 99259a83beeea8529f8b9bbeda0461e2d8889c1d Mon Sep 17 00:00:00 2001 From: maxime1907 <19607336+maxime1907@users.noreply.github.com> Date: Tue, 26 Nov 2024 12:44:29 +0100 Subject: [PATCH 1/2] fix(storage): filter out system labels from custom labels apply Signed-off-by: maxime1907 <19607336+maxime1907@users.noreply.github.com> --- pkg/storage/driver/cfgmaps.go | 4 ++-- pkg/storage/driver/secrets.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/storage/driver/cfgmaps.go b/pkg/storage/driver/cfgmaps.go index ce88c662b..546aa31f1 100644 --- a/pkg/storage/driver/cfgmaps.go +++ b/pkg/storage/driver/cfgmaps.go @@ -245,9 +245,9 @@ func newConfigMapsObject(key string, rls *rspb.Release, lbs labels) (*v1.ConfigM } // apply custom labels - lbs.fromMap(rls.Labels) + lbs.fromMap(filterSystemLabels(rls.Labels)) - // apply labels + // apply system labels lbs.set("name", rls.Name) lbs.set("owner", owner) lbs.set("status", rls.Info.Status.String()) diff --git a/pkg/storage/driver/secrets.go b/pkg/storage/driver/secrets.go index 95a7e9032..7537763c1 100644 --- a/pkg/storage/driver/secrets.go +++ b/pkg/storage/driver/secrets.go @@ -227,9 +227,9 @@ func newSecretsObject(key string, rls *rspb.Release, lbs labels) (*v1.Secret, er } // apply custom labels - lbs.fromMap(rls.Labels) + lbs.fromMap(filterSystemLabels(rls.Labels)) - // apply labels + // apply system labels lbs.set("name", rls.Name) lbs.set("owner", owner) lbs.set("status", rls.Info.Status.String()) From 0b22ad47cad382f25e90e3c4b5292935f08fea10 Mon Sep 17 00:00:00 2001 From: maxime1907 <19607336+maxime1907@users.noreply.github.com> Date: Tue, 26 Nov 2024 13:56:57 +0100 Subject: [PATCH 2/2] fix(storage): test system labels creation Signed-off-by: maxime1907 <19607336+maxime1907@users.noreply.github.com> --- pkg/storage/driver/cfgmaps.go | 2 +- pkg/storage/driver/cfgmaps_test.go | 4 ++++ pkg/storage/driver/secrets.go | 2 +- pkg/storage/driver/secrets_test.go | 11 +++++++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/pkg/storage/driver/cfgmaps.go b/pkg/storage/driver/cfgmaps.go index 546aa31f1..1f7cb4da4 100644 --- a/pkg/storage/driver/cfgmaps.go +++ b/pkg/storage/driver/cfgmaps.go @@ -79,7 +79,7 @@ func (cfgmaps *ConfigMaps) Get(key string) (*rspb.Release, error) { cfgmaps.Log("get: failed to decode data %q: %s", key, err) return nil, err } - r.Labels = filterSystemLabels(obj.ObjectMeta.Labels) + r.Labels = obj.ObjectMeta.Labels // return the release object return r, nil } diff --git a/pkg/storage/driver/cfgmaps_test.go b/pkg/storage/driver/cfgmaps_test.go index 9a539d6ec..8568542c9 100644 --- a/pkg/storage/driver/cfgmaps_test.go +++ b/pkg/storage/driver/cfgmaps_test.go @@ -46,6 +46,7 @@ func TestConfigMapGet(t *testing.T) { t.Fatalf("Failed to get release: %s", err) } // compare fetched release with original + got.Labels = filterSystemLabels(got.Labels) if !reflect.DeepEqual(rel, got) { t.Errorf("Expected {%v}, got {%v}", rel, got) } @@ -78,6 +79,7 @@ func TestUncompressedConfigMapGet(t *testing.T) { t.Fatalf("Failed to get release: %s", err) } // compare fetched release with original + got.Labels = filterSystemLabels(got.Labels) if !reflect.DeepEqual(rel, got) { t.Errorf("Expected {%v}, got {%v}", rel, got) } @@ -185,6 +187,7 @@ func TestConfigMapCreate(t *testing.T) { } // compare created release with original + got.Labels = filterSystemLabels(got.Labels) if !reflect.DeepEqual(rel, got) { t.Errorf("Expected {%v}, got {%v}", rel, got) } @@ -239,6 +242,7 @@ func TestConfigMapDelete(t *testing.T) { if err != nil { t.Fatalf("Failed to delete release with key %q: %s", key, err) } + rls.Labels = filterSystemLabels(rls.Labels) if !reflect.DeepEqual(rel, rls) { t.Errorf("Expected {%v}, got {%v}", rel, rls) } diff --git a/pkg/storage/driver/secrets.go b/pkg/storage/driver/secrets.go index 7537763c1..99ae7e78c 100644 --- a/pkg/storage/driver/secrets.go +++ b/pkg/storage/driver/secrets.go @@ -73,7 +73,7 @@ func (secrets *Secrets) Get(key string) (*rspb.Release, error) { } // found the secret, decode the base64 data string r, err := decodeRelease(string(obj.Data["release"])) - r.Labels = filterSystemLabels(obj.ObjectMeta.Labels) + r.Labels = obj.ObjectMeta.Labels return r, errors.Wrapf(err, "get: failed to decode data %q", key) } diff --git a/pkg/storage/driver/secrets_test.go b/pkg/storage/driver/secrets_test.go index b4bf61d5b..878697bad 100644 --- a/pkg/storage/driver/secrets_test.go +++ b/pkg/storage/driver/secrets_test.go @@ -46,6 +46,7 @@ func TestSecretGet(t *testing.T) { t.Fatalf("Failed to get release: %s", err) } // compare fetched release with original + got.Labels = filterSystemLabels(got.Labels) if !reflect.DeepEqual(rel, got) { t.Errorf("Expected {%v}, got {%v}", rel, got) } @@ -78,6 +79,7 @@ func TestUNcompressedSecretGet(t *testing.T) { t.Fatalf("Failed to get release: %s", err) } // compare fetched release with original + got.Labels = filterSystemLabels(got.Labels) if !reflect.DeepEqual(rel, got) { t.Errorf("Expected {%v}, got {%v}", rel, got) } @@ -184,7 +186,12 @@ func TestSecretCreate(t *testing.T) { t.Fatalf("Failed to get release with key %q: %s", key, err) } + // check release has actually been created + if _, exists := got.Labels["createdAt"]; !exists { + t.Errorf("Expected field %s", "createdAt") + } // compare created release with original + got.Labels = filterSystemLabels(got.Labels) if !reflect.DeepEqual(rel, got) { t.Errorf("Expected {%v}, got {%v}", rel, got) } @@ -217,6 +224,9 @@ func TestSecretUpdate(t *testing.T) { if rel.Info.Status != got.Info.Status { t.Errorf("Expected status %s, got status %s", rel.Info.Status.String(), got.Info.Status.String()) } + if _, exists := got.Labels["modifiedAt"]; !exists { + t.Errorf("Expected field %s", "modifiedAt") + } } func TestSecretDelete(t *testing.T) { @@ -239,6 +249,7 @@ func TestSecretDelete(t *testing.T) { if err != nil { t.Fatalf("Failed to delete release with key %q: %s", key, err) } + rls.Labels = filterSystemLabels(rls.Labels) if !reflect.DeepEqual(rel, rls) { t.Errorf("Expected {%v}, got {%v}", rel, rls) }