incorporate copilot comments

Signed-off-by: cg49996w11 <cg49996w11@gmail.com>
pull/32257/head
cg49996w11 3 months ago
parent d149937ea3
commit ccce0b3b22

@ -32,10 +32,8 @@ import (
var accessor = meta.NewAccessor() var accessor = meta.NewAccessor()
const ( const (
appManagedByLabel = "app.kubernetes.io/managed-by" appManagedByLabel = "app.kubernetes.io/managed-by"
appManagedByHelm = "Helm" appManagedByHelm = "Helm"
helmReleaseNameAnnotation = "meta.helm.sh/release-name"
helmReleaseNamespaceAnnotation = "meta.helm.sh/release-namespace"
) )
// requireAdoption returns the subset of resources that already exist in the cluster. // requireAdoption returns the subset of resources that already exist in the cluster.
@ -181,10 +179,10 @@ func checkOwnership(obj runtime.Object, releaseName, releaseNamespace string) er
if err := requireValue(lbls, appManagedByLabel, appManagedByHelm); err != nil { if err := requireValue(lbls, appManagedByLabel, appManagedByHelm); err != nil {
errs = append(errs, fmt.Errorf("label validation error: %w", err)) errs = append(errs, fmt.Errorf("label validation error: %w", err))
} }
if err := requireValue(annos, helmReleaseNameAnnotation, releaseName); err != nil { if err := requireValue(annos, kube.ReleaseNameAnnotation, releaseName); err != nil {
errs = append(errs, fmt.Errorf("annotation validation error: %w", err)) errs = append(errs, fmt.Errorf("annotation validation error: %w", err))
} }
if err := requireValue(annos, helmReleaseNamespaceAnnotation, releaseNamespace); err != nil { if err := requireValue(annos, kube.ReleaseNamespaceAnnotation, releaseNamespace); err != nil {
errs = append(errs, fmt.Errorf("annotation validation error: %w", err)) errs = append(errs, fmt.Errorf("annotation validation error: %w", err))
} }
@ -231,8 +229,8 @@ func setMetadataVisitor(releaseName, releaseNamespace string, forceOwnership boo
} }
if err := mergeAnnotations(info.Object, map[string]string{ if err := mergeAnnotations(info.Object, map[string]string{
helmReleaseNameAnnotation: releaseName, kube.ReleaseNameAnnotation: releaseName,
helmReleaseNamespaceAnnotation: releaseNamespace, kube.ReleaseNamespaceAnnotation: releaseNamespace,
}); err != nil { }); err != nil {
return fmt.Errorf( return fmt.Errorf(
"%s annotations could not be updated: %w", "%s annotations could not be updated: %w",

@ -812,6 +812,9 @@ func ClientUpdateOptionUpgradeClientSideFieldManager(upgradeClientSideFieldManag
// release. Resources annotated as belonging to a different release will be skipped. // release. Resources annotated as belonging to a different release will be skipped.
func ClientUpdateOptionOwnership(releaseName, releaseNamespace string) ClientUpdateOption { func ClientUpdateOptionOwnership(releaseName, releaseNamespace string) ClientUpdateOption {
return func(o *clientUpdateOptions) error { return func(o *clientUpdateOptions) error {
if releaseName == "" {
return errors.New("releaseName must not be empty for ownership check")
}
o.releaseName = releaseName o.releaseName = releaseName
o.releaseNamespace = releaseNamespace o.releaseNamespace = releaseNamespace

@ -663,6 +663,22 @@ func TestUpdateOwnershipCheck(t *testing.T) {
} }
} }
func TestClientUpdateOptionOwnershipValidation(t *testing.T) {
// An empty releaseName must be rejected so callers cannot silently disable
// the ownership check by passing a zero-value string.
opt := ClientUpdateOptionOwnership("", "some-ns")
var o clientUpdateOptions
err := opt(&o)
assert.ErrorContains(t, err, "releaseName must not be empty")
// Non-empty releaseName with empty namespace is allowed (cluster-scoped resources).
opt2 := ClientUpdateOptionOwnership("my-release", "")
err = opt2(&o)
assert.NoError(t, err)
assert.Equal(t, "my-release", o.releaseName)
assert.Equal(t, "", o.releaseNamespace)
}
func TestBuild(t *testing.T) { func TestBuild(t *testing.T) {
tests := []struct { tests := []struct {
name string name string

Loading…
Cancel
Save