Skip to main content

A CLI tool for building and deploying Kubeflow Pipelines in GCP Vertex AI

Project description

CauldronML: A CLI tool for building and deploying Kubeflow Pipelines in GCP Vertex AI

Quickstart (10 mins)

Before you start, we recommend installing a python environment manager. Cauldron uses uv in the build process for it's speed, but you don't need to use it locally. We prefer pyenv for it's user-friendliness and automatic switching between projects.

If you don't already have one installed, you can install pyenv in one line.

Installation requirements

Cauldron works with unix-based systems like MacOS and Linux. It does not currently work on Windows. For windows users, we recommend installing Windows Subsystem for Linux (WSL) but we have not tested this.

Install pyenv

curl https://pyenv.run | bash

Install a compatible python version and virtual envioronment

Python >=3.10 is supported, although python >=3.12 is recommended as this will allow you to use the latest versions of kubeflow (kfp) and google-cloud-aiplatform.

Start with a blank folder

mkdir my-project
cd my-project

Install python 3.12, create a new virtualenv and set it to auto-activate in the current folder

pyenv install 3.12
pyenv virtualenv 3.12 my-project
pyenv local my-project

Install cauldron-ml

pip install git+https://github.com/dprice80/cauldron-ml.git

Verify the installation and check the CLI tool is registered

caul --help

Help output should be displayed

Initialise Cauldron

caul init

This will create a yaml file called ~/.caulprofile. This file should be modified by the user with the following settings:

docker-repo: <repo-address>/subfolder  # no trailing slash
docker-base-image: python:3.12-slim  # By default, cauldron pipelines work with slim versions of python images (tested with 3.12).
user-prefix: jbloggs
production-project-name: foo-bar-prod
sandbox-project-name: foo-bar-sandbox
production-service-account: my-sa@foo-bar-prod@iam.gserviceaccount.com
sandbox-service-account: my-sa@foo-bar-sandbox@iam.gserviceaccount.com

Note that docker-repo should include the folder where the images are stored. The production-project-name and production-service-account can be the same as the sandbox accounts. The prefix and image tags are set within the CI pipeline workflow, not by cauldron, so the user can decide to run all production pipelines and development pipelines in the same GCP project, although we do not recommend this.

We will soon add a github action to take care of the build process, setting the arguments correctly etc. At MSM we use a matrix build strategy to build all our pipelines within a mono-repo, only building new images when we detect a change in that project.

caul create
caul build --base
caul build
caul deploy
caul run

You should now have a running pipeline.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cauldron_ml-0.6.1.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

cauldron_ml-0.6.1-py3-none-any.whl (35.2 kB view details)

Uploaded Python 3

File details

Details for the file cauldron_ml-0.6.1.tar.gz.

File metadata

  • Download URL: cauldron_ml-0.6.1.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.14 Linux/5.10.0-33-cloud-amd64

File hashes

Hashes for cauldron_ml-0.6.1.tar.gz
Algorithm Hash digest
SHA256 cfbd6adc029231a398398c421f505ddfdf55991a0279823067e7754d56a6f61c
MD5 9b0b47882ef1a0fd92b13c1be590ac32
BLAKE2b-256 f683718f4f2b0a3b7df164b8d6e1a62d172c9c9e583264a7bbc67d975a5c77bb

See more details on using hashes here.

File details

Details for the file cauldron_ml-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: cauldron_ml-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 35.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.10.14 Linux/5.10.0-33-cloud-amd64

File hashes

Hashes for cauldron_ml-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4ee6feee6e6f767190f886ce9bc06e3257e75290f100bc9df5dd9f33bf9de1e7
MD5 44b9e101e3f4b0ffb6658a61357cebaf
BLAKE2b-256 055b86e160feba720c2a44a3ab1b929a641dc4108081ae946df9fd7fbeab23ee

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page