Container Registries
zenml.container_registries
Initialization for ZenML's container registries module.
A container registry is a store for (Docker) containers. A ZenML workflow involving a container registry would automatically containerize your code to be transported across stacks running remotely. As part of the deployment to the cluster, the ZenML base image would be downloaded (from a cloud container registry) and used as the basis for the deployed 'run'.
For instance, when you are running a local container-based stack, you would therefore have a local container registry which stores the container images you create that bundle up your pipeline code. You could also use a remote container registry like the Elastic Container Registry at AWS in a more production setting.
Attributes
__all__ = ['BaseContainerRegistry', 'DefaultContainerRegistryFlavor', 'AzureContainerRegistryFlavor', 'DockerHubContainerRegistryFlavor', 'GCPContainerRegistryFlavor', 'GitHubContainerRegistryFlavor']
module-attribute
Classes
AzureContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for Azure Container Registry.
Attributes
docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A url to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
service_connector_requirements: Optional[ServiceConnectorRequirements]
property
Service connector resource requirements for service connectors.
Specifies resource requirements that are used to filter the available service connector types that are compatible with this flavor.
Returns:
Type | Description |
---|---|
Optional[ServiceConnectorRequirements]
|
Requirements for compatible service connectors, if a service |
Optional[ServiceConnectorRequirements]
|
connector is required for this flavor. |
BaseContainerRegistry(name: str, id: UUID, config: StackComponentConfig, flavor: str, type: StackComponentType, user: Optional[UUID], workspace: UUID, created: datetime, updated: datetime, labels: Optional[Dict[str, Any]] = None, connector_requirements: Optional[ServiceConnectorRequirements] = None, connector: Optional[UUID] = None, connector_resource_id: Optional[str] = None, *args: Any, **kwargs: Any)
Bases: AuthenticationMixin
Base class for all ZenML container registries.
Source code in src/zenml/stack/stack_component.py
328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 |
|
Attributes
config: BaseContainerRegistryConfig
property
Returns the BaseContainerRegistryConfig
config.
Returns:
Type | Description |
---|---|
BaseContainerRegistryConfig
|
The configuration. |
credentials: Optional[Tuple[str, str]]
property
Username and password to authenticate with this container registry.
Returns:
Type | Description |
---|---|
Optional[Tuple[str, str]]
|
Tuple with username and password if this container registry |
Optional[Tuple[str, str]]
|
requires authentication, |
docker_client: DockerClient
property
Returns a Docker client for this container registry.
Returns:
Type | Description |
---|---|
DockerClient
|
The Docker client. |
Raises:
Type | Description |
---|---|
RuntimeError
|
If the connector does not return a Docker client. |
requires_authentication: bool
property
Returns whether the container registry requires authentication.
Returns:
Type | Description |
---|---|
bool
|
|
bool
|
|
Functions
prepare_image_push(image_name: str) -> None
Preparation before an image gets pushed.
Subclasses can overwrite this to do any necessary checks or preparations before an image gets pushed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
image_name
|
str
|
Name of the docker image that will be pushed. |
required |
Source code in src/zenml/container_registries/base_container_registry.py
163 164 165 166 167 168 169 170 171 |
|
push_image(image_name: str) -> str
Pushes a docker image.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
image_name
|
str
|
Name of the docker image that will be pushed. |
required |
Returns:
Type | Description |
---|---|
str
|
The Docker repository digest of the pushed image. |
Raises:
Type | Description |
---|---|
ValueError
|
If the image name is not associated with this container registry. |
Source code in src/zenml/container_registries/base_container_registry.py
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
|
DefaultContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for default ZenML container registries.
Attributes
docs_url: Optional[str]
property
A URL to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A URL to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A URL to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
DockerHubContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for DockerHub Container Registry.
Attributes
docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A url to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
service_connector_requirements: Optional[ServiceConnectorRequirements]
property
Service connector resource requirements for service connectors.
Specifies resource requirements that are used to filter the available service connector types that are compatible with this flavor.
Returns:
Type | Description |
---|---|
Optional[ServiceConnectorRequirements]
|
Requirements for compatible service connectors, if a service |
Optional[ServiceConnectorRequirements]
|
connector is required for this flavor. |
GCPContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for GCP Container Registry.
Attributes
docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A url to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
service_connector_requirements: Optional[ServiceConnectorRequirements]
property
Service connector resource requirements for service connectors.
Specifies resource requirements that are used to filter the available service connector types that are compatible with this flavor.
Returns:
Type | Description |
---|---|
Optional[ServiceConnectorRequirements]
|
Requirements for compatible service connectors, if a service |
Optional[ServiceConnectorRequirements]
|
connector is required for this flavor. |
GitHubContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for GitHub Container Registry.
Attributes
docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A url to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
Modules
azure_container_registry
Implementation of an Azure Container Registry class.
Classes
AzureContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for Azure Container Registry.
docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A url to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
service_connector_requirements: Optional[ServiceConnectorRequirements]
property
Service connector resource requirements for service connectors.
Specifies resource requirements that are used to filter the available service connector types that are compatible with this flavor.
Returns:
Type | Description |
---|---|
Optional[ServiceConnectorRequirements]
|
Requirements for compatible service connectors, if a service |
Optional[ServiceConnectorRequirements]
|
connector is required for this flavor. |
base_container_registry
Implementation of a base container registry class.
Classes
BaseContainerRegistry(name: str, id: UUID, config: StackComponentConfig, flavor: str, type: StackComponentType, user: Optional[UUID], workspace: UUID, created: datetime, updated: datetime, labels: Optional[Dict[str, Any]] = None, connector_requirements: Optional[ServiceConnectorRequirements] = None, connector: Optional[UUID] = None, connector_resource_id: Optional[str] = None, *args: Any, **kwargs: Any)
Bases: AuthenticationMixin
Base class for all ZenML container registries.
Source code in src/zenml/stack/stack_component.py
328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 |
|
config: BaseContainerRegistryConfig
property
Returns the BaseContainerRegistryConfig
config.
Returns:
Type | Description |
---|---|
BaseContainerRegistryConfig
|
The configuration. |
credentials: Optional[Tuple[str, str]]
property
Username and password to authenticate with this container registry.
Returns:
Type | Description |
---|---|
Optional[Tuple[str, str]]
|
Tuple with username and password if this container registry |
Optional[Tuple[str, str]]
|
requires authentication, |
docker_client: DockerClient
property
Returns a Docker client for this container registry.
Returns:
Type | Description |
---|---|
DockerClient
|
The Docker client. |
Raises:
Type | Description |
---|---|
RuntimeError
|
If the connector does not return a Docker client. |
requires_authentication: bool
property
Returns whether the container registry requires authentication.
Returns:
Type | Description |
---|---|
bool
|
|
bool
|
|
prepare_image_push(image_name: str) -> None
Preparation before an image gets pushed.
Subclasses can overwrite this to do any necessary checks or preparations before an image gets pushed.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
image_name
|
str
|
Name of the docker image that will be pushed. |
required |
Source code in src/zenml/container_registries/base_container_registry.py
163 164 165 166 167 168 169 170 171 |
|
push_image(image_name: str) -> str
Pushes a docker image.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
image_name
|
str
|
Name of the docker image that will be pushed. |
required |
Returns:
Type | Description |
---|---|
str
|
The Docker repository digest of the pushed image. |
Raises:
Type | Description |
---|---|
ValueError
|
If the image name is not associated with this container registry. |
Source code in src/zenml/container_registries/base_container_registry.py
173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
|
BaseContainerRegistryConfig(warn_about_plain_text_secrets: bool = False, **kwargs: Any)
Bases: AuthenticationConfigMixin
Base config for a container registry.
Attributes:
Name | Type | Description |
---|---|---|
uri |
str
|
The URI of the container registry. |
Source code in src/zenml/stack/stack_component.py
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
|
is_local: bool
property
Checks if this stack component is running locally.
Returns:
Type | Description |
---|---|
bool
|
True if this config is for a local component, False otherwise. |
strip_trailing_slash(uri: str) -> str
classmethod
Removes trailing slashes from the URI.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
uri
|
str
|
The URI to be stripped. |
required |
Returns:
Type | Description |
---|---|
str
|
The URI without trailing slashes. |
Source code in src/zenml/container_registries/base_container_registry.py
46 47 48 49 50 51 52 53 54 55 56 57 |
|
BaseContainerRegistryFlavor
Bases: Flavor
Base flavor for container registries.
config_class: Type[BaseContainerRegistryConfig]
property
Config class for this flavor.
Returns:
Type | Description |
---|---|
Type[BaseContainerRegistryConfig]
|
The config class. |
implementation_class: Type[BaseContainerRegistry]
property
Implementation class.
Returns:
Type | Description |
---|---|
Type[BaseContainerRegistry]
|
The implementation class. |
service_connector_requirements: Optional[ServiceConnectorRequirements]
property
Service connector resource requirements for service connectors.
Specifies resource requirements that are used to filter the available service connector types that are compatible with this flavor.
Returns:
Type | Description |
---|---|
Optional[ServiceConnectorRequirements]
|
Requirements for compatible service connectors, if a service |
Optional[ServiceConnectorRequirements]
|
connector is required for this flavor. |
type: StackComponentType
property
Modules
default_container_registry
Implementation of a default container registry class.
Classes
DefaultContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for default ZenML container registries.
docs_url: Optional[str]
property
A URL to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A URL to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A URL to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
dockerhub_container_registry
Implementation of a DockerHub Container Registry class.
Classes
DockerHubContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for DockerHub Container Registry.
docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A url to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
service_connector_requirements: Optional[ServiceConnectorRequirements]
property
Service connector resource requirements for service connectors.
Specifies resource requirements that are used to filter the available service connector types that are compatible with this flavor.
Returns:
Type | Description |
---|---|
Optional[ServiceConnectorRequirements]
|
Requirements for compatible service connectors, if a service |
Optional[ServiceConnectorRequirements]
|
connector is required for this flavor. |
gcp_container_registry
Implementation of a GCP Container Registry class.
Classes
GCPContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for GCP Container Registry.
docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A url to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
service_connector_requirements: Optional[ServiceConnectorRequirements]
property
Service connector resource requirements for service connectors.
Specifies resource requirements that are used to filter the available service connector types that are compatible with this flavor.
Returns:
Type | Description |
---|---|
Optional[ServiceConnectorRequirements]
|
Requirements for compatible service connectors, if a service |
Optional[ServiceConnectorRequirements]
|
connector is required for this flavor. |
github_container_registry
Implementation of the GitHub Container Registry.
Classes
GitHubContainerRegistryConfig(warn_about_plain_text_secrets: bool = False, **kwargs: Any)
Bases: BaseContainerRegistryConfig
Configuration for the GitHub Container Registry.
Source code in src/zenml/stack/stack_component.py
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
|
GitHubContainerRegistryFlavor
Bases: BaseContainerRegistryFlavor
Class for GitHub Container Registry.
docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |
logo_url: str
property
A url to represent the flavor in the dashboard.
Returns:
Type | Description |
---|---|
str
|
The flavor logo. |
name: str
property
Name of the flavor.
Returns:
Type | Description |
---|---|
str
|
The name of the flavor. |
sdk_docs_url: Optional[str]
property
A url to point at docs explaining this flavor.
Returns:
Type | Description |
---|---|
Optional[str]
|
A flavor docs url. |