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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5679c7d87a0393b2c30dfdee1bb2b70cb3d558f0b5d94c3a2ce6cf26eb43802 |
|
MD5 | 4158b4443e0d53e3bc184c3cdf4f9953 |
|
BLAKE2b-256 | 1709cf39eab39c473ad6504c36a632e528a6e699779a61b2ea0d18a3932c0118 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58eda4ef1db1a40de60d25cdf8625eec645374417a64556521965454efac4fa4 |
|
MD5 | 68c981af2dcae62ff3a5637cb1e27f29 |
|
BLAKE2b-256 | 9e8facfa4424ee744f470eba2a700480d9b437f19077489223d1a2bb4295b253 |