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 namespace where the images are stored. The production-project-name
and production-service-account
can be the same as the sandbox accounts. In that case prod pipelines would run alongside dev pipelines in the same GCP project. However, this setup is not recommended. It is much safer to run a separate prod project, and for the deployment to prod to be executed by an automated workflow such as github actions. We will add examples to this effect shortly.
Now you are ready to build your first project. Cauldron has a built-in templating system, with one working example. More examples will be added at a later date.
caul create
This will give you a working example template. You should try building, deploying and running this template without modification to ensure installation succeeded and all permissions are set correctly on your account. The template will run with your user-prefix (from ~/.caulprofile).
CauldronML uses a two stage docker build to save time when making changes to your pipeline. First, build the base image.
caul build --base
Then build the pipeline image.
caul build
NOTE: Running caul build
with no base image present in the local or remote docker repo will trigger the automatic build of the base image.
Upload the images to your docker repo.
caul deploy
Run the pipeline.
caul run
You should now have a running pipeline.
CI/CD Setting up GitHub Actions Workflows
Our intention is for users to build their own github actions that trigger when code is pushed to main via a PR. CauldronML works with kaniko to build both the base image and pipeline image. We will add detailed instructions on how to do this shortly.
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.2.tar.gz
.
File metadata
- Download URL: cauldron_ml-0.6.2.tar.gz
- Upload date:
- Size: 42.3 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 | b96a8a0ab58d4b9867397571e410a846aad995e51c6f0d0f735c185512c4804c |
|
MD5 | 6a9c8a1a22ad60f85672c3e6828ce48d |
|
BLAKE2b-256 | ae9747e79592f665cf9858f049341384543b3f9e260f4828cfbe4f6428b29620 |
File details
Details for the file cauldron_ml-0.6.2-py3-none-any.whl
.
File metadata
- Download URL: cauldron_ml-0.6.2-py3-none-any.whl
- Upload date:
- Size: 35.5 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 | c193ca28247c096e6f32bd96cae26b53c136d908e14c44900a2d45771fac4e8f |
|
MD5 | 9e4bc25f511f8c6f55d1fc85f5e80457 |
|
BLAKE2b-256 | 8f776ac01709ced544e74c4a6cb69e4ba892c99c0926a6c9227a783c84fbbd90 |