zenml-nightly 0.67.0.dev20241002__py3-none-any.whl → 0.68.0.dev20241027__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.
- README.md +2 -2
- RELEASE_NOTES.md +129 -0
- zenml/VERSION +1 -1
- zenml/__init__.py +4 -9
- zenml/analytics/enums.py +0 -13
- zenml/artifact_stores/base_artifact_store.py +11 -0
- zenml/artifacts/artifact_config.py +19 -65
- zenml/artifacts/external_artifact.py +7 -53
- zenml/artifacts/external_artifact_config.py +21 -40
- zenml/artifacts/load_directory_materializer.py +91 -0
- zenml/artifacts/utils.py +320 -85
- zenml/cli/__init__.py +1 -39
- zenml/cli/base.py +5 -5
- zenml/cli/integration.py +0 -9
- zenml/cli/pipeline.py +1 -1
- zenml/cli/served_model.py +8 -1
- zenml/cli/server.py +8 -232
- zenml/cli/stack.py +1 -567
- zenml/cli/stack_components.py +0 -578
- zenml/cli/utils.py +0 -65
- zenml/client.py +11 -26
- zenml/client_lazy_loader.py +29 -12
- zenml/config/compiler.py +6 -11
- zenml/config/server_config.py +7 -5
- zenml/config/step_configurations.py +2 -0
- zenml/constants.py +3 -33
- zenml/enums.py +0 -3
- zenml/environment.py +1 -315
- zenml/exceptions.py +1 -41
- zenml/hooks/hook_validators.py +1 -8
- zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +2 -3
- zenml/integrations/argilla/__init__.py +1 -1
- zenml/integrations/argilla/annotators/argilla_annotator.py +234 -89
- zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +10 -5
- zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +9 -5
- zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py +15 -2
- zenml/integrations/aws/service_connectors/aws_service_connector.py +6 -0
- zenml/integrations/azure/flavors/azureml_orchestrator_flavor.py +5 -4
- zenml/integrations/azure/orchestrators/azureml_orchestrator.py +1 -1
- zenml/integrations/bentoml/model_deployers/bentoml_model_deployer.py +85 -19
- zenml/integrations/bentoml/services/__init__.py +15 -4
- zenml/integrations/bentoml/services/bentoml_container_deployment.py +399 -0
- zenml/integrations/bentoml/services/{bentoml_deployment.py → bentoml_local_deployment.py} +81 -40
- zenml/{steps/base_parameters.py → integrations/bentoml/services/deployment_type.py} +8 -5
- zenml/integrations/bentoml/steps/bento_builder.py +1 -0
- zenml/integrations/bentoml/steps/bentoml_deployer.py +93 -41
- zenml/integrations/gitlab/code_repositories/gitlab_code_repository.py +6 -1
- zenml/integrations/huggingface/__init__.py +1 -6
- zenml/integrations/kaniko/image_builders/kaniko_image_builder.py +3 -3
- zenml/integrations/lightning/orchestrators/lightning_orchestrator.py +3 -3
- zenml/integrations/lightning/orchestrators/lightning_orchestrator_entrypoint.py +2 -2
- zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +6 -3
- zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +6 -0
- zenml/integrations/mlflow/services/mlflow_deployment.py +2 -2
- zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
- zenml/integrations/mlflow/steps/mlflow_registry.py +1 -1
- zenml/integrations/neptune/experiment_trackers/run_state.py +2 -2
- zenml/integrations/s3/artifact_stores/s3_artifact_store.py +98 -0
- zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +14 -0
- zenml/integrations/s3/utils.py +40 -0
- zenml/integrations/tensorflow/__init__.py +0 -9
- zenml/logging/step_logging.py +13 -15
- zenml/materializers/__init__.py +2 -0
- zenml/materializers/uuid_materializer.py +79 -0
- zenml/metadata/lazy_load.py +10 -7
- zenml/model/lazy_load.py +85 -4
- zenml/model/model.py +61 -45
- zenml/model/utils.py +47 -118
- zenml/models/__init__.py +3 -0
- zenml/models/v2/core/artifact_version.py +4 -15
- zenml/models/v2/core/model.py +1 -0
- zenml/models/v2/core/model_version.py +1 -1
- zenml/models/v2/core/pipeline_run.py +1 -2
- zenml/models/v2/core/run_metadata.py +2 -2
- zenml/models/v2/core/step_run.py +15 -12
- zenml/models/v2/misc/server_models.py +0 -4
- zenml/orchestrators/base_orchestrator.py +33 -0
- zenml/orchestrators/input_utils.py +52 -36
- zenml/orchestrators/step_launcher.py +49 -171
- zenml/orchestrators/step_run_utils.py +566 -0
- zenml/orchestrators/step_runner.py +102 -151
- zenml/orchestrators/utils.py +1 -158
- zenml/pipelines/__init__.py +3 -16
- zenml/{new/pipelines → pipelines}/pipeline_context.py +3 -18
- zenml/pipelines/pipeline_decorator.py +29 -60
- zenml/{new/pipelines/pipeline.py → pipelines/pipeline_definition.py} +4 -47
- zenml/stack/stack.py +1 -102
- zenml/stack/stack_component.py +0 -71
- zenml/stack_deployments/aws_stack_deployment.py +3 -0
- zenml/step_operators/step_operator_entrypoint_configuration.py +1 -1
- zenml/steps/__init__.py +3 -9
- zenml/steps/base_step.py +17 -265
- zenml/steps/entrypoint_function_utils.py +2 -80
- zenml/{new/steps → steps}/step_context.py +12 -63
- zenml/steps/step_decorator.py +42 -89
- zenml/steps/step_invocation.py +2 -55
- zenml/steps/utils.py +3 -23
- zenml/utils/dashboard_utils.py +16 -51
- zenml/utils/typing_utils.py +8 -28
- zenml/zen_server/dashboard/assets/{404-Y50hSt65.js → 404-DT4QRUqN.js} +1 -1
- zenml/zen_server/dashboard/assets/@radix-DP6vWzyx.js +85 -0
- zenml/zen_server/dashboard/assets/@react-router-BMhZulnd.js +29 -0
- zenml/zen_server/dashboard/assets/@reactflow-8U9qNlMR.js +17 -0
- zenml/zen_server/dashboard/assets/@tanstack-BUCbhJyH.js +22 -0
- zenml/zen_server/dashboard/assets/{AlertDialogDropdownItem-xLR9a1iw.js → AlertDialogDropdownItem-C6N2rGrB.js} +1 -1
- zenml/zen_server/dashboard/assets/{CodeSnippet-IxXNxUDa.js → CodeSnippet-CqybNv0k.js} +1 -1
- zenml/zen_server/dashboard/assets/{CollapsibleCard-BhutZbBL.js → CollapsibleCard-0r_8G2Lj.js} +1 -1
- zenml/zen_server/dashboard/assets/{Commands-Bf-rd1z8.js → Commands-BDjgBQKi.js} +1 -1
- zenml/zen_server/dashboard/assets/ComponentBadge-DUiEYJHu.js +1 -0
- zenml/zen_server/dashboard/assets/ComponentFallbackDialog-BFoH5K4V.js +1 -0
- zenml/zen_server/dashboard/assets/ComponentIcon-CAIoUis2.js +1 -0
- zenml/zen_server/dashboard/assets/{CopyButton-DcFHidFJ.js → CopyButton-C745BrKi.js} +1 -1
- zenml/zen_server/dashboard/assets/{CsvVizualization-QSbjrfxw.js → CsvVizualization-PpAq0CeZ.js} +5 -5
- zenml/zen_server/dashboard/assets/{DialogItem-Cd3HqST4.js → DialogItem-DcVCZEew.js} +1 -1
- zenml/zen_server/dashboard/assets/{DisplayDate-DkCy54Bp.js → DisplayDate-BeXgUG_C.js} +1 -1
- zenml/zen_server/dashboard/assets/{EmptyState-Cs3DEmso.js → EmptyState-DeK7H4pr.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-BhwdmqK7.js → Error-BMlzibXj.js} +1 -1
- zenml/zen_server/dashboard/assets/{Helpbox-0pBpTwTm.js → Helpbox-BLf40fLV.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-BTK_EUKT.js → Infobox-BwisKifi.js} +1 -1
- zenml/zen_server/dashboard/assets/{InlineAvatar-CA3DFMcM.js → InlineAvatar-jEgodSgX.js} +1 -1
- zenml/zen_server/dashboard/assets/{Lock-CmIn0szs.js → Lock-3lLt1ih0.js} +1 -1
- zenml/zen_server/dashboard/assets/MarkdownVisualization-8O9kTr-2.js +14 -0
- zenml/zen_server/dashboard/assets/{NumberBox-CrN0_kqI.js → NumberBox-T9eELfLZ.js} +1 -1
- zenml/zen_server/dashboard/assets/{Partials-QLOZw624.js → Partials-YPBB3V4q.js} +1 -1
- zenml/zen_server/dashboard/assets/{PasswordChecker-DE71J_3F.js → PasswordChecker-CW0kqY0W.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderIcon-C16CCIN4.js → ProviderIcon-Bb3Xha5A.js} +1 -1
- zenml/zen_server/dashboard/assets/{ProviderRadio-D3FuCHf3.js → ProviderRadio-BROY1700.js} +1 -1
- zenml/zen_server/dashboard/assets/RunSelector-DCiL3M1c.js +1 -0
- zenml/zen_server/dashboard/assets/SearchField-DfUiGFVd.js +1 -0
- zenml/zen_server/dashboard/assets/{SecretTooltip-BaMwHF-Q.js → SecretTooltip-C_qByGWB.js} +1 -1
- zenml/zen_server/dashboard/assets/{SetPassword-DuIC65H9.js → SetPassword-7pRB00El.js} +1 -1
- zenml/zen_server/dashboard/assets/{Tick-DJTCF0Re.js → Tick-CykQFPj2.js} +1 -1
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-CUm-DMpw.js → UpdatePasswordSchemas-DckMEkFf.js} +1 -1
- zenml/zen_server/dashboard/assets/{UsageReason-CKw0juLF.js → UsageReason-DVceN14P.js} +1 -1
- zenml/zen_server/dashboard/assets/{WizardFooter-Cv9ApYWU.js → WizardFooter-CW0Cvd70.js} +1 -1
- zenml/zen_server/dashboard/assets/{check-circle-DOoS4yhF.js → check-circle-Dwxliy1Z.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-down-Cwb-W_B_.js → chevron-down-8wLBS5pQ.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-right-double-c9H46Kl8.js → chevron-right-double-DoD8iXWM.js} +1 -1
- zenml/zen_server/dashboard/assets/{cloud-only-BB4BVa6E.js → cloud-only-B-s_HMDm.js} +1 -1
- zenml/zen_server/dashboard/assets/{code-browser-BJYErIjr.js → code-browser-CZUQs3Wa.js} +1 -1
- zenml/zen_server/dashboard/assets/{copy-CaGlDsUy.js → copy-CaSMXwiU.js} +1 -1
- zenml/zen_server/dashboard/assets/{create-stack-F29xAUEx.js → create-stack-CEmaPZ4c.js} +1 -1
- zenml/zen_server/dashboard/assets/delete-run-D-LKbGyz.js +1 -0
- zenml/zen_server/dashboard/assets/{docker-BFAFXr2_.js → docker-BFNgg-z3.js} +1 -1
- zenml/zen_server/dashboard/assets/{dots-horizontal-C6K59vUm.js → dots-horizontal-DK5Duzx4.js} +1 -1
- zenml/zen_server/dashboard/assets/{form-schemas-BKXwSDK2.js → form-schemas-1AyOCx90.js} +1 -1
- zenml/zen_server/dashboard/assets/{gcp-Dj6ntk0L.js → gcp-7M2Yf3ZK.js} +1 -1
- zenml/zen_server/dashboard/assets/{help-CwN931fX.js → help-Dam461dC.js} +1 -1
- zenml/zen_server/dashboard/assets/{index-5GJ5ysEZ.js → index-BVJ8n2-j.js} +1 -1
- zenml/zen_server/dashboard/assets/index-Bpmj40BI.js +1 -0
- zenml/zen_server/dashboard/assets/index-CbU4Ln_E.css +1 -0
- zenml/zen_server/dashboard/assets/{index-D-mtoBj3.js → index-DKPhqP2B.js} +1 -1
- zenml/zen_server/dashboard/assets/index-QQb7wQEC.js +55 -0
- zenml/zen_server/dashboard/assets/index.esm-cuVep_NJ.js +1 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-ZzOtrSSW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DH2hs3aW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BGBWG807.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-BuzJQFbW.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-BPnxn4xp.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-CUiC4oBV.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-Bt9VVOA-.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-BZzXV7-1.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DxZsaF_h.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-CeQXL5ds.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-d_eO-yCQ.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-CwicyhtI.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-Dhlb-90d.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-Bput3-QP.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-DCpCPQOf.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-B6guLgqG.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-M2hEX8vc.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-C9WLioJ8.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-BOOGhInR.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-gitzw0hO.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-D2bGa7uu.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-deR1Tlfd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-B5cFAncS.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-D273HNI0.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-C1t-h-pH.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-hnt3BR84.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-CIS2RHJS.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-UMdmhHu2.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-BnYJhD27.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-CAF0vJDd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-BUNmGMP1.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-DQPw2Hwd.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-Cm6aH8_k.woff +0 -0
- zenml/zen_server/dashboard/assets/{kubernetes-BjbR6D-1.js → kubernetes--g7r02Zu.js} +1 -1
- zenml/zen_server/dashboard/assets/{layout-Dru15_XR.js → layout-DCSYN7-C.js} +1 -1
- zenml/zen_server/dashboard/assets/{link-external-BT2L8hAQ.js → link-external-CBEk6kEG.js} +1 -1
- zenml/zen_server/dashboard/assets/{login-mutation-ax6iL2Mb.js → login-mutation-DTcAFP1l.js} +1 -1
- zenml/zen_server/dashboard/assets/{logs-GiDJXbLS.js → logs-D5bdJGur.js} +1 -1
- zenml/zen_server/dashboard/assets/not-found-Cc-JkRH2.js +1 -0
- zenml/zen_server/dashboard/assets/{package-DYKZ5jKW.js → package-Cs35Szwh.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-HkVBdZl6.js → page-9yplj5JT.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-uORspyRu.js → page-B-y2XKIc.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BBpOxVcY.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BDg1F-Ug.js → page-BQQKaabe.js} +2 -2
- zenml/zen_server/dashboard/assets/page-BRInM1Lg.js +1 -0
- zenml/zen_server/dashboard/assets/{page-CvKnNK1S.js → page-BjjlMk7s.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BukXK1Aa.js → page-Bvd7YH2A.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DcTjHmYZ.js → page-C0N5q3l7.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CT3Nep8W.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DuqYMYmH.js → page-C_f47pBf.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DRfcRK1w.js → page-ClUVkl-O.js} +1 -1
- zenml/zen_server/dashboard/assets/page-Cmv8C_yM.js +3 -0
- zenml/zen_server/dashboard/assets/{page-p0BhSAWx.js → page-CyN2bdWG.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CzzXH4fs.js +1 -0
- zenml/zen_server/dashboard/assets/{page-6mfzecin.js → page-DH_Z7iW1.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-8kYmrh0B.js → page-DIOXwhiD.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-BXarY9K2.js → page-DLixvR-7.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DTlGjgnG.js +1 -0
- zenml/zen_server/dashboard/assets/page-Dbpl86h0.js +1 -0
- zenml/zen_server/dashboard/assets/{page-MAXyfXBq.js → page-Ddgy6kDS.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DtCAfBLy.js +9 -0
- zenml/zen_server/dashboard/assets/{page-CKHNAq7z.js → page-Dx16z7nA.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DMSLXKGT.js → page-DzpVUZ8f.js} +1 -1
- zenml/zen_server/dashboard/assets/page-McUyYbo1.js +1 -0
- zenml/zen_server/dashboard/assets/{page-miU2rhYG.js → page-N4qoPHKb.js} +1 -1
- zenml/zen_server/dashboard/assets/page-T1P3RyAR.js +1 -0
- zenml/zen_server/dashboard/assets/{page-3qPX9WYH.js → page-bKaULTGG.js} +1 -1
- zenml/zen_server/dashboard/assets/page-sbXUJy9t.js +1 -0
- zenml/zen_server/dashboard/assets/{persist-CfJMar_k.js → persist-CP0JmYZ4.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-BxIR2XZs.js → persist-DNb5cdrU.js} +1 -1
- zenml/zen_server/dashboard/assets/{plus-Bc8eLSDM.js → plus-C9IxgN2M.js} +1 -1
- zenml/zen_server/dashboard/assets/{refresh-hfgWPeto.js → refresh-BVu22P_C.js} +1 -1
- zenml/zen_server/dashboard/assets/{rocket-SESCGQXm.js → rocket-CONEmRmB.js} +1 -1
- zenml/zen_server/dashboard/assets/{sharedSchema-vub0rii3.js → sharedSchema-TMLu-nYQ.js} +1 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-xmYxSsUY.js +1 -0
- zenml/zen_server/dashboard/assets/{tick-circle-m-hJG8i9.js → tick-circle-CM1ZScbQ.js} +1 -1
- zenml/zen_server/dashboard/assets/{trash-DUWZWzse.js → trash-DkJHMOg7.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-FGVP7X2U.js → update-server-settings-mutation-DsU8cNVl.js} +1 -1
- zenml/zen_server/dashboard/assets/{url-CbAPzsmT.js → url-D5le3J4q.js} +1 -1
- zenml/zen_server/dashboard/assets/zod-D89GC_vc.js +1 -0
- zenml/zen_server/dashboard/index.html +7 -7
- zenml/zen_server/deploy/__init__.py +0 -9
- zenml/zen_server/deploy/docker/docker_zen_server.py +0 -6
- zenml/zen_server/deploy/helm/Chart.yaml +1 -1
- zenml/zen_server/deploy/helm/README.md +2 -2
- zenml/zen_server/deploy/local/local_zen_server.py +0 -6
- zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
- zenml/zen_server/routers/artifact_version_endpoints.py +1 -1
- zenml/zen_server/routers/runs_endpoints.py +0 -28
- zenml/zen_server/template_execution/runner_entrypoint_configuration.py +1 -1
- zenml/zen_server/template_execution/utils.py +2 -2
- zenml/zen_server/utils.py +10 -40
- zenml/zen_server/zen_server_api.py +107 -17
- zenml/zen_stores/base_zen_store.py +0 -2
- zenml/zen_stores/migrations/versions/0.68.0_release.py +23 -0
- zenml/zen_stores/migrations/versions/1d8f30c54477_migrate_to_new_.py +124 -0
- zenml/zen_stores/schemas/pipeline_run_schemas.py +12 -4
- zenml/zen_stores/schemas/step_run_schemas.py +2 -2
- zenml/zen_stores/sql_zen_store.py +29 -5
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/METADATA +4 -8
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/RECORD +270 -450
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/WHEEL +1 -1
- zenml/cli/stack_recipes.py +0 -469
- zenml/lineage_graph/__init__.py +0 -34
- zenml/lineage_graph/edge.py +0 -24
- zenml/lineage_graph/lineage_graph.py +0 -244
- zenml/lineage_graph/node/__init__.py +0 -32
- zenml/lineage_graph/node/artifact_node.py +0 -51
- zenml/lineage_graph/node/base_node.py +0 -31
- zenml/lineage_graph/node/step_node.py +0 -41
- zenml/model/model_version.py +0 -38
- zenml/new/__init__.py +0 -13
- zenml/new/pipelines/__init__.py +0 -13
- zenml/new/pipelines/code_archive.py +0 -157
- zenml/new/pipelines/pipeline_decorator.py +0 -118
- zenml/new/steps/__init__.py +0 -13
- zenml/new/steps/step_decorator.py +0 -176
- zenml/pipelines/base_pipeline.py +0 -273
- zenml/post_execution/__init__.py +0 -30
- zenml/post_execution/pipeline.py +0 -55
- zenml/post_execution/pipeline_run.py +0 -55
- zenml/services/terraform/__init__.py +0 -14
- zenml/services/terraform/terraform_service.py +0 -441
- zenml/steps/external_artifact.py +0 -26
- zenml/steps/step_environment.py +0 -108
- zenml/steps/step_output.py +0 -36
- zenml/utils/mlstacks_utils.py +0 -635
- zenml/utils/terraform_utils.py +0 -43
- zenml/zen_server/dashboard/assets/@radix-DnFH_oo1.js +0 -85
- zenml/zen_server/dashboard/assets/@react-router-APVeuk-U.js +0 -29
- zenml/zen_server/dashboard/assets/@reactflow-ytavUpwh.js +0 -17
- zenml/zen_server/dashboard/assets/@tanstack-QbMbTrh5.js +0 -22
- zenml/zen_server/dashboard/assets/ComponentBadge-gKR1OIwG.js +0 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-D6r6aK8J.js +0 -1
- zenml/zen_server/dashboard/assets/MarkdownVisualization-DS05sfBm.js +0 -14
- zenml/zen_server/dashboard/assets/SearchField-BzmfxS0L.js +0 -1
- zenml/zen_server/dashboard/assets/all-pipeline-runs-query-BA3R2Sey.js +0 -1
- zenml/zen_server/dashboard/assets/delete-run-CP0pcJ3U.js +0 -1
- zenml/zen_server/dashboard/assets/index-BhJ6ZJxv.css +0 -1
- zenml/zen_server/dashboard/assets/index-Ci0nJ8EZ.js +0 -55
- zenml/zen_server/dashboard/assets/index.esm-BE1uqCX5.js +0 -1
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-Df6ckaLK.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-400-normal-JrS_4yms.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-BRrLR67x.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-500-normal-DskEQOpE.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-DDpWG8g5.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-600-normal-iz1--dBq.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-CzG7Kr3z.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-400-normal-tyfMZHQw.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-DOnSzjnx.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-500-normal-Xebo2OyJ.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-DpA2xaRd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-cyrillic-ext-600-normal-KAwcVx6H.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DQXyrmoy.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-400-normal-DvIPHDQ7.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-BjpBGs91.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-500-normal-CmOavsDc.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-B-l8Lzzd.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-600-normal-BLZsI-P3.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-CIdlr5YK.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-400-normal-_Rr29XE2.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-2pdUafRD.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-500-normal-Dtavx3qw.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-BmtRFZgT.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-greek-ext-600-normal-CkBLDEl_.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-BT1H-PT_.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-400-normal-Cdi8t5Mu.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-D4I8BKCx.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-500-normal-kWhwEdDH.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-B2Ssfs8e.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-600-normal-Dbvh0wvx.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-8tIzm-yw.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-400-normal-D3W-OpO-.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-B9u8Q_zH.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-500-normal-SuUkSNTU.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-Dg0Bk0Yr.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-latin-ext-600-normal-ao35dkSb.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-Cnt0N5Vm.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-400-normal-DIOGfGLL.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-0i6yoQMg.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-500-normal-5IkPJ6Nk.woff2 +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-BQ_dbMbg.woff +0 -0
- zenml/zen_server/dashboard/assets/inter-vietnamese-600-normal-DjnxGF-L.woff2 +0 -0
- zenml/zen_server/dashboard/assets/not-found-DbjllLY_.js +0 -1
- zenml/zen_server/dashboard/assets/page-B1n7_W7z.js +0 -1
- zenml/zen_server/dashboard/assets/page-BZZhLo2u.js +0 -1
- zenml/zen_server/dashboard/assets/page-Bbf_oBjn.js +0 -1
- zenml/zen_server/dashboard/assets/page-BjjuBvZG.js +0 -9
- zenml/zen_server/dashboard/assets/page-CHaQkFK5.js +0 -1
- zenml/zen_server/dashboard/assets/page-CS0SYFK8.js +0 -1
- zenml/zen_server/dashboard/assets/page-DGM1CbYT.js +0 -2
- zenml/zen_server/dashboard/assets/page-DOmIZ2ra.js +0 -1
- zenml/zen_server/dashboard/assets/page-DYVmJ9_w.js +0 -3
- zenml/zen_server/dashboard/assets/page-Dwow2doB.js +0 -1
- zenml/zen_server/dashboard/assets/stack-detail-query-DQcyzG-2.js +0 -1
- zenml/zen_server/dashboard/assets/zod-uFd1wBcd.js +0 -1
- zenml/zen_server/dashboard_legacy/_redirects +0 -1
- zenml/zen_server/dashboard_legacy/asset-manifest.json +0 -131
- zenml/zen_server/dashboard_legacy/favicon.ico +0 -0
- zenml/zen_server/dashboard_legacy/index.html +0 -1
- zenml/zen_server/dashboard_legacy/manifest.json +0 -25
- zenml/zen_server/dashboard_legacy/precache-manifest.6d320abb70db612019dda6c4948e7a90.js +0 -462
- zenml/zen_server/dashboard_legacy/robots.txt +0 -2
- zenml/zen_server/dashboard_legacy/service-worker.js +0 -39
- zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css +0 -16
- zenml/zen_server/dashboard_legacy/static/css/2.5b37d44a.chunk.css.map +0 -1
- zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css +0 -2
- zenml/zen_server/dashboard_legacy/static/css/main.e79dff04.chunk.css.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js +0 -3
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.LICENSE.txt +0 -95
- zenml/zen_server/dashboard_legacy/static/js/2.7934458d.chunk.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js +0 -2
- zenml/zen_server/dashboard_legacy/static/js/main.fa9299d5.chunk.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js +0 -2
- zenml/zen_server/dashboard_legacy/static/js/runtime-main.bfca2edd.js.map +0 -1
- zenml/zen_server/dashboard_legacy/static/media/AlertTriangle.28aee535.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/ArrowSquareOut.abfb9bc7.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Back.86c23a22.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/BookOpen.5cb101ff.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/BoundingBox.1eb98717.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/Burger.9b1c67d7.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Cached.2381fb8d.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Calendar.356e11c7.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChartBarHorizontal.0247447b.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/ChartLine.0d79e18d.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/ChatDots.2e1c9211.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Check.dad6beb2.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CheckCircleFilled.c19566d0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Checkbox.af50e31e.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronDown.f860ce32.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronDownLight.6642d756.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ChevronLeft.f6edfcdb.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CircleCheck.f98fd6ca.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Clock.ffc9de95.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Close.74e9efbc.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/CloseWithBorder.6960930a.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CloseWithoutBorder.cd6f71df.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/CloudArrowUp.0aecb235.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Code.ef0f33b5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Config.0be63f8a.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Connector.9fd46ef1.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/Copy.36e2112a.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Dashboard.d05787e0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Data.b1c3b5f8.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Delete.3c361b28.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/Docs.7541d478.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Download.fba04d87.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Edit.490eb294.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/EmptyRightArrow.23749d01.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Example.6396cd37.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Extension.1394cd4a.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Eye.d9e4ee62.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Failed.0213c1a0.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/FileText.1f15bacd.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Filter.ab6b9c0d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Folders.12b29887.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/FunnelFill.6df4c143.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/GitCommit.7dd9c2aa.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/GitHub_Logo.cefc2023.png +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Graph.2c63a892.svg +0 -11
- zenml/zen_server/dashboard_legacy/static/media/History.08329240.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Home.0843b0d5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/ImageBuilder.ea762d9c.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/InProgress.304a0edc.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/Info.9fe10c5c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/KeyboardReturn.491afbe3.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Link.72bbb55d.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Lock.30f5e1fe.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Lock2.a769ea52.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/LockKey.92f21621.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Logs.8bf4d005.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/MinusCircle.4188f418.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/ModelRegistry.f0de050a.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/MultiUser.a2ba7c67.svg +0 -10
- zenml/zen_server/dashboard_legacy/static/media/PaginationFirst.92628634.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/PaginationLast.00d3c732.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/PaginationNext.86158845.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/PaginationPrev.60c18a88.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Pen.f2d831d4.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/PhotoCamera.179d6d4c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Pipeline.30d298b0.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/Plus.5aa1c16b.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/PlusCircle.92d860dd.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/Repositories.71a36b8c.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/RightArrow.f30d3871.svg +0 -29
- zenml/zen_server/dashboard_legacy/static/media/Rocket.63bf7b9d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/RocketLaunch.1bff2b59.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Rubik-Medium.c87313aa.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Rubik-Regular.b3d0902b.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Run.daec4fb2.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Search.d1afcce5.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Settings.59ca73ae.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Share2.46c3ff66.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SignOut.6aa718c5.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SimplePlus.5cf7ec20.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SingleUser.bef3a095.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/SourceCodePro-Regular.b484b32f.ttf +0 -0
- zenml/zen_server/dashboard_legacy/static/media/Stack.19b604ac.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/StackComponent.b1ba90b5.svg +0 -4
- zenml/zen_server/dashboard_legacy/static/media/Star.f0c25022.svg +0 -9
- zenml/zen_server/dashboard_legacy/static/media/StarOutline.94ca8cd9.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Storefront.4b4796fe.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/Stream.543e3039.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/SupportAgent.510ddf1f.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/Table.77033750.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Tool.d5785486.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/UserPlus.741a99d7.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/Verified.0625b2a0.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/addNew.4fb6c939.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/arrowClose.cbd53f3f.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/arrowOpen.6ceef0af.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/check_small.30bc0138.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/circleArrowSideClose.98d6013e.svg +0 -18
- zenml/zen_server/dashboard_legacy/static/media/circleArrowSideOpen.63653df6.svg +0 -18
- zenml/zen_server/dashboard_legacy/static/media/image.104fd14b.png +0 -0
- zenml/zen_server/dashboard_legacy/static/media/imageAddIcon.e83004a9.svg +0 -7
- zenml/zen_server/dashboard_legacy/static/media/logo.93333e5c.svg +0 -1
- zenml/zen_server/dashboard_legacy/static/media/logo_small.4204397d.svg +0 -3
- zenml/zen_server/dashboard_legacy/static/media/logo_white.d4b4414e.svg +0 -20
- zenml/zen_server/dashboard_legacy/static/media/notConnected.5e2c8ea7.svg +0 -8
- zenml/zen_server/dashboard_legacy/static/media/plugin-fallback.72c294e6.svg +0 -6
- zenml/zen_server/dashboard_legacy/static/media/share.bcd998b0.svg +0 -5
- zenml/zen_server/dashboard_legacy/static/media/stars.08a9b19a.svg +0 -8
- zenml/zen_server/deploy/terraform/__init__.py +0 -41
- zenml/zen_server/deploy/terraform/providers/__init__.py +0 -14
- zenml/zen_server/deploy/terraform/providers/aws_provider.py +0 -61
- zenml/zen_server/deploy/terraform/providers/azure_provider.py +0 -59
- zenml/zen_server/deploy/terraform/providers/gcp_provider.py +0 -59
- zenml/zen_server/deploy/terraform/providers/terraform_provider.py +0 -331
- zenml/zen_server/deploy/terraform/recipes/aws/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/aws/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/aws/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/aws/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/aws/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/aws/sql.tf +0 -62
- zenml/zen_server/deploy/terraform/recipes/aws/terraform.tf +0 -44
- zenml/zen_server/deploy/terraform/recipes/aws/variables.tf +0 -167
- zenml/zen_server/deploy/terraform/recipes/aws/vpc.tf +0 -47
- zenml/zen_server/deploy/terraform/recipes/aws/zen_server.tf +0 -103
- zenml/zen_server/deploy/terraform/recipes/azure/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/azure/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/azure/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/azure/key_vault.tf +0 -73
- zenml/zen_server/deploy/terraform/recipes/azure/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/azure/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/azure/rg.tf +0 -36
- zenml/zen_server/deploy/terraform/recipes/azure/sql.tf +0 -65
- zenml/zen_server/deploy/terraform/recipes/azure/terraform.tf +0 -52
- zenml/zen_server/deploy/terraform/recipes/azure/variables.tf +0 -176
- zenml/zen_server/deploy/terraform/recipes/azure/zen_server.tf +0 -103
- zenml/zen_server/deploy/terraform/recipes/gcp/.gitignore +0 -8
- zenml/zen_server/deploy/terraform/recipes/gcp/helm.tf +0 -20
- zenml/zen_server/deploy/terraform/recipes/gcp/ingress.tf +0 -30
- zenml/zen_server/deploy/terraform/recipes/gcp/outputs.tf +0 -7
- zenml/zen_server/deploy/terraform/recipes/gcp/printf.cmd +0 -2
- zenml/zen_server/deploy/terraform/recipes/gcp/sql.tf +0 -64
- zenml/zen_server/deploy/terraform/recipes/gcp/terraform.tf +0 -44
- zenml/zen_server/deploy/terraform/recipes/gcp/variables.tf +0 -171
- zenml/zen_server/deploy/terraform/recipes/gcp/zen_server.tf +0 -114
- zenml/zen_server/deploy/terraform/terraform_zen_server.py +0 -246
- /zenml/{new/pipelines → pipelines}/build_utils.py +0 -0
- /zenml/{new/pipelines → pipelines}/run_utils.py +0 -0
- /zenml/{new/steps → steps}/decorated_step.py +0 -0
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.67.0.dev20241002.dist-info → zenml_nightly-0.68.0.dev20241027.dist-info}/entry_points.txt +0 -0
zenml/cli/stack_components.py
CHANGED
@@ -13,9 +13,6 @@
|
|
13
13
|
# permissions and limitations under the License.
|
14
14
|
"""Functionality to generate stack component CLI commands."""
|
15
15
|
|
16
|
-
import os
|
17
|
-
import random
|
18
|
-
import string
|
19
16
|
import time
|
20
17
|
from importlib import import_module
|
21
18
|
from typing import Any, Callable, List, Optional, Tuple, cast
|
@@ -24,8 +21,6 @@ from uuid import UUID
|
|
24
21
|
import click
|
25
22
|
from rich.markdown import Markdown
|
26
23
|
|
27
|
-
from zenml.analytics.enums import AnalyticsEvent
|
28
|
-
from zenml.analytics.utils import track_handler
|
29
24
|
from zenml.cli import utils as cli_utils
|
30
25
|
from zenml.cli.annotator import register_annotator_subcommands
|
31
26
|
from zenml.cli.cli import TagGroup, cli
|
@@ -41,7 +36,6 @@ from zenml.cli.utils import (
|
|
41
36
|
)
|
42
37
|
from zenml.client import Client
|
43
38
|
from zenml.console import console
|
44
|
-
from zenml.constants import ALPHA_MESSAGE, STACK_RECIPE_MODULAR_RECIPES
|
45
39
|
from zenml.enums import CliCategories, StackComponentType
|
46
40
|
from zenml.exceptions import AuthorizationException, IllegalOperationError
|
47
41
|
from zenml.io import fileio
|
@@ -51,14 +45,6 @@ from zenml.models import (
|
|
51
45
|
)
|
52
46
|
from zenml.utils import source_utils
|
53
47
|
from zenml.utils.dashboard_utils import get_component_url
|
54
|
-
from zenml.utils.io_utils import create_dir_recursive_if_not_exists
|
55
|
-
from zenml.utils.mlstacks_utils import (
|
56
|
-
convert_click_params_to_mlstacks_primitives,
|
57
|
-
convert_mlstacks_primitives_to_dicts,
|
58
|
-
import_new_mlstacks_component,
|
59
|
-
verify_spec_and_tf_files_exist,
|
60
|
-
)
|
61
|
-
from zenml.utils.yaml_utils import write_yaml
|
62
48
|
|
63
49
|
|
64
50
|
def generate_stack_component_get_command(
|
@@ -595,162 +581,6 @@ def generate_stack_component_copy_command(
|
|
595
581
|
return copy_stack_component_command
|
596
582
|
|
597
583
|
|
598
|
-
def generate_stack_component_up_command(
|
599
|
-
component_type: StackComponentType,
|
600
|
-
) -> Callable[[str], None]:
|
601
|
-
"""Generates a `up` command for the specific stack component type.
|
602
|
-
|
603
|
-
Args:
|
604
|
-
component_type: Type of the component to generate the command for.
|
605
|
-
|
606
|
-
Returns:
|
607
|
-
A function that can be used as a `click` command.
|
608
|
-
"""
|
609
|
-
display_name = _component_display_name(component_type)
|
610
|
-
|
611
|
-
@click.argument("name_id_or_prefix", type=str, required=False)
|
612
|
-
def up_stack_component_command(name_id_or_prefix: str) -> None:
|
613
|
-
"""Deploys a stack component locally.
|
614
|
-
|
615
|
-
Args:
|
616
|
-
name_id_or_prefix: The name or_id of the stack component to deploy.
|
617
|
-
"""
|
618
|
-
client = Client()
|
619
|
-
|
620
|
-
with console.status(
|
621
|
-
f"Provisioning {display_name} '{name_id_or_prefix}' locally...\n"
|
622
|
-
):
|
623
|
-
try:
|
624
|
-
component_model = client.get_stack_component(
|
625
|
-
name_id_or_prefix=name_id_or_prefix,
|
626
|
-
component_type=component_type,
|
627
|
-
)
|
628
|
-
except KeyError as err:
|
629
|
-
cli_utils.error(str(err))
|
630
|
-
|
631
|
-
from zenml.stack import StackComponent
|
632
|
-
|
633
|
-
component = StackComponent.from_model(
|
634
|
-
component_model=component_model
|
635
|
-
)
|
636
|
-
|
637
|
-
if component.is_running:
|
638
|
-
cli_utils.declare(
|
639
|
-
f"Local deployment is already running for {display_name} "
|
640
|
-
f"'{component.name}'."
|
641
|
-
)
|
642
|
-
return
|
643
|
-
|
644
|
-
if not component.is_provisioned:
|
645
|
-
cli_utils.declare(
|
646
|
-
f"Provisioning local resources for {display_name} "
|
647
|
-
f"'{component.name}'."
|
648
|
-
)
|
649
|
-
try:
|
650
|
-
component.provision()
|
651
|
-
except NotImplementedError:
|
652
|
-
cli_utils.error(
|
653
|
-
f"Provisioning local resources not implemented for "
|
654
|
-
f"{display_name} '{component.name}'."
|
655
|
-
)
|
656
|
-
|
657
|
-
if not component.is_running:
|
658
|
-
cli_utils.declare(
|
659
|
-
f"Resuming local resources for {display_name} "
|
660
|
-
f"'{component.name}'."
|
661
|
-
)
|
662
|
-
component.resume()
|
663
|
-
|
664
|
-
return up_stack_component_command
|
665
|
-
|
666
|
-
|
667
|
-
def generate_stack_component_down_command(
|
668
|
-
component_type: StackComponentType,
|
669
|
-
) -> Callable[[str, bool], None]:
|
670
|
-
"""Generates a `down` command for the specific stack component type.
|
671
|
-
|
672
|
-
Args:
|
673
|
-
component_type: Type of the component to generate the command for.
|
674
|
-
|
675
|
-
Returns:
|
676
|
-
A function that can be used as a `click` command.
|
677
|
-
"""
|
678
|
-
display_name = _component_display_name(component_type)
|
679
|
-
|
680
|
-
@click.argument("name_id_or_prefix", type=str, required=False)
|
681
|
-
@click.option(
|
682
|
-
"--force",
|
683
|
-
"-f",
|
684
|
-
"force",
|
685
|
-
is_flag=True,
|
686
|
-
help="Deprovisions local resources instead of suspending them.",
|
687
|
-
)
|
688
|
-
def down_stack_component_command(
|
689
|
-
name_id_or_prefix: str,
|
690
|
-
force: bool = False,
|
691
|
-
) -> None:
|
692
|
-
"""Stops/Tears down the local deployment of a stack component.
|
693
|
-
|
694
|
-
Args:
|
695
|
-
name_id_or_prefix: The name or id of the component to
|
696
|
-
stop/deprovision.
|
697
|
-
force: Deprovision local resources instead of suspending them.
|
698
|
-
"""
|
699
|
-
client = Client()
|
700
|
-
|
701
|
-
with console.status(
|
702
|
-
f"De-provisioning {display_name} '{name_id_or_prefix}' locally...\n"
|
703
|
-
):
|
704
|
-
try:
|
705
|
-
component_model = client.get_stack_component(
|
706
|
-
name_id_or_prefix=name_id_or_prefix,
|
707
|
-
component_type=component_type,
|
708
|
-
)
|
709
|
-
except KeyError as err:
|
710
|
-
cli_utils.error(str(err))
|
711
|
-
|
712
|
-
from zenml.stack import StackComponent
|
713
|
-
|
714
|
-
component = StackComponent.from_model(
|
715
|
-
component_model=component_model
|
716
|
-
)
|
717
|
-
|
718
|
-
if not force:
|
719
|
-
if not component.is_suspended:
|
720
|
-
cli_utils.declare(
|
721
|
-
f"Suspending local resources for {display_name} "
|
722
|
-
f"'{component.name}'."
|
723
|
-
)
|
724
|
-
try:
|
725
|
-
component.suspend()
|
726
|
-
except NotImplementedError:
|
727
|
-
cli_utils.error(
|
728
|
-
f"Provisioning local resources not implemented for "
|
729
|
-
f"{display_name} '{component.name}'. If you want "
|
730
|
-
f"to deprovision all resources for this component, "
|
731
|
-
f"use the `--force/-f` flag."
|
732
|
-
)
|
733
|
-
else:
|
734
|
-
cli_utils.declare(
|
735
|
-
f"No running resources found for {display_name} "
|
736
|
-
f"'{component.name}'."
|
737
|
-
)
|
738
|
-
else:
|
739
|
-
if component.is_provisioned:
|
740
|
-
cli_utils.declare(
|
741
|
-
f"Deprovisioning resources for {display_name} "
|
742
|
-
f"'{component.name}'."
|
743
|
-
)
|
744
|
-
component.deprovision()
|
745
|
-
else:
|
746
|
-
cli_utils.declare(
|
747
|
-
f"No provisioned resources found for {display_name} "
|
748
|
-
f"'{component.name}'."
|
749
|
-
)
|
750
|
-
|
751
|
-
return down_stack_component_command
|
752
|
-
|
753
|
-
|
754
584
|
def generate_stack_component_logs_command(
|
755
585
|
component_type: StackComponentType,
|
756
586
|
) -> Callable[[str, bool], None]:
|
@@ -1063,382 +893,6 @@ def generate_stack_component_flavor_delete_command(
|
|
1063
893
|
return delete_stack_component_flavor_command
|
1064
894
|
|
1065
895
|
|
1066
|
-
def generate_stack_component_deploy_command(
|
1067
|
-
component_type: StackComponentType,
|
1068
|
-
) -> Callable[
|
1069
|
-
[str, str, str, str, bool, Optional[List[str]], List[str]], None
|
1070
|
-
]:
|
1071
|
-
"""Generates a `deploy` command for the stack component type.
|
1072
|
-
|
1073
|
-
Args:
|
1074
|
-
component_type: Type of the component to generate the command for.
|
1075
|
-
|
1076
|
-
Returns:
|
1077
|
-
A function that can be used as a `click` command.
|
1078
|
-
"""
|
1079
|
-
display_name = _component_display_name(component_type)
|
1080
|
-
|
1081
|
-
@click.argument(
|
1082
|
-
"name",
|
1083
|
-
type=str,
|
1084
|
-
)
|
1085
|
-
@click.option(
|
1086
|
-
"--flavor",
|
1087
|
-
"-f",
|
1088
|
-
"flavor",
|
1089
|
-
help=f"The flavor of the {display_name} to deploy.",
|
1090
|
-
required=True,
|
1091
|
-
type=str,
|
1092
|
-
)
|
1093
|
-
@click.option(
|
1094
|
-
"--provider",
|
1095
|
-
"-p",
|
1096
|
-
"provider",
|
1097
|
-
required=True,
|
1098
|
-
type=click.Choice(STACK_RECIPE_MODULAR_RECIPES),
|
1099
|
-
help="The cloud (or local provider) to use to deploy the stack component.",
|
1100
|
-
)
|
1101
|
-
@click.option(
|
1102
|
-
"--region",
|
1103
|
-
"-r",
|
1104
|
-
"region",
|
1105
|
-
required=True,
|
1106
|
-
type=str,
|
1107
|
-
help="The region to deploy the stack component to.",
|
1108
|
-
)
|
1109
|
-
@click.option(
|
1110
|
-
"--debug-mode",
|
1111
|
-
"-d",
|
1112
|
-
"debug_mode",
|
1113
|
-
is_flag=True,
|
1114
|
-
default=False,
|
1115
|
-
help="Whether to deploy the stack component in debug mode.",
|
1116
|
-
)
|
1117
|
-
@click.option(
|
1118
|
-
"--extra-config",
|
1119
|
-
"-x",
|
1120
|
-
"extra_config",
|
1121
|
-
multiple=True,
|
1122
|
-
help="Extra configurations as key=value pairs. This option can be "
|
1123
|
-
"used multiple times.",
|
1124
|
-
)
|
1125
|
-
@click.option(
|
1126
|
-
"--tags",
|
1127
|
-
"-t",
|
1128
|
-
"tags",
|
1129
|
-
required=False,
|
1130
|
-
type=click.STRING,
|
1131
|
-
help="Pass one or more tags.",
|
1132
|
-
multiple=True,
|
1133
|
-
)
|
1134
|
-
def deploy_stack_component_command(
|
1135
|
-
name: str,
|
1136
|
-
flavor: str,
|
1137
|
-
provider: str,
|
1138
|
-
region: str,
|
1139
|
-
debug_mode: bool = False,
|
1140
|
-
tags: Optional[List[str]] = None,
|
1141
|
-
extra_config: List[str] = [],
|
1142
|
-
) -> None:
|
1143
|
-
"""Deploy a stack component.
|
1144
|
-
|
1145
|
-
This function also registers the newly-deployed component.
|
1146
|
-
|
1147
|
-
Args:
|
1148
|
-
name: Name of the component to register.
|
1149
|
-
flavor: Flavor of the component to register.
|
1150
|
-
provider: Cloud provider (or local) to use to deploy the stack
|
1151
|
-
component.
|
1152
|
-
region: Region to deploy the stack component to.
|
1153
|
-
debug_mode: Whether to deploy the stack component in debug mode.
|
1154
|
-
tags: Tags to be added to the component.
|
1155
|
-
extra_config: Extra configuration values to be added to the
|
1156
|
-
"""
|
1157
|
-
with track_handler(
|
1158
|
-
event=AnalyticsEvent.DEPLOY_STACK_COMPONENT,
|
1159
|
-
) as analytics_handler:
|
1160
|
-
client = Client()
|
1161
|
-
try:
|
1162
|
-
# raise error if user already has a component with the same name
|
1163
|
-
client.get_stack_component(
|
1164
|
-
component_type=component_type,
|
1165
|
-
name_id_or_prefix=name,
|
1166
|
-
allow_name_prefix_match=False,
|
1167
|
-
)
|
1168
|
-
cli_utils.error(
|
1169
|
-
f"A stack component of type '{component_type.value}' with "
|
1170
|
-
f"the name '{name}' already exists. Please try again with "
|
1171
|
-
f"a different component name."
|
1172
|
-
)
|
1173
|
-
except KeyError:
|
1174
|
-
pass
|
1175
|
-
from mlstacks.constants import ALLOWED_FLAVORS
|
1176
|
-
|
1177
|
-
if flavor not in ALLOWED_FLAVORS[component_type.value]:
|
1178
|
-
cli_utils.error(
|
1179
|
-
f"Flavor '{flavor}' is not supported for "
|
1180
|
-
f"{_component_display_name(component_type, True)}. "
|
1181
|
-
"Allowed flavors are: "
|
1182
|
-
f"{', '.join(ALLOWED_FLAVORS[component_type.value])}."
|
1183
|
-
)
|
1184
|
-
|
1185
|
-
# for cases like artifact store and container
|
1186
|
-
# registry the flavor is the same as the cloud
|
1187
|
-
if flavor in {"s3", "sagemaker", "aws"} and provider != "aws":
|
1188
|
-
cli_utils.error(
|
1189
|
-
f"Flavor '{flavor}' is not supported for "
|
1190
|
-
f"{_component_display_name(component_type, True)} on "
|
1191
|
-
f"{provider}."
|
1192
|
-
)
|
1193
|
-
elif flavor in {"vertex", "gcp"} and provider != "gcp":
|
1194
|
-
cli_utils.error(
|
1195
|
-
f"Flavor '{flavor}' is not supported for "
|
1196
|
-
f"{_component_display_name(component_type, True)} on "
|
1197
|
-
f"{provider}."
|
1198
|
-
)
|
1199
|
-
|
1200
|
-
# if the cloud is gcp, project_id is required
|
1201
|
-
extra_config_obj = (
|
1202
|
-
dict(config.split("=") for config in extra_config)
|
1203
|
-
if extra_config
|
1204
|
-
else {}
|
1205
|
-
)
|
1206
|
-
if provider == "gcp" and "project_id" not in extra_config_obj:
|
1207
|
-
cli_utils.error(
|
1208
|
-
"Missing Project ID. You must pass your GCP project ID to "
|
1209
|
-
"the deploy command as part of the `--extra_config` option."
|
1210
|
-
)
|
1211
|
-
cli_utils.declare("Checking prerequisites are installed...")
|
1212
|
-
cli_utils.verify_mlstacks_prerequisites_installation()
|
1213
|
-
from mlstacks.utils import zenml_utils
|
1214
|
-
|
1215
|
-
cli_utils.warning(ALPHA_MESSAGE)
|
1216
|
-
cli_params = {
|
1217
|
-
"provider": provider,
|
1218
|
-
"region": region,
|
1219
|
-
"stack_name": "".join(
|
1220
|
-
random.choice(string.ascii_letters + string.digits)
|
1221
|
-
for _ in range(5)
|
1222
|
-
),
|
1223
|
-
"tags": tags,
|
1224
|
-
"extra_config": list(extra_config),
|
1225
|
-
"file": None,
|
1226
|
-
"debug_mode": debug_mode,
|
1227
|
-
component_type.value: flavor,
|
1228
|
-
}
|
1229
|
-
if component_type == StackComponentType.ARTIFACT_STORE:
|
1230
|
-
cli_params["extra_config"].append(f"bucket_name={name}") # type: ignore[union-attr]
|
1231
|
-
stack, components = convert_click_params_to_mlstacks_primitives(
|
1232
|
-
cli_params, zenml_component_deploy=True
|
1233
|
-
)
|
1234
|
-
|
1235
|
-
analytics_handler.metadata = {
|
1236
|
-
"flavor": flavor,
|
1237
|
-
"provider": provider,
|
1238
|
-
"debug_mode": debug_mode,
|
1239
|
-
"component_type": component_type.value,
|
1240
|
-
}
|
1241
|
-
|
1242
|
-
cli_utils.declare("Checking flavor compatibility...")
|
1243
|
-
if not zenml_utils.has_valid_flavor_combinations(
|
1244
|
-
stack, components
|
1245
|
-
):
|
1246
|
-
cli_utils.error(
|
1247
|
-
"The specified stack and component flavors are not "
|
1248
|
-
"compatible with the provider or with one another. "
|
1249
|
-
"Please try again."
|
1250
|
-
)
|
1251
|
-
|
1252
|
-
stack_dict, component_dicts = convert_mlstacks_primitives_to_dicts(
|
1253
|
-
stack, components
|
1254
|
-
)
|
1255
|
-
# write the stack and component yaml files
|
1256
|
-
from mlstacks.constants import MLSTACKS_PACKAGE_NAME
|
1257
|
-
|
1258
|
-
spec_dir = os.path.join(
|
1259
|
-
click.get_app_dir(MLSTACKS_PACKAGE_NAME),
|
1260
|
-
"stack_specs",
|
1261
|
-
stack.name,
|
1262
|
-
)
|
1263
|
-
cli_utils.declare(f"Writing spec files to {spec_dir}...")
|
1264
|
-
create_dir_recursive_if_not_exists(spec_dir)
|
1265
|
-
|
1266
|
-
stack_file_path = os.path.join(
|
1267
|
-
spec_dir, f"stack-{stack.name}.yaml"
|
1268
|
-
)
|
1269
|
-
write_yaml(file_path=stack_file_path, contents=stack_dict)
|
1270
|
-
for component in component_dicts:
|
1271
|
-
write_yaml(
|
1272
|
-
file_path=os.path.join(
|
1273
|
-
spec_dir, f"{component['name']}.yaml"
|
1274
|
-
),
|
1275
|
-
contents=component,
|
1276
|
-
)
|
1277
|
-
|
1278
|
-
from mlstacks.utils import terraform_utils
|
1279
|
-
|
1280
|
-
cli_utils.declare("Deploying stack using Terraform...")
|
1281
|
-
terraform_utils.deploy_stack(
|
1282
|
-
stack_file_path, debug_mode=debug_mode
|
1283
|
-
)
|
1284
|
-
cli_utils.declare("Stack successfully deployed.")
|
1285
|
-
|
1286
|
-
stack_name: str = cli_params["stack_name"] # type: ignore[assignment]
|
1287
|
-
cli_utils.declare(
|
1288
|
-
f"Importing {component_type.value} component '{name}' into ZenML..."
|
1289
|
-
)
|
1290
|
-
import_new_mlstacks_component(
|
1291
|
-
stack_name=stack_name,
|
1292
|
-
component_name=name,
|
1293
|
-
provider=stack.provider,
|
1294
|
-
stack_spec_dir=spec_dir,
|
1295
|
-
)
|
1296
|
-
cli_utils.declare("Component successfully imported into ZenML.")
|
1297
|
-
|
1298
|
-
return deploy_stack_component_command
|
1299
|
-
|
1300
|
-
|
1301
|
-
def generate_stack_component_destroy_command(
|
1302
|
-
component_type: StackComponentType,
|
1303
|
-
) -> Callable[[str, str, bool], None]:
|
1304
|
-
"""Generates a `destroy` command for the stack component type.
|
1305
|
-
|
1306
|
-
Args:
|
1307
|
-
component_type: Type of the component to generate the command for.
|
1308
|
-
|
1309
|
-
Returns:
|
1310
|
-
A function that can be used as a `click` command.
|
1311
|
-
"""
|
1312
|
-
_component_display_name(component_type)
|
1313
|
-
|
1314
|
-
@click.argument(
|
1315
|
-
"name_id_or_prefix",
|
1316
|
-
type=str,
|
1317
|
-
required=True,
|
1318
|
-
)
|
1319
|
-
@click.option(
|
1320
|
-
"--provider",
|
1321
|
-
"-p",
|
1322
|
-
"provider",
|
1323
|
-
type=click.Choice(["aws", "k3d", "gcp"]),
|
1324
|
-
required=True,
|
1325
|
-
)
|
1326
|
-
@click.option(
|
1327
|
-
"--debug-mode",
|
1328
|
-
"-d",
|
1329
|
-
"debug_mode",
|
1330
|
-
is_flag=True,
|
1331
|
-
default=False,
|
1332
|
-
help="Whether to destroy the stack component in debug mode.",
|
1333
|
-
)
|
1334
|
-
def destroy_stack_component_command(
|
1335
|
-
name_id_or_prefix: str,
|
1336
|
-
provider: str,
|
1337
|
-
debug_mode: bool = False,
|
1338
|
-
) -> None:
|
1339
|
-
"""Destroy a stack component.
|
1340
|
-
|
1341
|
-
Args:
|
1342
|
-
name_id_or_prefix: Name, ID or prefix of the component to destroy.
|
1343
|
-
provider: Cloud provider (or local) where the stack was deployed.
|
1344
|
-
debug_mode: Whether to destroy the stack component in debug mode.
|
1345
|
-
"""
|
1346
|
-
with track_handler(
|
1347
|
-
event=AnalyticsEvent.DESTROY_STACK_COMPONENT,
|
1348
|
-
) as analytics_handler:
|
1349
|
-
analytics_handler.metadata = {
|
1350
|
-
"provider": provider,
|
1351
|
-
"component_type": component_type.value,
|
1352
|
-
"debug_mode": debug_mode,
|
1353
|
-
}
|
1354
|
-
client = Client()
|
1355
|
-
|
1356
|
-
try:
|
1357
|
-
component = client.get_stack_component(
|
1358
|
-
name_id_or_prefix=name_id_or_prefix,
|
1359
|
-
component_type=component_type,
|
1360
|
-
allow_name_prefix_match=False,
|
1361
|
-
)
|
1362
|
-
except KeyError:
|
1363
|
-
cli_utils.error(
|
1364
|
-
"Could not find a stack component with name or id "
|
1365
|
-
f"'{name_id_or_prefix}'.",
|
1366
|
-
)
|
1367
|
-
|
1368
|
-
# Check if the component was created by a recipe
|
1369
|
-
if not component.component_spec_path:
|
1370
|
-
cli_utils.error(
|
1371
|
-
f"Cannot destroy stack component {component.name}. It "
|
1372
|
-
"was not created by a recipe.",
|
1373
|
-
)
|
1374
|
-
|
1375
|
-
cli_utils.verify_mlstacks_prerequisites_installation()
|
1376
|
-
from mlstacks.constants import MLSTACKS_PACKAGE_NAME
|
1377
|
-
|
1378
|
-
# spec_files_dir: str = component.component_spec_path
|
1379
|
-
component_spec_path: str = component.component_spec_path
|
1380
|
-
stack_name: str = os.path.basename(
|
1381
|
-
os.path.dirname(component_spec_path)
|
1382
|
-
)
|
1383
|
-
stack_spec_path: str = os.path.join(
|
1384
|
-
os.path.dirname(component_spec_path),
|
1385
|
-
f"stack-{stack_name}.yaml",
|
1386
|
-
)
|
1387
|
-
tf_definitions_path: str = os.path.join(
|
1388
|
-
click.get_app_dir(MLSTACKS_PACKAGE_NAME),
|
1389
|
-
"terraform",
|
1390
|
-
f"{provider}-modular",
|
1391
|
-
)
|
1392
|
-
|
1393
|
-
cli_utils.declare(
|
1394
|
-
"Checking Terraform definitions and spec files are present..."
|
1395
|
-
)
|
1396
|
-
verify_spec_and_tf_files_exist(
|
1397
|
-
stack_spec_path, tf_definitions_path
|
1398
|
-
)
|
1399
|
-
|
1400
|
-
from mlstacks.utils import terraform_utils
|
1401
|
-
|
1402
|
-
cli_utils.declare(
|
1403
|
-
f"Destroying component '{component.name}' using Terraform..."
|
1404
|
-
)
|
1405
|
-
terraform_utils.destroy_stack(
|
1406
|
-
stack_path=stack_spec_path, debug_mode=debug_mode
|
1407
|
-
)
|
1408
|
-
cli_utils.declare(
|
1409
|
-
f"Component '{component.name}' successfully destroyed."
|
1410
|
-
)
|
1411
|
-
|
1412
|
-
if cli_utils.confirmation(
|
1413
|
-
f"Would you like to delete the associated ZenML "
|
1414
|
-
f"component '{component.name}'?\nThis will delete the stack "
|
1415
|
-
"component registered with ZenML."
|
1416
|
-
):
|
1417
|
-
client.delete_stack_component(
|
1418
|
-
name_id_or_prefix=component.id,
|
1419
|
-
component_type=component.type,
|
1420
|
-
)
|
1421
|
-
cli_utils.declare(
|
1422
|
-
f"Component '{component.name}' successfully deleted from ZenML."
|
1423
|
-
)
|
1424
|
-
|
1425
|
-
spec_dir = os.path.dirname(stack_spec_path)
|
1426
|
-
if cli_utils.confirmation(
|
1427
|
-
f"Would you like to delete the `mlstacks` spec directory for "
|
1428
|
-
f"this component, located at {spec_dir}?"
|
1429
|
-
):
|
1430
|
-
fileio.rmtree(spec_dir)
|
1431
|
-
cli_utils.declare(
|
1432
|
-
f"Spec directory for component '{component.name}' successfully "
|
1433
|
-
"deleted."
|
1434
|
-
)
|
1435
|
-
cli_utils.declare(
|
1436
|
-
f"Component '{component.name}' successfully destroyed."
|
1437
|
-
)
|
1438
|
-
|
1439
|
-
return destroy_stack_component_command
|
1440
|
-
|
1441
|
-
|
1442
896
|
def prompt_select_resource_id(
|
1443
897
|
resource_ids: List[str],
|
1444
898
|
resource_name: str,
|
@@ -1788,22 +1242,6 @@ def register_single_stack_component_cli_commands(
|
|
1788
1242
|
"copy", help=f"Copy a registered {singular_display_name}."
|
1789
1243
|
)(copy_command)
|
1790
1244
|
|
1791
|
-
# zenml stack-component up
|
1792
|
-
up_command = generate_stack_component_up_command(component_type)
|
1793
|
-
command_group.command(
|
1794
|
-
"up",
|
1795
|
-
help=f"Provisions or resumes local resources for the "
|
1796
|
-
f"{singular_display_name} if possible.",
|
1797
|
-
)(up_command)
|
1798
|
-
|
1799
|
-
# zenml stack-component down
|
1800
|
-
down_command = generate_stack_component_down_command(component_type)
|
1801
|
-
command_group.command(
|
1802
|
-
"down",
|
1803
|
-
help=f"Suspends resources of the local {singular_display_name} "
|
1804
|
-
f"deployment.",
|
1805
|
-
)(down_command)
|
1806
|
-
|
1807
1245
|
# zenml stack-component logs
|
1808
1246
|
logs_command = generate_stack_component_logs_command(component_type)
|
1809
1247
|
command_group.command(
|
@@ -1832,22 +1270,6 @@ def register_single_stack_component_cli_commands(
|
|
1832
1270
|
"explain", help=f"Explaining the {plural_display_name}."
|
1833
1271
|
)(explain_command)
|
1834
1272
|
|
1835
|
-
# zenml stack-component deploy
|
1836
|
-
deploy_command = generate_stack_component_deploy_command(component_type)
|
1837
|
-
context_settings = {"ignore_unknown_options": True}
|
1838
|
-
command_group.command(
|
1839
|
-
"deploy",
|
1840
|
-
context_settings=context_settings,
|
1841
|
-
help=f"Deploy a new {singular_display_name}.",
|
1842
|
-
)(deploy_command)
|
1843
|
-
|
1844
|
-
# zenml stack-component destroy
|
1845
|
-
destroy_command = generate_stack_component_destroy_command(component_type)
|
1846
|
-
command_group.command(
|
1847
|
-
"destroy",
|
1848
|
-
help=f"Destroy an existing {singular_display_name}.",
|
1849
|
-
)(destroy_command)
|
1850
|
-
|
1851
1273
|
# zenml stack-component flavor
|
1852
1274
|
@command_group.group(
|
1853
1275
|
"flavor", help=f"Commands to interact with {plural_display_name}."
|