In-cluster setup

Requirements

  • Assumes working cluster with domain and TLS set up.

  • Requires installed Kubeflow with Ingress that uses TLS.

  • Kfops relies on Kserve instead of KFServing which comes with Kubeflow version 1.4 and earlier. For Kubeflow version lower than v1.5, follow installation (or migration guide from KFServing) steps on the Kserve website.

Notice: Kfops has been tested with Kubeflow v1.4.

Setup steps

On the high level, the setup can be divided into the following steps:

1) Installation of necessary tools and cluster components (e.g. Argo Events). Creation of required Kubernetes Secrets followed by installation of Kfops Helm chart.

Refer to the in-cluster setup for details.

2) Configuration of the in-cluster container images builder. The step is optional, required only if you plan to use the in-cluster images builder.

Refer to the images builder for details.

3) Configuration of Kubernetes namespaces where your ML models (KServe InferenceServices) will be deployed.

Refer to the deployment for details.

Additional setup notes

  • Kubeflow already has Argo Workflows installed in the kubeflow namespace. Kfops uses it and only installs an additional component - Argo Events - to listen to Pull request comment events.

  • When cluster setup is ready, single (Argo Events) endpoint is used to listen to PR comment events from multiple repositories, but all configured repositories have to use the same repository owner with an access webhook token defined for this owner.

  • Kfops can work with all Kubeflow Pipelines execution modes (V1_LEGACY, V2_COMPATIBLE, V2_ENGINE)

Tech stack summary

  • Argo to listen to chatops commands and execute Argo pipelines that build/run/deploy your pipelines and models to Kserve.

  • MinIO to store Kaniko context files and build ML models.

Both Argo and MinIO come installed with (full version) Kubeflow; no additional installation or configuration steps are required.