composable-operator/composable

Removing a Composable object, doesn't remove its created objects

Closed this issue · 1 comments

Removing a Composable object, doesn't remove its created objects

The relation between a Composable object and its underlying object is done with Kubernetes GC owners and dependents. The underlying object points to the Composable object
ownerReferences:

  • apiVersion: ibmcloud.ibm.com/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: Composable
    name: copy-values
    uid: f9ea9e3a-cfb0-11e9-b729-06b1ea803013

If both objects are in the same namespace, everything works fine. If they are in a different namespaces, the situation is more complicated.
According to K8s documentation, and the ownerReferences definition, "Cross-namespace owner references are disallowed by design." However, when I tested it on my ICP cluster (v 1.13), it does remove the underlying object.
Probably it is a result of issue 65200. When I run e2e tests, the underlying object is not removed ;-).

We discussed the issue and agreed that the Composable controller will enforce namespace collocation of composable object and its underlying object(s).
The fix is implemented in #21