Skip to main content

A package for managing kubeflow pipelines in Vertex AI

Project description

CauldronML: A lightweight CLI tool and python toolbox for creating, building and deploying production-ready Vertex Kubeflow Pipelines

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.0.tar.gz (41.6 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: cauldron_ml-0.6.0.tar.gz
  • Upload date:
  • Size: 41.6 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.0.tar.gz
Algorithm Hash digest
SHA256 d5679c7d87a0393b2c30dfdee1bb2b70cb3d558f0b5d94c3a2ce6cf26eb43802
MD5 4158b4443e0d53e3bc184c3cdf4f9953
BLAKE2b-256 1709cf39eab39c473ad6504c36a632e528a6e699779a61b2ea0d18a3932c0118

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cauldron_ml-0.6.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58eda4ef1db1a40de60d25cdf8625eec645374417a64556521965454efac4fa4
MD5 68c981af2dcae62ff3a5637cb1e27f29
BLAKE2b-256 9e8facfa4424ee744f470eba2a700480d9b437f19077489223d1a2bb4295b253

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