
ZenML integrates with a bunch of tools from the MLOps landscape
Step 1: Categorize your integration
In Extending ZenML, we already looked at the categories and abstractions that core ZenML defines. In order to create a new integration into ZenML, you would need to first find the categories that your integration belongs to. The list of categories can be found on this page. Note that one integration may belong to different categories: For example, the cloud integrations (AWS/GCP/Azure) contain container registries, artifact stores, secrets managers etc.Step 2: Create individual stack component flavors
Each category selected above would correspond to a stack component flavor. You can now start developing these individual stack component flavors by following the detailed instructions on each stack component page. Before you package your new components into an integration, you may want to first register them with thezenml <STACK_COMPONENT> flavor register
command and use/test them as a regular custom flavor. E.g., when developing an orchestrator you can use:
Step 3: Integrate into the ZenML repo
You can now start the process of including your integration into the base ZenML package. Follow this checklist to prepare everything:Clone Repo
Once your stack components work as a custom flavor, you can now clone the main zenml repository and follow the contributing guide to set up your local environment for develop.Create the integration directory
All integrations live within src/zenml/integrations/ in their own sub-folder. You should create a new folder in this directory with the name of your integration.Example integration directory structure
Define the name of your integration in constants
In zenml/integrations/constants.py, add:Create the integration class __init__.py
Insrc/zenml/integrations/<YOUR_INTEGRATION>/__init__.py
you must now create an new class, which is a subclass of the Integration
class, set some important attributes (NAME
and REQUIREMENTS
), and overwrite the flavors
class method.