diff --git a/pkg/storage/driver/cfgmaps.go b/pkg/storage/driver/cfgmaps.go index e6bcfce4d..1d840708c 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) { return nil, err } - r.Labels = getLabelsFromCM(obj) + r.Labels = filterSystemLabels(obj.ObjectMeta.Labels) // return the release object return r, nil @@ -109,7 +109,7 @@ func (cfgmaps *ConfigMaps) List(filter func(*rspb.Release) bool) ([]*rspb.Releas continue } - rls.Labels = getLabelsFromCM(&item) + rls.Labels = filterSystemLabels(item.ObjectMeta.Labels) if filter(rls) { results = append(results, rls) @@ -261,13 +261,3 @@ func newConfigMapsObject(key string, rls *rspb.Release, lbs labels) (*v1.ConfigM Data: map[string]string{"release": s}, }, nil } - -func getLabelsFromCM(obj *v1.ConfigMap) map[string]string { - labels := obj.ObjectMeta.Labels - - for _, k := range []string{"name", "owner", "status", "version"} { - delete(labels, k) - } - - return labels -} diff --git a/pkg/storage/driver/secrets.go b/pkg/storage/driver/secrets.go index 2e8530d0c..9b60fb8c6 100644 --- a/pkg/storage/driver/secrets.go +++ b/pkg/storage/driver/secrets.go @@ -72,6 +72,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) return r, errors.Wrapf(err, "get: failed to decode data %q", key) } @@ -98,7 +99,7 @@ func (secrets *Secrets) List(filter func(*rspb.Release) bool) ([]*rspb.Release, continue } - rls.Labels = item.ObjectMeta.Labels + rls.Labels = filterSystemLabels(item.ObjectMeta.Labels) if filter(rls) { results = append(results, rls) @@ -222,7 +223,10 @@ func newSecretsObject(key string, rls *rspb.Release, lbs labels) (*v1.Secret, er lbs.init() } - // apply labels + // apply user labels + lbs.fromMap(rls.Labels) + + // apply internal labels lbs.set("name", rls.Name) lbs.set("owner", owner) lbs.set("status", rls.Info.Status.String()) diff --git a/pkg/storage/driver/util.go b/pkg/storage/driver/util.go index e5b846163..796a0c2d0 100644 --- a/pkg/storage/driver/util.go +++ b/pkg/storage/driver/util.go @@ -83,3 +83,11 @@ func decodeRelease(data string) (*rspb.Release, error) { } return &rls, nil } + +// Removes system labels +func filterSystemLabels(lbs map[string]string) map[string]string { + for _, k := range []string{"name", "owner", "status", "version"} { + delete(lbs, k) + } + return lbs +}