Kubeflow Helm Chart - Release Notes (v0.3.0)
Summary
Version 0.3.0
introduces key updates aimed at improving the installation process and enabling additional configuration options for CRDs. This includes the creation of a separate Helm chart for all CRDs, improved Knative integration, added TensorBoard integration, and updated quickstart scripts. These changes resolve issues with large manifests and allow for better customization during deployment.
Changes
-
TensorBoard Integration:
- Added support for TensorBoard integration, enabling visualization and tracking of machine learning experiments within the Kubeflow environment.
-
Separate Helm Chart for All CRDs:
- Created a new Helm chart
kubeflow-crds
to handle all CRDs. This was done for two main reasons:- The CRDs for the Training Operator are particularly large, which caused installation issues due to the excessive manifest size.
- To enable parameterization of the CRDs, specifically for setting
.spec.conversion.strategy: Webhook
.
- Introduced a new toggle value
.crds.minimized
(defaults totrue
) to install a minimized version of the CRDs. This version usesx-kubernetes-preserve-unknown-fields: true
, which reduces the size of the CRDs and makes installation feasible even in environments with strict manifest size limits. The size limitation arises because Helm creates a release manifest on the cluster using a Secret, which is subject to size constraints imposed by etcd. Most Kubernetes installations set the etcd object limit to1.5MiB
, and the minimized CRDs help keep the release manifest within this limit. - For more details, see helm/helm#8281.
- Created a new Helm chart
-
Helm Repository Mirror for Knative Operator:
- Added a temporary Helm repository mirror for the Knative Operator: https://raw.githubusercontent.com/kromanow94/knative-operator/main.
- This is a temporary solution to the ongoing issue: knative/operator#1851.
-
Simplified Knative Integration:
- Knative integration has been streamlined, with the full spec now defined under:
.Values.knativeIntegration.knativeServing.operatorSpec
.Values.knativeIntegration.knativeEventing.operatorSpec
- Knative integration has been streamlined, with the full spec now defined under:
Quickstart Scripts Updates
The existing quickstart scripts have been updated to incorporate the new kubeflow-crds
Helm chart:
-
ArgoCD Quickstart:
- Checks for ArgoCD installation, installs it if needed, and applies ArgoCD Apps for dependencies and the Kubeflow Helm Chart, including the new
kubeflow-crds
chart. - example/helm/quickstart.argocd.sh
- Checks for ArgoCD installation, installs it if needed, and applies ArgoCD Apps for dependencies and the Kubeflow Helm Chart, including the new
-
ArgoCD Apps of Apps:
- Installs and configures ArgoCD for sync-waves and health assessments, deploying the App of Apps manifest for Kubeflow and dependencies, including the
kubeflow-crds
chart. - example/helm/quickstart.app-of-apps.sh
- Installs and configures ArgoCD for sync-waves and health assessments, deploying the App of Apps manifest for Kubeflow and dependencies, including the
-
Helm:
- Installs Helm releases for Kubeflow and its dependencies, including the separate
kubeflow-crds
chart, in the correct order. - example/helm/quickstart.helm.sh
- Installs Helm releases for Kubeflow and its dependencies, including the separate
-
Helm with AWS EKS:
- A reference script for AWS EKS deployments, updated to handle the
kubeflow-crds
chart, though it requires local adjustments for use. - example/helm/quickstart.helm.eks.sh
- A reference script for AWS EKS deployments, updated to handle the
Quickstart
To quickly deploy the kubeflow
Helm chart and all its dependencies on a local Kubernetes cluster using kind
, you can follow this simple two-step process. First, create the Kubernetes cluster, and then run the quickstart script which will handle installing all the required components.
$ kind create cluster
$ curl -s https://raw.githubusercontent.com/kromanow94/kubeflow-manifests/refs/tags/kubeflow-0.3.0/example/helm/quickstart.helm.sh | bash