zenml-nightly 0.75.0.dev20250318__py3-none-any.whl → 0.80.0.dev20250322__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zenml/VERSION +1 -1
- zenml/__init__.py +3 -1
- zenml/artifacts/artifact_config.py +2 -2
- zenml/artifacts/utils.py +4 -8
- zenml/cli/__init__.py +6 -6
- zenml/cli/base.py +2 -2
- zenml/cli/login.py +2 -2
- zenml/cli/project.py +1 -1
- zenml/cli/server.py +6 -4
- zenml/cli/service_accounts.py +2 -2
- zenml/cli/service_connectors.py +1 -1
- zenml/cli/stack.py +1 -1
- zenml/cli/stack_components.py +1 -1
- zenml/cli/user_management.py +1 -1
- zenml/cli/utils.py +3 -3
- zenml/client.py +9 -9
- zenml/config/compiler.py +1 -1
- zenml/config/server_config.py +1 -1
- zenml/constants.py +2 -1
- zenml/enums.py +12 -0
- zenml/integrations/__init__.py +0 -64
- zenml/integrations/airflow/__init__.py +0 -2
- zenml/integrations/argilla/__init__.py +0 -1
- zenml/integrations/aws/__init__.py +0 -3
- zenml/integrations/azure/__init__.py +0 -2
- zenml/integrations/azure/service_connectors/azure_service_connector.py +1 -1
- zenml/integrations/bentoml/__init__.py +0 -2
- zenml/integrations/bentoml/services/bentoml_container_deployment.py +2 -2
- zenml/integrations/bentoml/services/bentoml_local_deployment.py +1 -1
- zenml/integrations/bentoml/steps/bentoml_deployer.py +1 -1
- zenml/integrations/bitbucket/__init__.py +0 -2
- zenml/integrations/comet/__init__.py +0 -2
- zenml/integrations/databricks/__init__.py +0 -2
- zenml/integrations/databricks/services/databricks_deployment.py +3 -1
- zenml/integrations/deepchecks/__init__.py +0 -2
- zenml/integrations/discord/__init__.py +0 -2
- zenml/integrations/evidently/__init__.py +0 -2
- zenml/integrations/facets/__init__.py +0 -2
- zenml/integrations/feast/__init__.py +0 -2
- zenml/integrations/gcp/__init__.py +0 -3
- zenml/integrations/github/__init__.py +0 -2
- zenml/integrations/github/code_repositories/github_code_repository.py +7 -2
- zenml/integrations/gitlab/__init__.py +0 -1
- zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +5 -2
- zenml/integrations/great_expectations/__init__.py +0 -3
- zenml/integrations/huggingface/__init__.py +0 -1
- zenml/integrations/huggingface/services/huggingface_deployment.py +3 -1
- zenml/integrations/hyperai/__init__.py +0 -2
- zenml/integrations/kaniko/__init__.py +0 -2
- zenml/integrations/kubeflow/__init__.py +0 -1
- zenml/integrations/kubernetes/__init__.py +0 -2
- zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +4 -0
- zenml/integrations/kubernetes/orchestrators/kube_utils.py +89 -1
- zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator.py +124 -83
- zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +44 -10
- zenml/integrations/kubernetes/orchestrators/manifest_utils.py +33 -1
- zenml/integrations/label_studio/__init__.py +0 -2
- zenml/integrations/langchain/__init__.py +0 -2
- zenml/integrations/lightgbm/__init__.py +0 -1
- zenml/integrations/lightning/__init__.py +0 -2
- zenml/integrations/mlflow/__init__.py +1 -3
- zenml/integrations/mlflow/services/mlflow_deployment.py +1 -1
- zenml/integrations/modal/__init__.py +0 -1
- zenml/integrations/neptune/__init__.py +0 -2
- zenml/integrations/neural_prophet/__init__.py +0 -2
- zenml/integrations/numpy/__init__.py +0 -2
- zenml/integrations/openai/__init__.py +0 -1
- zenml/integrations/pandas/__init__.py +0 -2
- zenml/integrations/pigeon/__init__.py +0 -1
- zenml/integrations/pillow/__init__.py +0 -3
- zenml/integrations/polars/__init__.py +0 -2
- zenml/integrations/prodigy/__init__.py +0 -1
- zenml/integrations/pycaret/__init__.py +0 -2
- zenml/integrations/pytorch/__init__.py +0 -1
- zenml/integrations/pytorch_lightning/__init__.py +0 -2
- zenml/integrations/registry.py +34 -0
- zenml/integrations/s3/__init__.py +0 -2
- zenml/integrations/scipy/__init__.py +0 -2
- zenml/integrations/seldon/__init__.py +0 -2
- zenml/integrations/seldon/services/seldon_deployment.py +3 -2
- zenml/integrations/sklearn/__init__.py +1 -1
- zenml/integrations/skypilot/orchestrators/skypilot_base_vm_orchestrator.py +43 -18
- zenml/integrations/skypilot_aws/__init__.py +1 -3
- zenml/integrations/skypilot_azure/__init__.py +1 -2
- zenml/integrations/skypilot_gcp/__init__.py +1 -3
- zenml/integrations/skypilot_kubernetes/__init__.py +1 -3
- zenml/integrations/skypilot_lambda/__init__.py +1 -3
- zenml/integrations/slack/__init__.py +0 -1
- zenml/integrations/spark/__init__.py +0 -1
- zenml/integrations/tekton/__init__.py +0 -1
- zenml/integrations/tensorboard/__init__.py +0 -2
- zenml/integrations/tensorboard/services/tensorboard_service.py +1 -1
- zenml/integrations/tensorflow/__init__.py +0 -2
- zenml/integrations/vllm/__init__.py +0 -1
- zenml/integrations/vllm/services/vllm_deployment.py +1 -1
- zenml/integrations/wandb/__init__.py +0 -1
- zenml/integrations/whylogs/__init__.py +0 -1
- zenml/integrations/xgboost/__init__.py +0 -2
- zenml/login/credentials.py +1 -1
- zenml/materializers/__init__.py +1 -0
- zenml/model_deployers/base_model_deployer.py +1 -1
- zenml/models/__init__.py +4 -0
- zenml/models/v2/base/filter.py +162 -54
- zenml/models/v2/base/scoped.py +132 -0
- zenml/models/v2/core/artifact_version.py +12 -33
- zenml/models/v2/core/model_version.py +12 -50
- zenml/models/v2/core/pipeline_run.py +12 -32
- zenml/models/v2/core/service.py +2 -2
- zenml/models/v2/core/step_run.py +15 -32
- zenml/{services/service_type.py → models/v2/misc/service.py} +1 -1
- zenml/orchestrators/step_run_utils.py +1 -1
- zenml/orchestrators/utils.py +1 -1
- zenml/services/__init__.py +3 -5
- zenml/services/container/container_service.py +2 -1
- zenml/services/local/local_service.py +2 -1
- zenml/services/service.py +3 -2
- zenml/services/service_endpoint.py +2 -1
- zenml/services/service_monitor.py +1 -1
- zenml/services/service_status.py +1 -12
- zenml/stack_deployments/aws_stack_deployment.py +10 -5
- zenml/stack_deployments/azure_stack_deployment.py +47 -41
- zenml/stack_deployments/constants.py +30 -0
- zenml/stack_deployments/gcp_stack_deployment.py +6 -0
- zenml/steps/entrypoint_function_utils.py +1 -1
- zenml/utils/dashboard_utils.py +73 -8
- zenml/utils/server_utils.py +52 -0
- zenml/zen_server/dashboard/assets/{404-BbAvjc7Z.js → 404-2I8egBQu.js} +1 -1
- zenml/zen_server/dashboard/assets/@reactflow-BHoFKFSZ.js +17 -0
- zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-XL2NfFgP.js → AlertDialogDropdownItem-D7KZcPFw.js} +1 -1
- zenml/zen_server/dashboard/assets/CodeSnippet-DUkCnBpQ.js +9 -0
- zenml/zen_server/dashboard/assets/{CollapsibleCard-Djtd_ocf.js → CollapsibleCard-B5-5Plnd.js} +1 -1
- zenml/zen_server/dashboard/assets/{Commands-V-hH_IKQ.js → Commands-CbOMmarC.js} +1 -1
- zenml/zen_server/dashboard/assets/{ComponentBadge-CVN2FsiW.js → ComponentBadge-FrujKBC6.js} +1 -1
- zenml/zen_server/dashboard/assets/ComponentIcon-Dx5fBrDX.js +1 -0
- zenml/zen_server/dashboard/assets/{CsvVizualization-CWaQcWIN.js → CsvVizualization-B8E3p9we.js} +1 -1
- zenml/zen_server/dashboard/assets/{DeleteAlertDialog-CTLRrcFM.js → DeleteAlertDialog-BgTZbbAt.js} +1 -1
- zenml/zen_server/dashboard/assets/{DialogItem-ST291Hsl.js → DialogItem-CNWLiJcc.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-CIBjAdSc.js → Error-BkUP4Luv.js} +1 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-CD8Vj7sp.js +1 -0
- zenml/zen_server/dashboard/assets/{Helpbox-cwQNH06F.js → Helpbox-DIx6mDOH.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-DYKoAVhW.js → Infobox-BHEdNmME.js} +1 -1
- zenml/zen_server/dashboard/assets/{InlineAvatar-Bk4QLPTU.js → InlineAvatar-Bin9UPKJ.js} +1 -1
- zenml/zen_server/dashboard/assets/{NestedCollapsible-CE4OF670.js → NestedCollapsible-Da-k0Mff.js} +1 -1
- zenml/zen_server/dashboard/assets/{Partials-cL1-u_sT.js → Partials-TNaYjHsV.js} +1 -1
- zenml/zen_server/dashboard/assets/ProBadge-BfPp-B97.js +1 -0
- zenml/zen_server/dashboard/assets/{ProCta-DtUutIul.js → ProCta-7_FtpX3I.js} +1 -1
- zenml/zen_server/dashboard/assets/ProviderIcon-CxeziA5a.js +1 -0
- zenml/zen_server/dashboard/assets/{ProviderRadio-C4bltH6-.js → ProviderRadio-DPmZHff_.js} +1 -1
- zenml/zen_server/dashboard/assets/RunSelector-BVKB4Z8F.js +1 -0
- zenml/zen_server/dashboard/assets/{RunsBody-D2VoO-cR.js → RunsBody-Cj4sIqQB.js} +1 -1
- zenml/zen_server/dashboard/assets/{SearchField-DfNxVtjV.js → SearchField-DjAOZic5.js} +1 -1
- zenml/zen_server/dashboard/assets/SecretTooltip-mMAAP4dM.js +1 -0
- zenml/zen_server/dashboard/assets/{SetPassword-CWl2mwz8.js → SetPassword-B0o5kSJU.js} +1 -1
- zenml/zen_server/dashboard/assets/{StackList-C8KNd00o.js → StackList-5UB8LoEq.js} +1 -1
- zenml/zen_server/dashboard/assets/{Tabs-BEWDPvPV.js → Tabs-AuhCyzle.js} +1 -1
- zenml/zen_server/dashboard/assets/Tick-CHW0jc8Y.js +1 -0
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DCuCj7NK.js → UpdatePasswordSchemas-Bauivjf-.js} +1 -1
- zenml/zen_server/dashboard/assets/{UsageReason-CwUrEwEz.js → UsageReason-Dr5ca5M4.js} +1 -1
- zenml/zen_server/dashboard/assets/{Wizard-CynnoHg4.js → Wizard-XEp9rGmf.js} +1 -1
- zenml/zen_server/dashboard/assets/{WizardFooter-B2bYs89C.js → WizardFooter-BtL1Gi1k.js} +1 -1
- zenml/zen_server/dashboard/assets/{all-pipeline-runs-query-B509kMlL.js → all-pipeline-runs-query-COvsm3bC.js} +1 -1
- zenml/zen_server/dashboard/assets/configuration-form-BJUCr0wl.js +1 -0
- zenml/zen_server/dashboard/assets/{create-stack-BjWXz5nx.js → create-stack-B2c98UlP.js} +1 -1
- zenml/zen_server/dashboard/assets/{delete-run-CzPWbsBy.js → delete-run-Do3XyF4W.js} +1 -1
- zenml/zen_server/dashboard/assets/flavor-select-D8CranSY.js +1 -0
- zenml/zen_server/dashboard/assets/{form-schemas-B6u3P_a4.js → form-schemas-Bm-dTV3L.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-BCKg1Y5r.css → index-6mLFgFwe.css} +1 -1
- zenml/zen_server/dashboard/assets/{index-Bjeu4_0O.js → index-CzhJC6pc.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-CaRx22lH.js → index-D-n6tspq.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-DWoLoYDY.js → index-DPjvk73v.js} +8 -8
- zenml/zen_server/dashboard/assets/{index-Dba8yULY.js → index-eIIP-0dQ.js} +1 -1
- zenml/zen_server/dashboard/assets/login-mutation-D6uiKsKk.js +1 -0
- zenml/zen_server/dashboard/assets/{not-found-DGQ8rm7B.js → not-found-DFrksY0r.js} +1 -1
- zenml/zen_server/dashboard/assets/page-B-uHUFcm.js +1 -0
- zenml/zen_server/dashboard/assets/page-B0Llmzo_.js +1 -0
- zenml/zen_server/dashboard/assets/page-B150LbzG.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CfeQbejg.js → page-B1Un9vAU.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CxrLV30P.js → page-B80TE04v.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BIseZTJt.js +2 -0
- zenml/zen_server/dashboard/assets/{page-C5xq6rqE.js → page-BJ15SGwt.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-B6msmF1h.js → page-BJrZsPSh.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BMZaECzB.js +1 -0
- zenml/zen_server/dashboard/assets/{page-D1upvSPi.js → page-BTvnIFGR.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DLw1Apss.js → page-BXh1mF-D.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BZUxCBoD.js +1 -0
- zenml/zen_server/dashboard/assets/page-BeFiRx31.js +1 -0
- zenml/zen_server/dashboard/assets/{page-C89bN6VV.js → page-BnUwQBeg.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-k-UXKVnV.js → page-BqQ6y8Hb.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BwAFqFCf.js +1 -0
- zenml/zen_server/dashboard/assets/page-BzlVs5tC.js +1 -0
- zenml/zen_server/dashboard/assets/{page-C3BbJ-5n.js → page-C11vPVkH.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-AnG2ilmi.js → page-CAKBSE9f.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CPe9nQSo.js +1 -0
- zenml/zen_server/dashboard/assets/page-D0Zt2-7X.js +1 -0
- zenml/zen_server/dashboard/assets/page-D2F0Rvak.js +1 -0
- zenml/zen_server/dashboard/assets/{page-2EzZ5aWS.js → page-D5GZlpKq.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CxoG4zme.js → page-DBNBYSwq.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DDvwWgKP.js +6 -0
- zenml/zen_server/dashboard/assets/page-DF9q7ySu.js +1 -0
- zenml/zen_server/dashboard/assets/page-DOzFoJuo.js +1 -0
- zenml/zen_server/dashboard/assets/page-DaHH2ZEF.js +1 -0
- zenml/zen_server/dashboard/assets/{page-B9ELcPAy.js → page-Dd-0y3SU.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-Dy6HYsJr.js → page-DhNnHHmX.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-CZ_3LB0U.js → page-DkJfgcDi.js} +1 -1
- zenml/zen_server/dashboard/assets/page-EhqRFAZc.js +1 -0
- zenml/zen_server/dashboard/assets/{page-nHAZvd76.js → page-NIWnUdVg.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DazwBcbq.js → page-kYlFrH53.js} +1 -1
- zenml/zen_server/dashboard/assets/page-ygCPGHAV.js +1 -0
- zenml/zen_server/dashboard/assets/{persist-BglceT_t.js → persist-C5RlwSq6.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-CMkLV2Cs.js → persist-DHGuHP2H.js} +1 -1
- zenml/zen_server/dashboard/assets/{service-DNKY_ZYd.js → service-Do7yitqe.js} +1 -1
- zenml/zen_server/dashboard/assets/{sharedSchema-BOmQa793.js → sharedSchema-i_9Y4WcA.js} +1 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-omCumL7U.js +1 -0
- zenml/zen_server/dashboard/assets/update-server-settings-mutation-B4eE33z-.js +1 -0
- zenml/zen_server/dashboard/index.html +4 -4
- zenml/zen_server/deploy/daemon/daemon_zen_server.py +1 -1
- zenml/zen_server/deploy/deployment.py +1 -2
- zenml/zen_server/deploy/docker/docker_zen_server.py +1 -1
- zenml/zen_server/rbac/endpoint_utils.py +1 -2
- zenml/zen_server/routers/projects_endpoints.py +14 -3
- zenml/zen_server/routers/stack_deployment_endpoints.py +12 -4
- zenml/zen_server/utils.py +2 -86
- zenml/zen_stores/migrations/versions/0.80.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/288f4fb6e112_make_tags_user_scoped.py +2 -2
- zenml/zen_stores/migrations/versions/41b28cae31ce_make_artifacts_workspace_scoped.py +2 -2
- zenml/zen_stores/migrations/versions/f1d723fd723b_add_secret_private_attr.py +2 -2
- zenml/zen_stores/schemas/artifact_visualization_schemas.py +1 -1
- zenml/zen_stores/schemas/model_schemas.py +1 -1
- zenml/zen_stores/schemas/service_schemas.py +1 -1
- zenml/zen_stores/schemas/step_run_schemas.py +1 -1
- zenml/zen_stores/schemas/trigger_schemas.py +1 -1
- zenml/zen_stores/sql_zen_store.py +5 -0
- {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/METADATA +3 -3
- {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/RECORD +237 -235
- zenml/zen_server/dashboard/assets/@reactflow-DMaYqp8l.js +0 -17
- zenml/zen_server/dashboard/assets/CodeSnippet-D8ptwPjg.js +0 -9
- zenml/zen_server/dashboard/assets/ComponentIcon-gpMJ2Y2e.js +0 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-DHiK3Am-.js +0 -1
- zenml/zen_server/dashboard/assets/ProBadge-ypma7R8i.js +0 -1
- zenml/zen_server/dashboard/assets/ProviderIcon-DKN3Gdcg.js +0 -1
- zenml/zen_server/dashboard/assets/RunSelector-CYmRHGdm.js +0 -1
- zenml/zen_server/dashboard/assets/SecretTooltip-CHPWF0bu.js +0 -1
- zenml/zen_server/dashboard/assets/Tick-DgU4udUn.js +0 -1
- zenml/zen_server/dashboard/assets/configuration-form-BEwWCxqY.js +0 -1
- zenml/zen_server/dashboard/assets/flavor-select-C1pyy8gq.js +0 -1
- zenml/zen_server/dashboard/assets/login-mutation-7WFxPe10.js +0 -1
- zenml/zen_server/dashboard/assets/page-BKN4SYXY.js +0 -1
- zenml/zen_server/dashboard/assets/page-BNrOW_3T.js +0 -2
- zenml/zen_server/dashboard/assets/page-BX6ZrAVH.js +0 -1
- zenml/zen_server/dashboard/assets/page-BnOdORy3.js +0 -1
- zenml/zen_server/dashboard/assets/page-BtkfcEI7.js +0 -1
- zenml/zen_server/dashboard/assets/page-Bz_grLBY.js +0 -1
- zenml/zen_server/dashboard/assets/page-CCEwuGU4.js +0 -1
- zenml/zen_server/dashboard/assets/page-COAGXWJu.js +0 -1
- zenml/zen_server/dashboard/assets/page-CaibMa0l.js +0 -1
- zenml/zen_server/dashboard/assets/page-CskoTYOC.js +0 -1
- zenml/zen_server/dashboard/assets/page-Cyoe7AtN.js +0 -1
- zenml/zen_server/dashboard/assets/page-D03wm5f1.js +0 -1
- zenml/zen_server/dashboard/assets/page-D8UimvyP.js +0 -1
- zenml/zen_server/dashboard/assets/page-DEnmFyzi.js +0 -1
- zenml/zen_server/dashboard/assets/page-TiOZeeo0.js +0 -1
- zenml/zen_server/dashboard/assets/page-cveasWUr.js +0 -6
- zenml/zen_server/dashboard/assets/page-iTvxfhgZ.js +0 -1
- zenml/zen_server/dashboard/assets/page-niRD8Hqz.js +0 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-CI_YMUx6.js +0 -1
- zenml/zen_server/dashboard/assets/transform-DKsRLKTv.js +0 -1
- zenml/zen_server/dashboard/assets/update-server-settings-mutation-CNYCc-FU.js +0 -1
- {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.75.0.dev20250318.dist-info → zenml_nightly-0.80.0.dev20250322.dist-info}/entry_points.txt +0 -0
@@ -42,6 +42,7 @@ from zenml.models.v2.base.scoped import (
|
|
42
42
|
ProjectScopedResponseBody,
|
43
43
|
ProjectScopedResponseMetadata,
|
44
44
|
ProjectScopedResponseResources,
|
45
|
+
RunMetadataFilterMixin,
|
45
46
|
TaggableFilter,
|
46
47
|
)
|
47
48
|
from zenml.models.v2.core.model_version import ModelVersionResponse
|
@@ -582,12 +583,15 @@ class PipelineRunResponse(
|
|
582
583
|
# ------------------ Filter Model ------------------
|
583
584
|
|
584
585
|
|
585
|
-
class PipelineRunFilter(
|
586
|
+
class PipelineRunFilter(
|
587
|
+
ProjectScopedFilter, TaggableFilter, RunMetadataFilterMixin
|
588
|
+
):
|
586
589
|
"""Model to enable advanced filtering of all pipeline runs."""
|
587
590
|
|
588
591
|
CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
|
589
592
|
*ProjectScopedFilter.CUSTOM_SORTING_OPTIONS,
|
590
593
|
*TaggableFilter.CUSTOM_SORTING_OPTIONS,
|
594
|
+
*RunMetadataFilterMixin.CUSTOM_SORTING_OPTIONS,
|
591
595
|
"tag",
|
592
596
|
"stack",
|
593
597
|
"pipeline",
|
@@ -597,6 +601,7 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
|
|
597
601
|
FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
|
598
602
|
*ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
|
599
603
|
*TaggableFilter.FILTER_EXCLUDE_FIELDS,
|
604
|
+
*RunMetadataFilterMixin.FILTER_EXCLUDE_FIELDS,
|
600
605
|
"unlisted",
|
601
606
|
"code_repository_id",
|
602
607
|
"build_id",
|
@@ -610,11 +615,16 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
|
|
610
615
|
"stack_component",
|
611
616
|
"pipeline_name",
|
612
617
|
"templatable",
|
613
|
-
"run_metadata",
|
614
618
|
]
|
615
619
|
CLI_EXCLUDE_FIELDS = [
|
616
620
|
*ProjectScopedFilter.CLI_EXCLUDE_FIELDS,
|
617
621
|
*TaggableFilter.CLI_EXCLUDE_FIELDS,
|
622
|
+
*RunMetadataFilterMixin.CLI_EXCLUDE_FIELDS,
|
623
|
+
]
|
624
|
+
API_MULTI_INPUT_PARAMS: ClassVar[List[str]] = [
|
625
|
+
*ProjectScopedFilter.API_MULTI_INPUT_PARAMS,
|
626
|
+
*TaggableFilter.API_MULTI_INPUT_PARAMS,
|
627
|
+
*RunMetadataFilterMixin.API_MULTI_INPUT_PARAMS,
|
618
628
|
]
|
619
629
|
|
620
630
|
name: Optional[str] = Field(
|
@@ -680,10 +690,6 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
|
|
680
690
|
union_mode="left_to_right",
|
681
691
|
)
|
682
692
|
unlisted: Optional[bool] = None
|
683
|
-
run_metadata: Optional[Dict[str, Any]] = Field(
|
684
|
-
default=None,
|
685
|
-
description="The run_metadata to filter the pipeline runs by.",
|
686
|
-
)
|
687
693
|
# TODO: Remove once frontend is ready for it. This is replaced by the more
|
688
694
|
# generic `pipeline` filter below.
|
689
695
|
pipeline_name: Optional[str] = Field(
|
@@ -740,8 +746,6 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
|
|
740
746
|
PipelineDeploymentSchema,
|
741
747
|
PipelineRunSchema,
|
742
748
|
PipelineSchema,
|
743
|
-
RunMetadataResourceSchema,
|
744
|
-
RunMetadataSchema,
|
745
749
|
ScheduleSchema,
|
746
750
|
StackComponentSchema,
|
747
751
|
StackCompositionSchema,
|
@@ -899,30 +903,6 @@ class PipelineRunFilter(ProjectScopedFilter, TaggableFilter):
|
|
899
903
|
)
|
900
904
|
|
901
905
|
custom_filters.append(templatable_filter)
|
902
|
-
if self.run_metadata is not None:
|
903
|
-
from zenml.enums import MetadataResourceTypes
|
904
|
-
|
905
|
-
for key, value in self.run_metadata.items():
|
906
|
-
additional_filter = and_(
|
907
|
-
RunMetadataResourceSchema.resource_id
|
908
|
-
== PipelineRunSchema.id,
|
909
|
-
RunMetadataResourceSchema.resource_type
|
910
|
-
== MetadataResourceTypes.PIPELINE_RUN.value,
|
911
|
-
RunMetadataResourceSchema.run_metadata_id
|
912
|
-
== RunMetadataSchema.id,
|
913
|
-
self.generate_custom_query_conditions_for_column(
|
914
|
-
value=key,
|
915
|
-
table=RunMetadataSchema,
|
916
|
-
column="key",
|
917
|
-
),
|
918
|
-
self.generate_custom_query_conditions_for_column(
|
919
|
-
value=value,
|
920
|
-
table=RunMetadataSchema,
|
921
|
-
column="value",
|
922
|
-
json_encode_value=True,
|
923
|
-
),
|
924
|
-
)
|
925
|
-
custom_filters.append(additional_filter)
|
926
906
|
|
927
907
|
return custom_filters
|
928
908
|
|
zenml/models/v2/core/service.py
CHANGED
@@ -31,6 +31,7 @@ from pydantic import ConfigDict, Field
|
|
31
31
|
from sqlalchemy.sql.elements import ColumnElement
|
32
32
|
|
33
33
|
from zenml.constants import STR_FIELD_MAX_LENGTH
|
34
|
+
from zenml.enums import ServiceState
|
34
35
|
from zenml.models.v2.base.base import BaseUpdate
|
35
36
|
from zenml.models.v2.base.scoped import (
|
36
37
|
ProjectScopedFilter,
|
@@ -40,8 +41,7 @@ from zenml.models.v2.base.scoped import (
|
|
40
41
|
ProjectScopedResponseMetadata,
|
41
42
|
ProjectScopedResponseResources,
|
42
43
|
)
|
43
|
-
from zenml.
|
44
|
-
from zenml.services.service_type import ServiceType
|
44
|
+
from zenml.models.v2.misc.service import ServiceType
|
45
45
|
|
46
46
|
if TYPE_CHECKING:
|
47
47
|
from zenml.models.v2.core.model_version import ModelVersionResponse
|
zenml/models/v2/core/step_run.py
CHANGED
@@ -16,7 +16,6 @@
|
|
16
16
|
from datetime import datetime
|
17
17
|
from typing import (
|
18
18
|
TYPE_CHECKING,
|
19
|
-
Any,
|
20
19
|
ClassVar,
|
21
20
|
Dict,
|
22
21
|
List,
|
@@ -41,6 +40,7 @@ from zenml.models.v2.base.scoped import (
|
|
41
40
|
ProjectScopedResponseBody,
|
42
41
|
ProjectScopedResponseMetadata,
|
43
42
|
ProjectScopedResponseResources,
|
43
|
+
RunMetadataFilterMixin,
|
44
44
|
)
|
45
45
|
from zenml.models.v2.core.artifact_version import ArtifactVersionResponse
|
46
46
|
from zenml.models.v2.core.model_version import ModelVersionResponse
|
@@ -504,13 +504,25 @@ class StepRunResponse(
|
|
504
504
|
# ------------------ Filter Model ------------------
|
505
505
|
|
506
506
|
|
507
|
-
class StepRunFilter(ProjectScopedFilter):
|
507
|
+
class StepRunFilter(ProjectScopedFilter, RunMetadataFilterMixin):
|
508
508
|
"""Model to enable advanced filtering of step runs."""
|
509
509
|
|
510
510
|
FILTER_EXCLUDE_FIELDS: ClassVar[List[str]] = [
|
511
511
|
*ProjectScopedFilter.FILTER_EXCLUDE_FIELDS,
|
512
|
+
*RunMetadataFilterMixin.FILTER_EXCLUDE_FIELDS,
|
512
513
|
"model",
|
513
|
-
|
514
|
+
]
|
515
|
+
CLI_EXCLUDE_FIELDS: ClassVar[List[str]] = [
|
516
|
+
*ProjectScopedFilter.CLI_EXCLUDE_FIELDS,
|
517
|
+
*RunMetadataFilterMixin.CLI_EXCLUDE_FIELDS,
|
518
|
+
]
|
519
|
+
CUSTOM_SORTING_OPTIONS: ClassVar[List[str]] = [
|
520
|
+
*ProjectScopedFilter.CUSTOM_SORTING_OPTIONS,
|
521
|
+
*RunMetadataFilterMixin.CUSTOM_SORTING_OPTIONS,
|
522
|
+
]
|
523
|
+
API_MULTI_INPUT_PARAMS: ClassVar[List[str]] = [
|
524
|
+
*ProjectScopedFilter.API_MULTI_INPUT_PARAMS,
|
525
|
+
*RunMetadataFilterMixin.API_MULTI_INPUT_PARAMS,
|
514
526
|
]
|
515
527
|
|
516
528
|
name: Optional[str] = Field(
|
@@ -563,10 +575,6 @@ class StepRunFilter(ProjectScopedFilter):
|
|
563
575
|
default=None,
|
564
576
|
description="Name/ID of the model associated with the step run.",
|
565
577
|
)
|
566
|
-
run_metadata: Optional[Dict[str, Any]] = Field(
|
567
|
-
default=None,
|
568
|
-
description="The run_metadata to filter the step runs by.",
|
569
|
-
)
|
570
578
|
model_config = ConfigDict(protected_namespaces=())
|
571
579
|
|
572
580
|
def get_custom_filters(
|
@@ -587,8 +595,6 @@ class StepRunFilter(ProjectScopedFilter):
|
|
587
595
|
from zenml.zen_stores.schemas import (
|
588
596
|
ModelSchema,
|
589
597
|
ModelVersionSchema,
|
590
|
-
RunMetadataResourceSchema,
|
591
|
-
RunMetadataSchema,
|
592
598
|
StepRunSchema,
|
593
599
|
)
|
594
600
|
|
@@ -601,28 +607,5 @@ class StepRunFilter(ProjectScopedFilter):
|
|
601
607
|
),
|
602
608
|
)
|
603
609
|
custom_filters.append(model_filter)
|
604
|
-
if self.run_metadata is not None:
|
605
|
-
from zenml.enums import MetadataResourceTypes
|
606
|
-
|
607
|
-
for key, value in self.run_metadata.items():
|
608
|
-
additional_filter = and_(
|
609
|
-
RunMetadataResourceSchema.resource_id == StepRunSchema.id,
|
610
|
-
RunMetadataResourceSchema.resource_type
|
611
|
-
== MetadataResourceTypes.STEP_RUN.value,
|
612
|
-
RunMetadataResourceSchema.run_metadata_id
|
613
|
-
== RunMetadataSchema.id,
|
614
|
-
self.generate_custom_query_conditions_for_column(
|
615
|
-
value=key,
|
616
|
-
table=RunMetadataSchema,
|
617
|
-
column="key",
|
618
|
-
),
|
619
|
-
self.generate_custom_query_conditions_for_column(
|
620
|
-
value=value,
|
621
|
-
table=RunMetadataSchema,
|
622
|
-
column="value",
|
623
|
-
json_encode_value=True,
|
624
|
-
),
|
625
|
-
)
|
626
|
-
custom_filters.append(additional_filter)
|
627
610
|
|
628
611
|
return custom_filters
|
@@ -11,7 +11,7 @@
|
|
11
11
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
12
12
|
# or implied. See the License for the specific language governing
|
13
13
|
# permissions and limitations under the License.
|
14
|
-
"""
|
14
|
+
"""Misc models for services."""
|
15
15
|
|
16
16
|
from pydantic import BaseModel, ConfigDict
|
17
17
|
|
@@ -352,7 +352,7 @@ def log_model_version_dashboard_url(
|
|
352
352
|
"""
|
353
353
|
from zenml.utils.dashboard_utils import get_model_version_url
|
354
354
|
|
355
|
-
if model_version_url := get_model_version_url(model_version
|
355
|
+
if model_version_url := get_model_version_url(model_version):
|
356
356
|
logger.info(
|
357
357
|
"Dashboard URL for Model Version `%s (%s)`:\n%s",
|
358
358
|
model_version.model.name,
|
zenml/orchestrators/utils.py
CHANGED
@@ -184,7 +184,7 @@ def get_config_environment_vars(
|
|
184
184
|
"service account API key to authenticate to the ZenML "
|
185
185
|
"server instead of your regular user account. For more "
|
186
186
|
"information, see "
|
187
|
-
"https://docs.zenml.io/how-to/connecting-to-zenml/connect-with-a-service-account"
|
187
|
+
"https://docs.zenml.io/how-to/manage-zenml-server/connecting-to-zenml/connect-with-a-service-account"
|
188
188
|
)
|
189
189
|
|
190
190
|
# The schedule, pipeline run or step run credentials are scoped to
|
zenml/services/__init__.py
CHANGED
@@ -51,19 +51,17 @@ from zenml.services.service_monitor import (
|
|
51
51
|
TCPEndpointHealthMonitor,
|
52
52
|
TCPEndpointHealthMonitorConfig,
|
53
53
|
)
|
54
|
-
from zenml.services.service_status import
|
55
|
-
from zenml.
|
56
|
-
|
54
|
+
from zenml.services.service_status import ServiceStatus
|
55
|
+
from zenml.enums import ServiceState
|
56
|
+
from zenml.models.v2.misc.service import ServiceType
|
57
57
|
|
58
58
|
__all__ = [
|
59
|
-
"ServiceState",
|
60
59
|
"ServiceConfig",
|
61
60
|
"ServiceStatus",
|
62
61
|
"ServiceEndpointProtocol",
|
63
62
|
"ServiceEndpointConfig",
|
64
63
|
"ServiceEndpointStatus",
|
65
64
|
"BaseServiceEndpoint",
|
66
|
-
"ServiceType",
|
67
65
|
"BaseService",
|
68
66
|
"ServiceEndpointHealthMonitorConfig",
|
69
67
|
"BaseServiceEndpointHealthMonitor",
|
@@ -27,12 +27,13 @@ from docker.models.containers import Container
|
|
27
27
|
from pydantic import Field
|
28
28
|
|
29
29
|
from zenml.constants import ENV_ZENML_CONFIG_PATH
|
30
|
+
from zenml.enums import ServiceState
|
30
31
|
from zenml.logger import get_logger
|
31
32
|
from zenml.services.container.container_service_endpoint import (
|
32
33
|
ContainerServiceEndpoint,
|
33
34
|
)
|
34
35
|
from zenml.services.service import BaseService, ServiceConfig
|
35
|
-
from zenml.services.service_status import
|
36
|
+
from zenml.services.service_status import ServiceStatus
|
36
37
|
from zenml.utils import docker_utils
|
37
38
|
from zenml.utils.io_utils import (
|
38
39
|
create_dir_recursive_if_not_exists,
|
@@ -26,12 +26,13 @@ import psutil
|
|
26
26
|
from psutil import NoSuchProcess
|
27
27
|
from pydantic import Field
|
28
28
|
|
29
|
+
from zenml.enums import ServiceState
|
29
30
|
from zenml.logger import get_logger
|
30
31
|
from zenml.services.local.local_service_endpoint import (
|
31
32
|
LocalDaemonServiceEndpoint,
|
32
33
|
)
|
33
34
|
from zenml.services.service import BaseService, ServiceConfig
|
34
|
-
from zenml.services.service_status import
|
35
|
+
from zenml.services.service_status import ServiceStatus
|
35
36
|
from zenml.utils.io_utils import create_dir_recursive_if_not_exists
|
36
37
|
|
37
38
|
logger = get_logger(__name__)
|
zenml/services/service.py
CHANGED
@@ -34,11 +34,12 @@ from uuid import UUID
|
|
34
34
|
from pydantic import ConfigDict
|
35
35
|
|
36
36
|
from zenml.console import console
|
37
|
+
from zenml.enums import ServiceState
|
37
38
|
from zenml.logger import get_logger
|
39
|
+
from zenml.models.v2.misc.service import ServiceType
|
38
40
|
from zenml.services.service_endpoint import BaseServiceEndpoint
|
39
41
|
from zenml.services.service_monitor import HTTPEndpointHealthMonitor
|
40
|
-
from zenml.services.service_status import
|
41
|
-
from zenml.services.service_type import ServiceType
|
42
|
+
from zenml.services.service_status import ServiceStatus
|
42
43
|
from zenml.utils import source_utils
|
43
44
|
from zenml.utils.typed_model import BaseTypedModel
|
44
45
|
|
@@ -16,9 +16,10 @@
|
|
16
16
|
from typing import Any, Optional, Tuple
|
17
17
|
|
18
18
|
from zenml.constants import DEFAULT_LOCAL_SERVICE_IP_ADDRESS
|
19
|
+
from zenml.enums import ServiceState
|
19
20
|
from zenml.logger import get_logger
|
20
21
|
from zenml.services.service_monitor import BaseServiceEndpointHealthMonitor
|
21
|
-
from zenml.services.service_status import
|
22
|
+
from zenml.services.service_status import ServiceStatus
|
22
23
|
from zenml.utils.enum_utils import StrEnum
|
23
24
|
from zenml.utils.typed_model import BaseTypedModel
|
24
25
|
|
@@ -19,8 +19,8 @@ from typing import TYPE_CHECKING, Optional, Tuple
|
|
19
19
|
import requests
|
20
20
|
from pydantic import Field
|
21
21
|
|
22
|
+
from zenml.enums import ServiceState
|
22
23
|
from zenml.logger import get_logger
|
23
|
-
from zenml.services.service_status import ServiceState
|
24
24
|
from zenml.utils.networking_utils import port_is_open
|
25
25
|
from zenml.utils.typed_model import BaseTypedModel
|
26
26
|
|
zenml/services/service_status.py
CHANGED
@@ -15,24 +15,13 @@
|
|
15
15
|
|
16
16
|
from typing import Optional
|
17
17
|
|
18
|
+
from zenml.enums import ServiceState
|
18
19
|
from zenml.logger import get_logger
|
19
|
-
from zenml.utils.enum_utils import StrEnum
|
20
20
|
from zenml.utils.typed_model import BaseTypedModel
|
21
21
|
|
22
22
|
logger = get_logger(__name__)
|
23
23
|
|
24
24
|
|
25
|
-
class ServiceState(StrEnum):
|
26
|
-
"""Possible states for the service and service endpoint."""
|
27
|
-
|
28
|
-
INACTIVE = "inactive"
|
29
|
-
ACTIVE = "active"
|
30
|
-
PENDING_STARTUP = "pending_startup"
|
31
|
-
PENDING_SHUTDOWN = "pending_shutdown"
|
32
|
-
ERROR = "error"
|
33
|
-
SCALED_TO_ZERO = "scaled_to_zero"
|
34
|
-
|
35
|
-
|
36
25
|
class ServiceStatus(BaseTypedModel):
|
37
26
|
"""Information about the status of a service or process.
|
38
27
|
|
@@ -17,6 +17,10 @@ from typing import ClassVar, Dict, List, Optional
|
|
17
17
|
|
18
18
|
from zenml.enums import StackDeploymentProvider
|
19
19
|
from zenml.models import StackDeploymentConfig
|
20
|
+
from zenml.stack_deployments.constants import (
|
21
|
+
TERRAFORM_AWS_MODULE_VERSION_SPEC,
|
22
|
+
TERRAFORM_PROVIDER_VERSION_SPEC,
|
23
|
+
)
|
20
24
|
from zenml.stack_deployments.stack_deployment import (
|
21
25
|
STACK_DEPLOYMENT_TERRAFORM,
|
22
26
|
ZenMLCloudStackDeployment,
|
@@ -203,10 +207,6 @@ console.
|
|
203
207
|
# Based on the AWS regions listed at
|
204
208
|
# https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
|
205
209
|
return {
|
206
|
-
"US East (Ohio)": "us-east-2",
|
207
|
-
"US East (N. Virginia)": "us-east-1",
|
208
|
-
"US West (N. California)": "us-west-1",
|
209
|
-
"US West (Oregon)": "us-west-2",
|
210
210
|
"Africa (Cape Town)": "af-south-1",
|
211
211
|
"Asia Pacific (Hong Kong)": "ap-east-1",
|
212
212
|
"Asia Pacific (Hyderabad)": "ap-south-2",
|
@@ -232,6 +232,10 @@ console.
|
|
232
232
|
"Middle East (Bahrain)": "me-south-1",
|
233
233
|
"Middle East (UAE)": "me-central-1",
|
234
234
|
"South America (São Paulo)": "sa-east-1",
|
235
|
+
"US East (Ohio)": "us-east-2",
|
236
|
+
"US East (N. Virginia)": "us-east-1",
|
237
|
+
"US West (N. California)": "us-west-1",
|
238
|
+
"US West (Oregon)": "us-west-2",
|
235
239
|
}
|
236
240
|
|
237
241
|
def get_deployment_config(
|
@@ -287,6 +291,7 @@ console.
|
|
287
291
|
}}
|
288
292
|
zenml = {{
|
289
293
|
source = "zenml-io/zenml"
|
294
|
+
version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
|
290
295
|
}}
|
291
296
|
}}
|
292
297
|
}}
|
@@ -302,7 +307,7 @@ provider "zenml" {{
|
|
302
307
|
|
303
308
|
module "zenml_stack" {{
|
304
309
|
source = "zenml-io/zenml-stack/aws"
|
305
|
-
|
310
|
+
version = "{TERRAFORM_AWS_MODULE_VERSION_SPEC}"
|
306
311
|
zenml_stack_name = "{self.stack_name}"
|
307
312
|
zenml_stack_deployment = "{self.deployment_type}"
|
308
313
|
}}
|
@@ -18,6 +18,10 @@ from typing import ClassVar, Dict, List
|
|
18
18
|
|
19
19
|
from zenml.enums import StackDeploymentProvider
|
20
20
|
from zenml.models import StackDeploymentConfig
|
21
|
+
from zenml.stack_deployments.constants import (
|
22
|
+
TERRAFORM_AZURE_MODULE_VERSION_SPEC,
|
23
|
+
TERRAFORM_PROVIDER_VERSION_SPEC,
|
24
|
+
)
|
21
25
|
from zenml.stack_deployments.stack_deployment import ZenMLCloudStackDeployment
|
22
26
|
|
23
27
|
AZURE_DEPLOYMENT_TYPE = "azure-cloud-shell"
|
@@ -156,70 +160,70 @@ ZenML's access to your Azure subscription.
|
|
156
160
|
"""
|
157
161
|
# Based on `az account list-locations -o table` on 16.07.2024
|
158
162
|
return {
|
159
|
-
"(US) East US": "eastus",
|
160
|
-
"(US) South Central US": "southcentralus",
|
161
|
-
"(US) West US 2": "westus2",
|
162
|
-
"(US) West US 3": "westus3",
|
163
|
-
"(Asia Pacific) Australia East": "australiaeast",
|
164
|
-
"(Asia Pacific) Southeast Asia": "southeastasia",
|
165
|
-
"(Europe) North Europe": "northeurope",
|
166
|
-
"(Europe) Sweden Central": "swedencentral",
|
167
|
-
"(Europe) UK South": "uksouth",
|
168
|
-
"(Europe) West Europe": "westeurope",
|
169
|
-
"(US) Central US": "centralus",
|
170
163
|
"(Africa) South Africa North": "southafricanorth",
|
164
|
+
"(Africa) South Africa West": "southafricawest",
|
165
|
+
"(Asia Pacific) Australia Central": "australiacentral",
|
166
|
+
"(Asia Pacific) Australia Central 2": "australiacentral2",
|
167
|
+
"(Asia Pacific) Australia East": "australiaeast",
|
168
|
+
"(Asia Pacific) Australia Southeast": "australiasoutheast",
|
171
169
|
"(Asia Pacific) Central India": "centralindia",
|
172
170
|
"(Asia Pacific) East Asia": "eastasia",
|
171
|
+
"(Asia Pacific) East Asia (Stage)": "eastasiastage",
|
173
172
|
"(Asia Pacific) Japan East": "japaneast",
|
173
|
+
"(Asia Pacific) Japan West": "japanwest",
|
174
|
+
"(Asia Pacific) Jio India Central": "jioindiacentral",
|
175
|
+
"(Asia Pacific) Jio India West": "jioindiawest",
|
174
176
|
"(Asia Pacific) Korea Central": "koreacentral",
|
177
|
+
"(Asia Pacific) Korea South": "koreasouth",
|
178
|
+
"(Asia Pacific) South India": "southindia",
|
179
|
+
"(Asia Pacific) Southeast Asia": "southeastasia",
|
180
|
+
"(Asia Pacific) Southeast Asia (Stage)": "southeastasiastage",
|
181
|
+
"(Asia Pacific) West India": "westindia",
|
175
182
|
"(Canada) Canada Central": "canadacentral",
|
183
|
+
"(Canada) Canada East": "canadaeast",
|
176
184
|
"(Europe) France Central": "francecentral",
|
185
|
+
"(Europe) France South": "francesouth",
|
186
|
+
"(Europe) Germany North": "germanynorth",
|
177
187
|
"(Europe) Germany West Central": "germanywestcentral",
|
178
188
|
"(Europe) Italy North": "italynorth",
|
189
|
+
"(Europe) North Europe": "northeurope",
|
179
190
|
"(Europe) Norway East": "norwayeast",
|
191
|
+
"(Europe) Norway West": "norwaywest",
|
180
192
|
"(Europe) Poland Central": "polandcentral",
|
181
193
|
"(Europe) Spain Central": "spaincentral",
|
194
|
+
"(Europe) Sweden Central": "swedencentral",
|
182
195
|
"(Europe) Switzerland North": "switzerlandnorth",
|
196
|
+
"(Europe) Switzerland West": "switzerlandwest",
|
197
|
+
"(Europe) UK South": "uksouth",
|
198
|
+
"(Europe) UK West": "ukwest",
|
199
|
+
"(Europe) West Europe": "westeurope",
|
183
200
|
"(Mexico) Mexico Central": "mexicocentral",
|
184
|
-
"(Middle East) UAE North": "uaenorth",
|
185
|
-
"(South America) Brazil South": "brazilsouth",
|
186
201
|
"(Middle East) Israel Central": "israelcentral",
|
187
202
|
"(Middle East) Qatar Central": "qatarcentral",
|
203
|
+
"(Middle East) UAE Central": "uaecentral",
|
204
|
+
"(Middle East) UAE North": "uaenorth",
|
205
|
+
"(South America) Brazil South": "brazilsouth",
|
206
|
+
"(South America) Brazil Southeast": "brazilsoutheast",
|
207
|
+
"(South America) Brazil US": "brazilus",
|
208
|
+
"(US) Central US": "centralus",
|
188
209
|
"(US) Central US (Stage)": "centralusstage",
|
210
|
+
"(US) Central US EUAP": "centraluseuap",
|
211
|
+
"(US) East US": "eastus",
|
189
212
|
"(US) East US (Stage)": "eastusstage",
|
213
|
+
"(US) East US 2": "eastus2",
|
190
214
|
"(US) East US 2 (Stage)": "eastus2stage",
|
215
|
+
"(US) East US 2 EUAP": "eastus2euap",
|
216
|
+
"(US) East US STG": "eastusstg",
|
217
|
+
"(US) North Central US": "northcentralus",
|
191
218
|
"(US) North Central US (Stage)": "northcentralusstage",
|
219
|
+
"(US) South Central US": "southcentralus",
|
192
220
|
"(US) South Central US (Stage)": "southcentralusstage",
|
221
|
+
"(US) West Central US": "westcentralus",
|
222
|
+
"(US) West US": "westus",
|
193
223
|
"(US) West US (Stage)": "westusstage",
|
224
|
+
"(US) West US 2": "westus2",
|
194
225
|
"(US) West US 2 (Stage)": "westus2stage",
|
195
|
-
"(
|
196
|
-
"(Asia Pacific) Southeast Asia (Stage)": "southeastasiastage",
|
197
|
-
"(South America) Brazil US": "brazilus",
|
198
|
-
"(US) East US 2": "eastus2",
|
199
|
-
"(US) East US STG": "eastusstg",
|
200
|
-
"(US) North Central US": "northcentralus",
|
201
|
-
"(US) West US": "westus",
|
202
|
-
"(Asia Pacific) Japan West": "japanwest",
|
203
|
-
"(Asia Pacific) Jio India West": "jioindiawest",
|
204
|
-
"(US) Central US EUAP": "centraluseuap",
|
205
|
-
"(US) East US 2 EUAP": "eastus2euap",
|
206
|
-
"(US) West Central US": "westcentralus",
|
207
|
-
"(Africa) South Africa West": "southafricawest",
|
208
|
-
"(Asia Pacific) Australia Central": "australiacentral",
|
209
|
-
"(Asia Pacific) Australia Central 2": "australiacentral2",
|
210
|
-
"(Asia Pacific) Australia Southeast": "australiasoutheast",
|
211
|
-
"(Asia Pacific) Jio India Central": "jioindiacentral",
|
212
|
-
"(Asia Pacific) Korea South": "koreasouth",
|
213
|
-
"(Asia Pacific) South India": "southindia",
|
214
|
-
"(Asia Pacific) West India": "westindia",
|
215
|
-
"(Canada) Canada East": "canadaeast",
|
216
|
-
"(Europe) France South": "francesouth",
|
217
|
-
"(Europe) Germany North": "germanynorth",
|
218
|
-
"(Europe) Norway West": "norwaywest",
|
219
|
-
"(Europe) Switzerland West": "switzerlandwest",
|
220
|
-
"(Europe) UK West": "ukwest",
|
221
|
-
"(Middle East) UAE Central": "uaecentral",
|
222
|
-
"(South America) Brazil Southeast": "brazilsoutheast",
|
226
|
+
"(US) West US 3": "westus3",
|
223
227
|
}
|
224
228
|
|
225
229
|
@classmethod
|
@@ -269,6 +273,7 @@ ZenML's access to your Azure subscription.
|
|
269
273
|
}}
|
270
274
|
zenml = {{
|
271
275
|
source = "zenml-io/zenml"
|
276
|
+
version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
|
272
277
|
}}
|
273
278
|
}}
|
274
279
|
}}
|
@@ -288,6 +293,7 @@ provider "zenml" {{
|
|
288
293
|
|
289
294
|
module "zenml_stack" {{
|
290
295
|
source = "zenml-io/zenml-stack/azure"
|
296
|
+
version = "{TERRAFORM_AZURE_MODULE_VERSION_SPEC}"
|
291
297
|
|
292
298
|
location = "{self.location or "eastus"}"
|
293
299
|
zenml_stack_name = "{self.stack_name}"
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Copyright (c) ZenML GmbH 2025. All Rights Reserved.
|
2
|
+
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at:
|
6
|
+
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
12
|
+
# or implied. See the License for the specific language governing
|
13
|
+
# permissions and limitations under the License.
|
14
|
+
"""Constants for the stack deployments."""
|
15
|
+
|
16
|
+
# The ZenML Terraform provider compatible versions
|
17
|
+
# (>= 2.0.0, < 3.0.0)
|
18
|
+
TERRAFORM_PROVIDER_VERSION_SPEC = "~> 2.0"
|
19
|
+
|
20
|
+
# The ZenML AWS Terraform module compatible versions
|
21
|
+
# (>= 2.0.0, < 3.0.0)
|
22
|
+
TERRAFORM_AWS_MODULE_VERSION_SPEC = "~> 2.0"
|
23
|
+
|
24
|
+
# The ZenML GCP Terraform module compatible versions
|
25
|
+
# (>= 2.0.0, < 3.0.0)
|
26
|
+
TERRAFORM_GCP_MODULE_VERSION_SPEC = "~> 2.0"
|
27
|
+
|
28
|
+
# The ZenML Azure Terraform module compatible versions
|
29
|
+
# (>= 2.0.0, < 3.0.0)
|
30
|
+
TERRAFORM_AZURE_MODULE_VERSION_SPEC = "~> 2.0"
|
@@ -18,6 +18,10 @@ from typing import ClassVar, Dict, List
|
|
18
18
|
|
19
19
|
from zenml.enums import StackDeploymentProvider
|
20
20
|
from zenml.models import StackDeploymentConfig
|
21
|
+
from zenml.stack_deployments.constants import (
|
22
|
+
TERRAFORM_GCP_MODULE_VERSION_SPEC,
|
23
|
+
TERRAFORM_PROVIDER_VERSION_SPEC,
|
24
|
+
)
|
21
25
|
from zenml.stack_deployments.stack_deployment import (
|
22
26
|
STACK_DEPLOYMENT_TERRAFORM,
|
23
27
|
ZenMLCloudStackDeployment,
|
@@ -267,6 +271,7 @@ GCP project and to clean up the resources created by the stack by using
|
|
267
271
|
}}
|
268
272
|
zenml = {{
|
269
273
|
source = "zenml-io/zenml"
|
274
|
+
version = "{TERRAFORM_PROVIDER_VERSION_SPEC}"
|
270
275
|
}}
|
271
276
|
}}
|
272
277
|
}}
|
@@ -283,6 +288,7 @@ provider "zenml" {{
|
|
283
288
|
|
284
289
|
module "zenml_stack" {{
|
285
290
|
source = "zenml-io/zenml-stack/gcp"
|
291
|
+
version = "{TERRAFORM_GCP_MODULE_VERSION_SPEC}"
|
286
292
|
|
287
293
|
zenml_stack_name = "{self.stack_name}"
|
288
294
|
zenml_stack_deployment = "{self.deployment_type}"
|
@@ -174,7 +174,7 @@ class EntrypointFunctionDefinition(NamedTuple):
|
|
174
174
|
f"'{key}' is not JSON serializable and can not be passed as "
|
175
175
|
"a parameter. This input can either be provided by the "
|
176
176
|
"output of another step or as an external artifact: "
|
177
|
-
"https://docs.zenml.io/user-
|
177
|
+
"https://docs.zenml.io/user-guides/starter-guide/manage-artifacts#managing-artifacts-not-produced-by-zenml-pipelines"
|
178
178
|
)
|
179
179
|
|
180
180
|
try:
|