Kubeflow

  • Kubeflow Charmers | bundle
  • Cloud
Channel Revision Published
latest/candidate 294 24 Jan 2022
latest/beta 430 30 Aug 2024
latest/edge 423 26 Jul 2024
1.9/stable 432 03 Dec 2024
1.9/beta 420 19 Jul 2024
1.9/edge 431 03 Dec 2024
1.8/stable 414 22 Nov 2023
1.8/beta 411 22 Nov 2023
1.8/edge 413 22 Nov 2023
1.7/stable 409 27 Oct 2023
1.7/beta 408 27 Oct 2023
1.7/edge 407 27 Oct 2023
juju deploy kubeflow --channel 1.9/stable
Show information

Platform:

This guide describes how to install Charmed Kubeflow (CKF) using Terraform.

You can do so by using any CNCF certified Kubernetes (K8s) cluster and deploying Kubeflow using the Terraform, Kubernetes and Juju Command Line Interfaces (CLIs).

Requirements

Bootstrap Juju

CKF is deployed to Kubernetes with Juju. Before deployment, Juju must be bootstrapped to the K8s cluster. See Get started with Juju for more details.

Check Supported versions for version compatibility between CKF, Juju and K8s.

Deploy CKF

Deploy CKF as follows:

  1. Clone the repository and change directory to the Kubeflow module:

This command checks out the default branch, which should be track/1.9. If that’s not the case, make sure to git checkout to that branch.

git clone https://github.com/canonical/charmed-kubeflow-solutions
cd charmed-kubeflow-solutions/modules/kubeflow
  1. Initialise Terraform. The following command downloads all the required Terraform modules and installs the Terraform Juju provider:
terraform init
  1. Define credentials:
DEX_USERNAME="your-username"
DEX_PASSWORD="your-password"
  1. Deploy CKF using Terraform as follows:
terraform apply \
	-var cos_configuration=true \
	-var dex_static_username=$DEX_USERNAME \
	-var dex_static_password=$DEX_PASSWORD \
	-var kfp_db_revision=203 \
	-var katib_db_revision=203

The command above:

See CKF Terraform solution for more details.

  1. Once the deployment is completed, you should see the Terraform solution module’s outputs:
Outputs:

grafana_agent_k8s  = {
    app_name = "grafana-agent-k8s-kubeflow"
    provides = {
        grafana_dashboards_provider = "grafana-dashboards-provider"
    }
    requires = {
        logging_consumer  = "logging-consumer"
        send_remote_write = "send-remote-write"
    }
}
kserve_controller = {
    app_name = "kserve-controller"
    provides = {
        metrics_endpoint = "metrics-endpoint"
    }
    requires = {
        ingress_gateway  = "ingress-gateway"
        local_gateway    = "local-gateway"
        logging          = "logging"
        object_storage   = "object-storage"
        secrets          = "secrets"
        service_accounts = "service-accounts"
    }
}
model = "kubeflow"
tls_certificate_requirer = {
    app_name = "istio-pilot"
    requires = "certificates"
}

See Outputs for more details.

  1. Verify all charms are in `active` status by monitoring the Juju model:
juju status --watch 1s

This may take up to some minutes, depending on the cluster’s node specifications.

Access CKF dashboard

You can access the CKF dashboard through an IP address. See Access CKF dashboard for more details.