The Operator-SDK for Kubernetes Operators has a ctrl.SetControllerReference()
function, which claims it enables automatically garbage collecting objects when the managing Custom Resource is deleted.
Sometimes it doesn't seem to delete anything. What did I do wrong?
ctrl.SetControllerReference()
only changesmetadata.ownerReferences
on the local object.It doesn't automatically call
reconciler.Update()
for you. So the changes were never persisted, and theOwner
never changed.The correct way to create an object is to call
ctrl.SetControllerReference()
before you callreconciler.Create()
, e.g.