|
|
|
@ -19,8 +19,23 @@ package kube
|
|
|
|
|
// ResourcePolicyAnno is the annotation name for a resource policy
|
|
|
|
|
const ResourcePolicyAnno = "helm.sh/resource-policy"
|
|
|
|
|
|
|
|
|
|
// KeepPolicy is the resource policy type for keep
|
|
|
|
|
// deletePolicy is the resource policy type for delete
|
|
|
|
|
//
|
|
|
|
|
// This resource policy type allows resources to skip being deleted
|
|
|
|
|
// during an uninstallRelease action.
|
|
|
|
|
const KeepPolicy = "keep"
|
|
|
|
|
// This resource policy type allows explicitly opting in to the default
|
|
|
|
|
// resource deletion behavior, for example when overriding a chart's
|
|
|
|
|
// default annotations. Any other value allows resources to skip being
|
|
|
|
|
// deleted during an uninstallRelease action.
|
|
|
|
|
const deletePolicy = "delete"
|
|
|
|
|
|
|
|
|
|
// ResourcePolicyIsKeep accepts a map of Kubernetes resource annotations and
|
|
|
|
|
// returns true if the resource should be kept, otherwise false if it is safe
|
|
|
|
|
// for Helm to delete.
|
|
|
|
|
func ResourcePolicyIsKeep(annotations map[string]string) bool {
|
|
|
|
|
if annotations != nil {
|
|
|
|
|
resourcePolicyType, ok := annotations[ResourcePolicyAnno]
|
|
|
|
|
if ok && resourcePolicyType != deletePolicy {
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|