๐ŸŒŽEnvironment Variables

How to control ZenML behavior with environmental variables.

There are a few pre-defined environmental variables that can be used to control the behavior of ZenML. See the list below with default values and options:

Logging verbosity

export ZENML_LOGGING_VERBOSITY=INFO

Choose from INFO, WARN, ERROR, CRITICAL, DEBUG.

Disable step logs

Usually, ZenML stores step logs in the artifact store, but this can sometimes cause performance bottlenecks, especially if the code utilizes progress bars.

If you want to configure whether logged output from steps is stored or not, set the ZENML_DISABLE_STEP_LOGS_STORAGE environment variable to true. Note that this will mean that logs from your steps will no longer be stored and thus won't be visible on the dashboard anymore.

export ZENML_DISABLE_STEP_LOGS_STORAGE=false

ZenML repository path

To configure where ZenML will install and look for its repository, set the environment variable ZENML_REPOSITORY_PATH.

export ZENML_REPOSITORY_PATH=/path/to/somewhere

Analytics

Please see our full page on what analytics are tracked and how you can opt out, but the quick summary is that you can set this to false if you want to opt out of analytics.

export ZENML_ANALYTICS_OPT_IN=false

Debug mode

Setting to true switches to developer mode:

export ZENML_DEBUG=true

Active stack

Setting the ZENML_ACTIVE_STACK_ID to a specific UUID will make the corresponding stack the active stack:

export ZENML_ACTIVE_STACK_ID=<UUID-OF-YOUR-STACK>

Prevent pipeline execution

When true, this prevents a pipeline from executing:

export ZENML_PREVENT_PIPELINE_EXECUTION=false

Disable rich traceback

Set to false to disable the rich traceback:

export ZENML_ENABLE_RICH_TRACEBACK=true

Disable colourful logging

If you wish to disable colourful logging, set the following environment variable:

ZENML_LOGGING_COLORS_DISABLED=true

Note that setting this on the client environment (e.g. your local machine which runs the pipeline) will automatically disable colorful logging on remote orchestrators. If you wish to disable it locally, but turn on for remote orchestrators, you can set the ZENML_LOGGING_COLORS_DISABLED environment variable in your orchestrator's environment as follows:

docker_settings = DockerSettings(environment={"ZENML_LOGGING_COLORS_DISABLED": "false"})

# Either add it to the decorator
@pipeline(settings={"docker": docker_settings})
def my_pipeline() -> None:
    my_step()

# Or configure the pipelines options
my_pipeline = my_pipeline.with_options(
    settings={"docker": docker_settings}
)

ZenML global config path

To set the path to the global config file, used by ZenML to manage and store the state for a number of settings, set the environment variable as follows:

export ZENML_CONFIG_PATH=/path/to/somewhere

Server configuration

For more information on server configuration, see the ZenML Server documentation for more, especially the section entitled "ZenML server configuration options".

Client configuration

Setting the ZENML_STORE_URL and ZENML_STORE_API_KEY environment variables automatically connects your ZenML Client to the specified server. This method is particularly useful when you are using the ZenML client in an automated CI/CD workload environment like GitHub Actions or GitLab CI or in a containerized environment like Docker or Kubernetes:

export ZENML_STORE_URL=https://...
export ZENML_STORE_API_KEY=<API_KEY>

Last updated