Skip to content

Commit 72a6535

Browse files
committed
[Bugfix] Prevent deployment removal in case of invalid K8S API response (#1063)
1 parent 4e5015a commit 72a6535

File tree

4 files changed

+5
-16
lines changed

4 files changed

+5
-16
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- (Feature) Add 'crd install' subcommand
1111
- (Bugfix) Fix `internal` metrics mode
1212
- (Bugfix) Create agency dump if auth is disabled
13+
- (Bugfix) Prevent deployment removal in case of invalid K8S API response
1314

1415
## [1.2.14](https://github.com/arangodb/kube-arangodb/tree/1.2.14) (2022-07-14)
1516
- (Feature) Add ArangoSync TLS based rotation

pkg/deployment/deployment.go

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -293,9 +293,9 @@ func (d *Deployment) Update(apiObject *api.ArangoDeployment) {
293293
})
294294
}
295295

296-
// Delete the deployment.
296+
// Stop the deployment.
297297
// Called when the deployment was deleted by the user.
298-
func (d *Deployment) Delete() {
298+
func (d *Deployment) Stop() {
299299
d.log.Info("deployment is deleted by user")
300300
if atomic.CompareAndSwapInt32(&d.stopped, 0, 1) {
301301
close(d.stopCh)
@@ -359,18 +359,6 @@ func (d *Deployment) run() {
359359
for {
360360
select {
361361
case <-d.stopCh:
362-
err := d.acs.CurrentClusterCache().Refresh(context.Background())
363-
if err != nil {
364-
log.Err(err).Error("Unable to get resources")
365-
}
366-
// Remove finalizers from created resources
367-
log.Info("Deployment removed, removing finalizers to prevent orphaned resources")
368-
if _, err := d.removePodFinalizers(context.TODO(), d.GetCachedStatus()); err != nil {
369-
log.Err(err).Warn("Failed to remove Pod finalizers")
370-
}
371-
if _, err := d.removePVCFinalizers(context.TODO(), d.GetCachedStatus()); err != nil {
372-
log.Err(err).Warn("Failed to remove PVC finalizers")
373-
}
374362
// We're being stopped.
375363
return
376364

pkg/deployment/deployment_inspector.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func (d *Deployment) inspectDeployment(lastInterval util.Interval) util.Interval
7474
if k8sutil.IsNotFound(err) {
7575
// Deployment is gone
7676
d.log.Info("Deployment is gone")
77-
d.Delete()
77+
d.Stop()
7878
return nextInterval
7979
} else if updated != nil && updated.GetDeletionTimestamp() != nil {
8080
// Deployment is marked for deletion

pkg/operator/operator_deployment.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func (o *Operator) handleDeploymentEvent(event *Event) error {
185185
if !ok {
186186
return errors.WithStack(errors.Newf("unsafe state. deployment (%s) was never created but we received event (%s)", apiObject.Name, event.Type))
187187
}
188-
depl.Delete()
188+
depl.Stop()
189189
delete(o.deployments, apiObject.Name)
190190
deploymentsDeleted.Inc()
191191
deploymentsCurrent.Set(float64(len(o.deployments)))

0 commit comments

Comments
 (0)