Allow using a different value for the app.kubernetes.io/managed-by label

Signed-off-by: Marko Lukša <marko.luksa@gmail.com>
pull/30767/head
Marko Lukša 5 months ago
parent c1ffaedfa8
commit 05b8b6bc98
No known key found for this signature in database
GPG Key ID: FAFB997AEFBADC0D

@ -32,11 +32,14 @@ var accessor = meta.NewAccessor()
const (
appManagedByLabel = "app.kubernetes.io/managed-by"
appManagedByHelm = "Helm"
helmReleaseNameAnnotation = "meta.helm.sh/release-name"
helmReleaseNamespaceAnnotation = "meta.helm.sh/release-namespace"
)
// AppManagedByLabel is the value Helm should use in the app.kubernetes.io/managed-by label to
// identify resources it manages. Defaults to "Helm", but can be overridden via this variable.
var AppManagedByValue = "Helm"
// requireAdoption returns the subset of resources that already exist in the cluster.
func requireAdoption(resources kube.ResourceList) (kube.ResourceList, error) {
var requireUpdate kube.ResourceList
@ -102,7 +105,7 @@ func checkOwnership(obj runtime.Object, releaseName, releaseNamespace string) er
}
var errs []error
if err := requireValue(lbls, appManagedByLabel, appManagedByHelm); err != nil {
if err := requireValue(lbls, appManagedByLabel, AppManagedByValue); err != nil {
errs = append(errs, fmt.Errorf("label validation error: %s", err))
}
if err := requireValue(annos, helmReleaseNameAnnotation, releaseName); err != nil {
@ -150,7 +153,7 @@ func setMetadataVisitor(releaseName, releaseNamespace string, force bool) resour
}
if err := mergeLabels(info.Object, map[string]string{
appManagedByLabel: appManagedByHelm,
appManagedByLabel: AppManagedByValue,
}); err != nil {
return fmt.Errorf(
"%s labels could not be updated: %s",

@ -139,7 +139,7 @@ func TestExistingResourceConflict(t *testing.T) {
releaseName = "rel-name"
releaseNamespace = "rel-namespace"
labels = map[string]string{
appManagedByLabel: appManagedByHelm,
appManagedByLabel: AppManagedByValue,
}
annotations = map[string]string{
helmReleaseNameAnnotation: releaseName,
@ -172,7 +172,7 @@ func TestCheckOwnership(t *testing.T) {
// Set managed by label and verify annotation error message
_ = accessor.SetLabels(deployFoo.Object, map[string]string{
appManagedByLabel: appManagedByHelm,
appManagedByLabel: AppManagedByValue,
})
err = checkOwnership(deployFoo.Object, "rel-a", "ns-a")
assert.EqualError(t, err, `invalid ownership metadata; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rel-a"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "ns-a"`)

Loading…
Cancel
Save