Implementation:Kubeflow Kubeflow Kustomize Component Apply
| Knowledge Sources | |
|---|---|
| Domains | Kubeflow, Platform Deployment, ML Infrastructure |
| Last Updated | 2026-02-13 00:00 GMT |
Overview
Concrete tool for deploying individual Kubeflow components provided by kustomize and kubectl.
Description
This implementation uses the kustomize build <component-overlay> | kubectl apply -f - pattern to deploy each Kubeflow component from the kubeflow/manifests repository. Each component has its own directory containing kustomize overlays that define the Kubernetes resources (Deployments, Services, CRDs, RBAC, ConfigMaps) required for that component. The piped command first renders the kustomize overlay into plain Kubernetes YAML, then applies it to the target cluster. Some components may require multiple apply cycles due to CRD ordering dependencies.
Usage
Use this implementation after core infrastructure (Istio, cert-manager, Dex) has been successfully deployed and verified. Run these commands from the root of the cloned kubeflow/manifests repository.
Code Reference
Source Location
- Repository: kubeflow/manifests
- File: apps/pipeline/, apps/katib/, apps/training-operator/, apps/jupyter/, apps/kserve/, apps/model-registry/, contrib/spark-operator/, apps/centraldashboard/
Signature
kustomize build <component-overlay-path> | kubectl apply -f -
Import
# Ensure kustomize and kubectl are installed (see Prerequisites Validation)
# Navigate to the manifests repository
cd manifests
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| component-overlay-path | directory path | Yes | Path to the kustomize overlay directory for the target component (e.g., apps/pipeline/upstream/env/cert-manager/platform-agnostic-multi-user) |
| Running core infrastructure | cluster state | Yes | Istio, cert-manager, and Dex must be deployed and healthy |
| Component selection | list | Yes | Which components to deploy: Pipelines, Katib, Trainer, Notebooks, KServe, Model Registry, Spark Operator, Central Dashboard |
| Namespace targeting | string | No | Some components deploy to specific namespaces; most use kubeflow namespace by default |
Outputs
| Name | Type | Description |
|---|---|---|
| Deployed component pods | pod list | Controller and worker pods in Running state for each deployed component |
| Registered CRDs | CRD list | Custom Resource Definitions registered by each component (e.g., TrainJob, Experiment, InferenceService) |
| Component services | service list | Kubernetes Services exposing component endpoints within the cluster |
| Istio VirtualServices | VirtualService list | Istio routing rules created for Dashboard integration |
Usage Examples
Basic Usage
# Navigate to manifests repository root
cd manifests
# Deploy Kubeflow Pipelines
kustomize build apps/pipeline/upstream/env/cert-manager/platform-agnostic-multi-user | kubectl apply -f -
kubectl wait --for=condition=ready pod -l app=ml-pipeline -n kubeflow --timeout=300s
# Deploy Training Operator
kustomize build apps/training-operator/upstream/overlays/kubeflow | kubectl apply -f -
kubectl wait --for=condition=ready pod -l control-plane=kubeflow-training-operator -n kubeflow --timeout=180s
# Deploy Katib
kustomize build apps/katib/upstream/installs/katib-with-kubeflow | kubectl apply -f -
kubectl wait --for=condition=ready pod -l katib.kubeflow.org/component=controller -n kubeflow --timeout=180s
# Deploy Notebooks (Jupyter Web App and Notebook Controller)
kustomize build apps/jupyter/jupyter-web-app/upstream/overlays/istio | kubectl apply -f -
kustomize build apps/jupyter/notebook-controller/upstream/overlays/kubeflow | kubectl apply -f -
# Deploy KServe
kustomize build apps/kserve/upstream/overlays/kubeflow | kubectl apply -f -
# Deploy Model Registry
kustomize build apps/model-registry/upstream/overlays/db | kubectl apply -f -
# Deploy Central Dashboard (last)
kustomize build apps/centraldashboard/upstream/overlays/kserve | kubectl apply -f -
kubectl wait --for=condition=ready pod -l app=centraldashboard -n kubeflow --timeout=180s
# Verify all CRDs are registered
kubectl get crd | grep kubeflow
kubectl get crd trainjobs.kubeflow.org
kubectl get crd experiments.kubeflow.org
kubectl get crd inferenceservices.serving.kserve.io
# Verify all pods in kubeflow namespace
kubectl get pods -n kubeflow
Related Pages
Implements Principle
Requires Environment
- Environment:Kubeflow_Kubeflow_Kubernetes_Cluster_Environment
- Environment:Kubeflow_Kubeflow_Kubectl_Kustomize_CLI_Environment
- Environment:Kubeflow_Kubeflow_Istio_Certmanager_Dex_Environment