cybozu-go / accurate

Kubernetes controller for multi-tenancy. It propagates resources between namespaces accurately and allows tenant users to create/delete sub-namespaces.
https://cybozu-go.github.io/accurate/
Apache License 2.0
34 stars 5 forks source link

feat: make SubNamespace controller reconcile v2alpha1 version #111

Closed erikgb closed 7 months ago

erikgb commented 7 months ago

This PR changes the controllers to reconcile SubNamespace v1alpha2 version and makes the newer version the stored version in the CRD. The modified reconciler uses SSA to update SubNamespace using apply configurations generated in https://github.com/cybozu-go/accurate/pull/106. I also plan to finalize migration to SSA for other resource types in use by controller.

Fixes https://github.com/cybozu-go/accurate/issues/85

We should probably migrate the webhooks and kubectl-plugin to the newer version now. I can fix the hooks, but I have no experience with kubectl-plugins, so maybe you can assist in the migration?

zoetrope commented 7 months ago

I will check to see if the plugin needs to be fixed.

zoetrope commented 7 months ago

@erikgb Apologies for the delayed response.

I've looked into the kubectl-plugins. It appears that the plugin does not handle the Status in SubNamespace. Additionally, since webhook will convert the resource, I see no need to change the implementation. However, if there's a need for changes, please let me know, and I'll be happy to assist with the required updates.

zoetrope commented 7 months ago

After this PR is merged, I will create a PR that will update the version of SubNamespace in the plugin.

erikgb commented 7 months ago

@erikgb Apologies for the delayed response.

@zoetrope No worries! Accurate works well for us. We just want to support kstatus to get better user feedback when using tools like FluxCD or ArgoCD.

I've looked into the kubectl-plugins. It appears that the plugin does not handle the Status in SubNamespace. Additionally, since webhook will convert the resource, I see no need to change the implementation. However, if there's a need for changes, please let me know, and I'll be happy to assist with the required updates.

Thanks! If the plugin doesn't use status now, I think this change won't be problematic. At some point, we should probably deprecate the v1 API as a hint to users about migrating to the newer version. But I am hoping to fully migrate to SSA, which I hope can solve issues like https://github.com/cybozu-go/accurate/issues/98.