Problem
KServe platform resources are installed into the kubeflow namespace, while the
KServe project itself installs its control plane into the kserve namespace.
The Kubeflow distribution therefore diverges from the upstream layout, which has
three consequences.
The generated upstream bundle assumes the kserve namespace. Re-pointing it at
kubeflow required local patches that rewrote the
cert-manager.io/inject-ca-from annotations on every webhook configuration and
custom resource definition, and rewrote the subject alternative names on three
Certificate resources. Each of these patches is a place where a future
synchronization can silently break admission.
The kubeflow namespace mixes the KServe control plane with unrelated Kubeflow
components, so a cluster administrator cannot tell which controllers belong to
which project, and namespace-scoped policy cannot be written per project.
Finally, resources that belong to KServe are owned by the shared
common/kubeflow-namespace base rather than by the KServe component, which
makes the ownership boundary unclear for both Kustomize and Helm installations.
Current behaviour
- The KServe controllers, webhooks, certificates, namespaced role-based access
control, and inferenceservice-config are installed into kubeflow.
- The KServe Models Web Application is installed into
kubeflow.
- The KServe NetworkPolicies are owned by
common/kubeflow-namespace/base/kubeflow, not by the KServe component.
Proposed work
Out of scope
Generated KServe control-plane Helm charts and their synchronization pipeline
remain separate future work. This issue does not move user namespaces,
InferenceService resources, or model-serving workloads.
Related
Problem
KServe platform resources are installed into the
kubeflownamespace, while theKServe project itself installs its control plane into the
kservenamespace.The Kubeflow distribution therefore diverges from the upstream layout, which has
three consequences.
The generated upstream bundle assumes the
kservenamespace. Re-pointing it atkubeflowrequired local patches that rewrote thecert-manager.io/inject-ca-fromannotations on every webhook configuration andcustom resource definition, and rewrote the subject alternative names on three
Certificateresources. Each of these patches is a place where a futuresynchronization can silently break admission.
The
kubeflownamespace mixes the KServe control plane with unrelated Kubeflowcomponents, so a cluster administrator cannot tell which controllers belong to
which project, and namespace-scoped policy cannot be written per project.
Finally, resources that belong to KServe are owned by the shared
common/kubeflow-namespacebase rather than by the KServe component, whichmakes the ownership boundary unclear for both Kustomize and Helm installations.
Current behaviour
control, and
inferenceservice-configare installed intokubeflow.kubeflow.common/kubeflow-namespace/base/kubeflow, not by the KServe component.Proposed work
kservenamespace,including controllers, webhooks, certificates, namespaced role-based
access control, and
inferenceservice-config.kservewhile preservingrouting through
kubeflow/kubeflow-gateway.InferenceServiceresources and serving workloads in Profilenamespaces.
interface schemas unchanged.
Namespace/kservein the component Kustomization.kubeflow-namespacesfoundation chart ownership ofNamespace/kserveand its restricted Pod Security labels for the Helminstallation, and keep component charts free of Namespace resources.
common/kubeflow-namespaceto the owning components.authorization.
namespaces use different leader-election
Leaseresources and thereforemust not run concurrently.
Out of scope
Generated KServe control-plane Helm charts and their synchronization pipeline
remain separate future work. This issue does not move user namespaces,
InferenceServiceresources, or model-serving workloads.Related
kserve: move platform resources to kserve namespace #3515
Update kserve/kserve manifests to version v0.19.0 #3505
Proposal: Use
kubeflow-systemnamespace for the Kubeflow Control Plane #2937