@@ -30,25 +30,31 @@ import (
3030
3131 "github.com/arangodb/kube-arangodb/pkg/deployment/resources/inspector"
3232 "github.com/arangodb/kube-arangodb/pkg/util"
33+ "github.com/arangodb/kube-arangodb/pkg/util/constants"
3334 "github.com/arangodb/kube-arangodb/pkg/util/k8sutil"
3435 inspectorInterface "github.com/arangodb/kube-arangodb/pkg/util/k8sutil/inspector"
3536)
3637
3738// removePodFinalizers removes all finalizers from all pods owned by us.
38- func (d * Deployment ) removePodFinalizers (ctx context.Context , cachedStatus inspectorInterface.Inspector ) error {
39+ func (d * Deployment ) removePodFinalizers (ctx context.Context , cachedStatus inspectorInterface.Inspector ) ( bool , error ) {
3940 log := d .deps .Log
4041
42+ found := false
43+
4144 if err := cachedStatus .IteratePods (func (pod * core.Pod ) error {
42- if err := k8sutil .RemovePodFinalizers (ctx , cachedStatus , log , d .PodsModInterface (), pod , pod .GetFinalizers (), true ); err != nil {
45+ log .Info ().Str ("pod" , pod .GetName ()).Msgf ("Removing Pod Finalizer" )
46+ if count , err := k8sutil .RemovePodFinalizers (ctx , cachedStatus , log , d .PodsModInterface (), pod , constants .ManagedFinalizers (), true ); err != nil {
4347 log .Warn ().Err (err ).Msg ("Failed to remove pod finalizers" )
4448 return err
49+ } else if count > 0 {
50+ found = true
4551 }
4652
4753 ctxChild , cancel := globals .GetGlobalTimeouts ().Kubernetes ().WithTimeout (ctx )
4854 defer cancel ()
4955
5056 if err := d .PodsModInterface ().Delete (ctxChild , pod .GetName (), meta.DeleteOptions {
51- GracePeriodSeconds : util .NewInt64 (1 ),
57+ GracePeriodSeconds : util .NewInt64 (0 ),
5258 }); err != nil {
5359 if ! k8sutil .IsNotFound (err ) {
5460 log .Warn ().Err (err ).Msg ("Failed to remove pod" )
@@ -57,25 +63,30 @@ func (d *Deployment) removePodFinalizers(ctx context.Context, cachedStatus inspe
5763 }
5864 return nil
5965 }, inspector .FilterPodsByLabels (k8sutil .LabelsForDeployment (d .GetName (), "" ))); err != nil {
60- return err
66+ return false , err
6167 }
6268
63- return nil
69+ return found , nil
6470}
6571
6672// removePVCFinalizers removes all finalizers from all PVCs owned by us.
67- func (d * Deployment ) removePVCFinalizers (ctx context.Context , cachedStatus inspectorInterface.Inspector ) error {
73+ func (d * Deployment ) removePVCFinalizers (ctx context.Context , cachedStatus inspectorInterface.Inspector ) ( bool , error ) {
6874 log := d .deps .Log
6975
76+ found := false
77+
7078 if err := cachedStatus .IteratePersistentVolumeClaims (func (pvc * core.PersistentVolumeClaim ) error {
71- if err := k8sutil .RemovePVCFinalizers (ctx , cachedStatus , log , d .PersistentVolumeClaimsModInterface (), pvc , pvc .GetFinalizers (), true ); err != nil {
79+ log .Info ().Str ("pvc" , pvc .GetName ()).Msgf ("Removing PVC Finalizer" )
80+ if count , err := k8sutil .RemovePVCFinalizers (ctx , cachedStatus , log , d .PersistentVolumeClaimsModInterface (), pvc , constants .ManagedFinalizers (), true ); err != nil {
7281 log .Warn ().Err (err ).Msg ("Failed to remove PVC finalizers" )
7382 return err
83+ } else if count > 0 {
84+ found = true
7485 }
7586 return nil
7687 }, inspector .FilterPersistentVolumeClaimsByLabels (k8sutil .LabelsForDeployment (d .GetName (), "" ))); err != nil {
77- return err
88+ return false , err
7889 }
7990
80- return nil
91+ return found , nil
8192}
0 commit comments