We need a kustomize package that sets up a namespace for using Kubeflow. This package should basically do everything the profile controller is doing. e.g.
- Create default service accounts
- Create role bindings
- Platform specific overlays (e.g. setup workload identity for GCP)
A declarative approach to namespace setup should better support platform teams looking to setup and control kubeflow deployments on behalf of multiple teams. See the discussion in this thread
Creating a controller to setup namespaces made sense if we were trying to create an abstraction to hide the details of namespace to support programmatic creation e.g. through the UI.
However, as discussed in that thread we are seeing friction around that approach particularly for platform teams.
To support platform-teams I think we want to move in the direction of GitOps. If a team is using GitOps to bootstrap individual namespaces then using a controller makes less sense then just providing a kustomize package for the relevant K8s resources.
We need a kustomize package that sets up a namespace for using Kubeflow. This package should basically do everything the profile controller is doing. e.g.
A declarative approach to namespace setup should better support platform teams looking to setup and control kubeflow deployments on behalf of multiple teams. See the discussion in this thread
Creating a controller to setup namespaces made sense if we were trying to create an abstraction to hide the details of namespace to support programmatic creation e.g. through the UI.
However, as discussed in that thread we are seeing friction around that approach particularly for platform teams.
To support platform-teams I think we want to move in the direction of GitOps. If a team is using GitOps to bootstrap individual namespaces then using a controller makes less sense then just providing a kustomize package for the relevant K8s resources.