Welcome to kromanow94's Kubeflow Helm Chart Repository

This Helm repository contains charts for deploying Kubeflow on Kubernetes. Follow the steps below to add this repository and start deploying Kubeflow.

Adding the Helm Repository

helm repo add kromanow94-kubeflow https://kromanow94.github.io/kubeflow-manifests

Searching for Charts

helm search repo kromanow94-kubeflow

Installing a Chart

To install the kubeflow chart:

helm install kubeflow kromanow94-kubeflow/kubeflow

Quickstart Installation

For a quick and easy start, use one of the available quickstart script.

Helm

This script will create 'kubeflow' namespace configured with istio injection and install helm releases for each kubeflow dependency and kubeflow itself.

This script will also install the Helm Releases for each dependency in the correct order and will wait until the dependencies are ready.

  1. Create a Kubernetes cluster:
    kind create cluster
  2. Execute the quickstart script:
    curl -qs https://raw.githubusercontent.com/kromanow94/kubeflow-manifests/kubeflow-0.2.0/example/helm/quickstart.helm.sh | bash
  3. Forward the istio-ingressgateway port:
    nohup kubectl -n istio-ingress port-forward service/istio-ingressgateway 8080:80 &

ArgoCD Apps

This script installs ArgoCD, configures it for health assessment required for using sync-waves for ArgoCD Apps, and deploys an App of Apps manifest for Kubeflow and its dependencies.

  1. Create a Kubernetes cluster:
    kind create cluster
  2. Execute the quickstart script:
    curl -qs https://raw.githubusercontent.com/kromanow94/kubeflow-manifests/kubeflow-0.2.0/example/helm/quickstart.argocd.sh | bash
  3. Forward the istio-ingressgateway port:
    nohup kubectl -n istio-ingress port-forward service/istio-ingressgateway 8080:80 &

ArgoCD Apps of Apps

This script installs ArgoCD, configures it for health assessment required for using sync-waves for ArgoCD Apps, and deploys an App of Apps manifest for Kubeflow and its dependencies.

  1. Create a Kubernetes cluster:
    kind create cluster
  2. Execute the quickstart script:
    curl -qs https://raw.githubusercontent.com/kromanow94/kubeflow-manifests/kubeflow-0.2.0/example/helm/quickstart.app-of-apps.sh | bash
  3. Forward the istio-ingressgateway port:
    nohup kubectl -n istio-ingress port-forward service/istio-ingressgateway 8080:80 &

Helm + EKS

This script is for reference only and will not work out of the box. Also, it assumes the script is run from a locally cloned git repository.

'kubeflow' and 'oauth2-proxy' Helm Charts needs to be parameterized for AWS IAM OIDC Issuer to enable access through M2M Service Account Tokens.

For required parameterization, please see the following files and replace 'https://oidc.eks..amazonaws.com/id/1234567890' with your AWS IAM OIDC Issuer URL.

  • example/helm/values.kubeflow.eks.yaml
  • example/helm/values.oauth2-proxy.eks.yaml

  • Assuming you've cloned this repository and are using it locally, you can parameterize the AWS IAM OIDC Issuer URL with:
    $ OIDC_ISSUER_URL=https://oidc.eks..amazonaws.com/id/1234567890
    $ grep -Rl 'https://oidc.eks..amazonaws.com/id/1234567890' --exclude 'quickstart*' | xargs sed "s;https://oidc.eks..amazonaws.com/id/1234567890;\$OIDC_ISSUER_URL;g" -i

    After this step, this script should work.

    Verifying the Installation

    After completing the installation, use the following commands to verify your setup and perform initial configuration:

    1. Check if the user workgroup exists:
      curl localhost:8080/api/workgroup/exists -H "Authorization: Bearer $(kubectl -n kubeflow-user-example-com create token default-editor)"
    2. Create a new experiment in Kubeflow Pipelines:
      curl -XPOST localhost:8080/pipeline/apis/v1beta1/experiments -H "Authorization: Bearer $(kubectl -n kubeflow-user-example-com create token default-editor)" -d '{"name": "m2m-experiment", "resource_references": [{"key": {"id": "kubeflow-user-example-com", "type": "NAMESPACE"}, "relationship": "OWNER"}]}'
    3. List experiments to verify the creation:
      curl "localhost:8080/pipeline/apis/v1beta1/experiments?resource_reference_key.type=NAMESPACE&resource_reference_key.id=kubeflow-user-example-com" -H "Authorization: Bearer $(kubectl -n kubeflow-user-example-com create token default-editor)"

    Further Information

    For more detailed instructions and additional charts, visit our GitHub repository.