Skip to main content
Version: main

Instance Deletion

Deleting an instance also deletes the resources managed by that instance. kro keeps the instance finalizer until all managed resources are gone. Resources referenced through externalRef are read-only and are never deleted by kro.

Deletion Order

kro deletes dependents before their dependencies. Resources that do not depend on each other share a deletion wave. A wave must disappear completely before the next wave starts, so a child finalizer can pause the rest of the deletion.

kro stores each child's wave in the internal.kro.run/apply-order annotation. Children without a valid annotation, such as resources created before an upgrade, are deleted in a final unordered wave.

Resource Discovery

kro discovers children from the instance's persisted ApplySet inventory. It does not need to evaluate the current graph or CEL expressions during deletion. Cleanup can therefore continue when an external reference is gone or desired state can no longer be resolved.

Troubleshooting

While deletion is in progress, the instance has a ResourcesReady condition with status Unknown and reason UnderDeletion. Its message reports inventory, discovery, or delete errors. Also check managed children for finalizers that may be blocking the active wave.

Brought to you with ♥ by SIG Cloud Provider