It depends on how the operator and its resources are configured. The operator’s controller may perform cleanup itself; Kubernetes’ garbage collector removes dependent Kubernetes objects when valid owner references connect them and deletion is cascading. Finalizers can hold an object in a terminating state until a controller completes required cleanup.
What determines who deletes the resource?
An operator watches custom resources and reconciles them toward the desired state. When a custom resource is deleted, the operator may have cleanup logic of its own. Separately, Kubernetes can delete dependent objects through garbage collection when their metadata.ownerReferences establish the ownership relationship and deletion propagation allows cascading cleanup.
As an Amazon Associate I earn from qualifying purchases.
Kubernetes Documentation explains: “Many objects in Kubernetes link to each other through owner references. Owner references tell the control plane which objects are dependent on others.” Kubernetes Garbage Collection documentation
Labels and selectors can help an operator find or manage objects, but they do not by themselves create the owner-reference relationship used by Kubernetes garbage collection. Scope matters too: a namespaced owner must be in the same namespace as its dependent, and a cluster-scoped dependent can only refer to a cluster-scoped owner. Kubernetes Owners and Dependents documentation
#1 Best Overall
How deletion propagation changes the result
When an owner is deleted, Kubernetes’ propagation policy affects whether and when its dependents are removed. The three relevant policies are:
| Policy | What happens to the owner | What happens to dependents |
|---|---|---|
| Background | The owner is removed promptly. | The garbage collector removes dependents afterward in the background, so they may briefly remain visible. |
| Foreground | The owner remains visible while dependent cleanup is underway. | Cleanup of dependents precedes removal of the owner. |
| Orphan | The owner is removed. | Dependents are deliberately left behind. |
The default background policy means an owner disappearing from the API does not prove its dependents have already been cleaned up. Orphan propagation, by contrast, is an intentional way to retain dependents. Kubernetes Use Cascading Deletion documentation
Why a finalizer can keep an object around
A finalizer is a deletion gate, not a deletion command. When deletion is requested for an object with finalizers, Kubernetes records a deletion timestamp and leaves the object in a terminating state. The controller responsible for a finalizer must complete the associated work and remove that finalizer before Kubernetes can fully delete the object.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesAs Kubernetes Documentation puts it: “Finalizers are namespaced keys that tell Kubernetes to wait until specific conditions are met before it fully deletes resources that are marked for deletion.” Kubernetes Finalizers documentation
Finalizers may also delay dependent cleanup from completing. Do not remove one blindly: first identify its purpose and, where possible, allow or perform the intended cleanup. Removing it without understanding the work it guards can leave resources or external infrastructure behind. Kubernetes Finalizers documentation
How to diagnose a resource that remains
- Check the dependent’s owner references. Inspect
metadata.ownerReferencesand verify the owner’s UID and kind, as well as the namespace and scope relationship. A matching label is not enough to establish garbage-collection ownership. Kubernetes Owners and Dependents documentation - Check deletion timestamps and finalizers. Examine the custom resource and the dependent for a deletion timestamp and remaining finalizers. A finalizer indicates that a controller or cleanup step has not yet completed. Kubernetes Finalizers documentation
- Establish the propagation policy. Determine whether deletion was background, foreground or orphan. Background cleanup may still be in progress after the owner vanishes; orphan deletion intentionally retains dependents. Kubernetes Use Cascading Deletion documentation
- Check the operator’s cleanup behavior. Garbage collection covers Kubernetes objects connected by ownership references. Resources without those references, and infrastructure outside the Kubernetes API, may depend on explicit cleanup implemented by the operator. The behavior is operator-specific.
So, who is responsible?
The operator is responsible for the cleanup behavior its implementation requires. Kubernetes garbage collection is responsible for cascading deletion of Kubernetes dependents connected by valid owner references. Finalizers let a controller delay full deletion until required cleanup is done. Which mechanism applies to a particular resource depends on its ownership metadata, deletion policy, finalizers and the operator’s implementation.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




