Installation steps:

Note: In order to keep it simple, Kubernetes namespace kfops is used throughout the documentation. You can use different namespace name but remember to change your commands accordingly.

Install required tools

Install Helm using Helm install documentation.

Get code and create Kubernetes namespace

Git clone Kfops repository on your local machine and cd into cloned repository

In your Kubernetes cluster, create namespace kfops: kubectl create namespace kfops

Install Argo Events

In this step you install Argo events and event bus that manages kfops namespace. Recommended method is Argo Events namespaced installation. Notice that in namespaced installation, Argo Events are installed in argo-events namespace but manage and listen in kfops namespace.

Follow "namespaced installation" documentation and adapt eventbus-controller, eventsource-controller and sensor-controller manifests to manage kfops namespace. (Simply set --managed-namespace to kfops similarly as explained in Argo Events manages namespace documentation).

Note: for GKE and Openshift, follow additional steps from the argo events installation.

Next install EventBus in kfops namespace:

kubectl apply -f \
https://raw.githubusercontent.com/argoproj/argo-events/stable/examples/eventbus/native.yaml \
--namespace kfops

Create required secrets

Setup your SCM (Source Code Management) system API token.

Notice: Currently only Github is supported. Steps below present the setup for Github.

In order to setup Github API Token, refer to Github documentation how to create GITHUB API Token. On the "Edit personal access token" page select "repo" scope. Take note of the username who created the token, it will be used later.

Create secret to store your access token

kubectl create secret generic scm-access-webhook-token \
--namespace kfops --from-literal=token="<TOKEN>"

Replace <TOKEN> is your token created in previous step.

Setup access to MinIO in kfops namespace:

kubectl create secret generic mlpipeline-minio-artifact \
--namespace kfops \
--from-literal=accesskey="<MINIO ACCESS KEY>" \
--from-literal=secretkey="<MINIO SECRET KEY>"

If you didn't change it while deploying Kubeflow, by default MinIO access key is minio and secret key minio123.

Setup and install helm chart

Requires Helm version >=3. Check Helm documentation for details.

Note: Because project is still in alpha stage. The kfops helm chart isn't published but installed directly from the repo.

Steps:

  • Create file ./cluster_setup/values_override.yaml with content copied from ./cluster_setup/kfops/values.yaml

  • Adapt ./cluster_setup/values_override.yaml. For details refer to Helm chart values page.

  • Install argo-events subchart: helm dependency update ./cluster_setup/kfops

  • Install chart (Notice: uour CWD should be root of the cloned repository):

helm install kfops -f ./cluster_setup/values_override.yaml \
./cluster_setup/kfops \
--namespace kfops

Note: If you make changes in your values_override.yaml file, you can update them on the cluster using Helm upgrade command:

helm upgrade kfops -f ./cluster_setup/values_override.yaml \
./cluster_setup/kfops \
--namespace kfops

Notice: Once helm command is applied, the argo events installation component will automatically set repository's webhooks (e.g. in Github you can check it in repository's Settings -> Webhooks).