Kubernetes controller for multi-tenancy. It propagates resources between namespaces accurately and allows tenant users to create/delete sub-namespaces.
We use FluxCD to provision our clusters, and FluxCD supports health checks for CRDs compatible with kstatus. And I believe ArgoCD also does this.
It would be nice if the SubNamespace CRD had a status subresource compatible with kstatus. You can read more details in the specification, but I would suggest the following requirements (at least as a start):
A SubNamespace with empty status has not yet been picked up by the controller
The controller should ensure .status.obeservedGeneration is equal to .metadata.generation when reconciling a SubNamespace
If the actual state differs from the desired state, the controller should add status conditions indicating that a reconcile is in progress
When the actual state equals the desired status, the controller should remove all status conditions
If the controller is unable to reconcile successfully for any reason, like in a conflict situation, the controller should add conditions indicating what's wrong.
Since the status field on SubNamespace currently is a simple string, this will be a breaking change of status.
What
We use FluxCD to provision our clusters, and FluxCD supports health checks for CRDs compatible with kstatus. And I believe ArgoCD also does this.
It would be nice if the SubNamespace CRD had a status subresource compatible with kstatus. You can read more details in the specification, but I would suggest the following requirements (at least as a start):
.status.obeservedGeneration
is equal to.metadata.generation
when reconciling a SubNamespaceSince the
status
field on SubNamespace currently is a simple string, this will be a breaking change of status.How
Describe how to address the issue.
Checklist