Turns out it doesn't make much sense that applications own their namespaces. Turns out namespaces often are shared by multiple applications.

Turns out deleting all resources belonging to an app is a problem when one of the resources is shared with other apps.

To improve the solution, we've moved the namespace manifest to the cluster ArgoCD configuration directory.
ArgoCD will now track the /infrastructure/<cluster/argocd/namespaces/ folder, which is where the namespace resources will live from now on.

How will this affect me?

  • If you are to manually add a namespace manifest, you should place it in /infrastructure/<cluster>/argocd/namespaces
  • You'll see a new ArgoCD application in ArgoCD called "namespaces"
  • Okctl will no longer delete namespaces. They'll continue to exist until they are manually deleted or the cluster gets taken down.

Things to expect from the upgrade

  • namespace.yaml manifests declaring the same namespace will get merged into one file in the new namespaces folder
  • The upgrade will delete all namespace files from /infrastructure/applications/<app>/base if and only if all clusters associated with the app have been upgraded.

Relevant versions

Okctl: 0.0.99

Upgrade: 0.0.99.seperate-ns-from-app