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 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


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

Uploaded Source

Built Distribution

cauldron_ml-0.6.2-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

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

Hashes for cauldron_ml-0.6.2.tar.gz
Algorithm Hash digest
SHA256 b96a8a0ab58d4b9867397571e410a846aad995e51c6f0d0f735c185512c4804c
MD5 6a9c8a1a22ad60f85672c3e6828ce48d
BLAKE2b-256 ae9747e79592f665cf9858f049341384543b3f9e260f4828cfbe4f6428b29620

See more details on using hashes here.

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

Hashes for cauldron_ml-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c193ca28247c096e6f32bd96cae26b53c136d908e14c44900a2d45771fac4e8f
MD5 9e4bc25f511f8c6f55d1fc85f5e80457
BLAKE2b-256 8f776ac01709ced544e74c4a6cb69e4ba892c99c0926a6c9227a783c84fbbd90

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