Skip to content

Commit aae8ded

Browse files
feat: added cascade option to DeleteResource - argo-cd #5368 (argoproj#220)
* feat: added cascade option to DeleteResource - argo-cd #5368 Signed-off-by: ishitasequeira <[email protected]> * added a comment re-trigger the unit test Signed-off-by: ishitasequeira <[email protected]> * feat: updated delete option logic in DeleteResource Signed-off-by: ishitasequeira <[email protected]>
1 parent 354817a commit aae8ded

File tree

3 files changed

+10
-11
lines changed

3 files changed

+10
-11
lines changed

pkg/sync/sync_context.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -820,7 +820,9 @@ func (sc *syncContext) pruneObject(liveObj *unstructured.Unstructured, prune, dr
820820
// Skip deletion if object is already marked for deletion, so we don't cause a resource update hotloop
821821
deletionTimestamp := liveObj.GetDeletionTimestamp()
822822
if deletionTimestamp == nil || deletionTimestamp.IsZero() {
823-
err := sc.kubectl.DeleteResource(context.TODO(), sc.config, liveObj.GroupVersionKind(), liveObj.GetName(), liveObj.GetNamespace(), false)
823+
propagationPolicy := metav1.DeletePropagationForeground
824+
deleteOption := metav1.DeleteOptions{PropagationPolicy: &propagationPolicy}
825+
err := sc.kubectl.DeleteResource(context.TODO(), sc.config, liveObj.GroupVersionKind(), liveObj.GetName(), liveObj.GetNamespace(), deleteOption)
824826
if err != nil {
825827
return common.ResultCodeSyncFailed, err.Error()
826828
}

pkg/utils/kube/ctl.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ type OnKubectlRunFunc func(command string) (CleanupFunc, error)
3939
type Kubectl interface {
4040
ApplyResource(ctx context.Context, config *rest.Config, obj *unstructured.Unstructured, namespace string, dryRunStrategy cmdutil.DryRunStrategy, force, validate bool) (string, error)
4141
ConvertToVersion(obj *unstructured.Unstructured, group, version string) (*unstructured.Unstructured, error)
42-
DeleteResource(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, forceDelete bool) error
42+
DeleteResource(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, deleteOptions metav1.DeleteOptions) error
4343
GetResource(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string) (*unstructured.Unstructured, error)
4444
PatchResource(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, patchType types.PatchType, patchBytes []byte, subresources ...string) (*unstructured.Unstructured, error)
4545
GetAPIResources(config *rest.Config, resourceFilter ResourceFilter) ([]APIResourceInfo, error)
@@ -187,7 +187,7 @@ func (k *KubectlCmd) PatchResource(ctx context.Context, config *rest.Config, gvk
187187
}
188188

189189
// DeleteResource deletes resource
190-
func (k *KubectlCmd) DeleteResource(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, forceDelete bool) error {
190+
func (k *KubectlCmd) DeleteResource(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, deleteOptions metav1.DeleteOptions) error {
191191
span := k.Tracer.StartSpan("DeleteResource")
192192
span.SetBaggageItem("kind", gvk.Kind)
193193
span.SetBaggageItem("name", name)
@@ -206,14 +206,11 @@ func (k *KubectlCmd) DeleteResource(ctx context.Context, config *rest.Config, gv
206206
}
207207
resource := gvk.GroupVersion().WithResource(apiResource.Name)
208208
resourceIf := ToResourceInterface(dynamicIf, apiResource, resource, namespace)
209-
propagationPolicy := metav1.DeletePropagationForeground
210-
deleteOptions := metav1.DeleteOptions{PropagationPolicy: &propagationPolicy}
211-
if forceDelete {
212-
propagationPolicy = metav1.DeletePropagationBackground
213-
zeroGracePeriod := int64(0)
214-
deleteOptions.GracePeriodSeconds = &zeroGracePeriod
215-
}
216209

210+
if deleteOptions.PropagationPolicy == nil {
211+
propagationPolicy := metav1.DeletePropagationForeground
212+
deleteOptions = metav1.DeleteOptions{PropagationPolicy: &propagationPolicy}
213+
}
217214
return resourceIf.Delete(ctx, name, deleteOptions)
218215
}
219216

pkg/utils/kube/kubetest/mock.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func (k *MockKubectlCmd) PatchResource(ctx context.Context, config *rest.Config,
6161
return nil, nil
6262
}
6363

64-
func (k *MockKubectlCmd) DeleteResource(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, forceDelete bool) error {
64+
func (k *MockKubectlCmd) DeleteResource(ctx context.Context, config *rest.Config, gvk schema.GroupVersionKind, name string, namespace string, deleteOptions metav1.DeleteOptions) error {
6565
command, ok := k.Commands[name]
6666
if !ok {
6767
return nil

0 commit comments

Comments
 (0)