@@ -331,7 +331,7 @@ func genManifest(original, target kube.ResourceList) ([]byte, []byte, error) {
331331 }
332332 // to be updated
333333 out , _ := jsoniterator .ConfigCompatibleWithStandardLibrary .Marshal (currentObj )
334- pruneObj , err := deleteStatusAndManagedFields (out )
334+ pruneObj , err := deleteStatusAndTidyMetadata (out )
335335 if err != nil {
336336 return errors .Wrapf (err , "prune current obj %q with kind %s" , info .Name , kind )
337337 }
@@ -358,7 +358,7 @@ func genManifest(original, target kube.ResourceList) ([]byte, []byte, error) {
358358 return errors .Wrapf (err , "cannot patch %q with kind %s" , info .Name , kind )
359359 }
360360 out , _ = jsoniterator .ConfigCompatibleWithStandardLibrary .Marshal (targetObj )
361- pruneObj , err = deleteStatusAndManagedFields (out )
361+ pruneObj , err = deleteStatusAndTidyMetadata (out )
362362 if err != nil {
363363 return errors .Wrapf (err , "prune current obj %q with kind %s" , info .Name , kind )
364364 }
@@ -537,14 +537,28 @@ func existingResourceConflict(resources kube.ResourceList) (kube.ResourceList, e
537537 return requireUpdate , err
538538}
539539
540- func deleteStatusAndManagedFields (obj []byte ) (map [string ]interface {}, error ) {
540+ func deleteStatusAndTidyMetadata (obj []byte ) (map [string ]interface {}, error ) {
541541 var objectMap map [string ]interface {}
542542 err := jsoniterator .Unmarshal (obj , & objectMap )
543543 if err != nil {
544544 return nil , errors .Wrap (err , "could not unmarshal byte sequence" )
545545 }
546+
546547 delete (objectMap , "status" )
547- delete (objectMap ["metadata" ].(map [string ]interface {}), "managedFields" )
548+
549+ metadata := objectMap ["metadata" ].(map [string ]interface {})
550+
551+ delete (metadata , "managedFields" )
552+
553+ if a := metadata ["annotations" ]; a != nil {
554+ annotations := a .(map [string ]interface {})
555+ delete (annotations , "meta.helm.sh/release-name" )
556+ delete (annotations , "meta.helm.sh/release-namespace" )
557+
558+ if len (annotations ) == 0 {
559+ delete (metadata , "annotations" )
560+ }
561+ }
548562
549563 return objectMap , nil
550564}
0 commit comments