zenml-nightly 0.58.2.dev20240617__py3-none-any.whl → 0.58.2.dev20240619__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.
Files changed (312) hide show
  1. zenml/VERSION +1 -1
  2. zenml/_hub/client.py +8 -5
  3. zenml/actions/base_action.py +8 -10
  4. zenml/artifact_stores/base_artifact_store.py +20 -15
  5. zenml/artifact_stores/local_artifact_store.py +3 -2
  6. zenml/artifacts/artifact_config.py +34 -19
  7. zenml/artifacts/external_artifact.py +18 -8
  8. zenml/artifacts/external_artifact_config.py +14 -6
  9. zenml/artifacts/unmaterialized_artifact.py +2 -11
  10. zenml/cli/__init__.py +6 -0
  11. zenml/cli/artifact.py +20 -2
  12. zenml/cli/served_model.py +0 -1
  13. zenml/cli/server.py +3 -3
  14. zenml/cli/utils.py +36 -40
  15. zenml/cli/web_login.py +2 -2
  16. zenml/client.py +198 -24
  17. zenml/client_lazy_loader.py +20 -14
  18. zenml/config/base_settings.py +5 -6
  19. zenml/config/build_configuration.py +1 -1
  20. zenml/config/compiler.py +3 -3
  21. zenml/config/docker_settings.py +27 -28
  22. zenml/config/global_config.py +33 -37
  23. zenml/config/pipeline_configurations.py +8 -11
  24. zenml/config/pipeline_run_configuration.py +6 -2
  25. zenml/config/pipeline_spec.py +3 -4
  26. zenml/config/resource_settings.py +8 -9
  27. zenml/config/schedule.py +16 -20
  28. zenml/config/secret_reference_mixin.py +6 -3
  29. zenml/config/secrets_store_config.py +16 -23
  30. zenml/config/server_config.py +50 -46
  31. zenml/config/settings_resolver.py +1 -1
  32. zenml/config/source.py +45 -35
  33. zenml/config/step_configurations.py +53 -31
  34. zenml/config/step_run_info.py +3 -0
  35. zenml/config/store_config.py +20 -19
  36. zenml/config/strict_base_model.py +2 -6
  37. zenml/constants.py +26 -2
  38. zenml/container_registries/base_container_registry.py +3 -2
  39. zenml/container_registries/default_container_registry.py +3 -3
  40. zenml/event_hub/base_event_hub.py +1 -1
  41. zenml/event_sources/base_event_source.py +11 -16
  42. zenml/exceptions.py +4 -0
  43. zenml/integrations/airflow/__init__.py +2 -6
  44. zenml/integrations/airflow/flavors/airflow_orchestrator_flavor.py +6 -7
  45. zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +13 -249
  46. zenml/integrations/airflow/orchestrators/dag_generator.py +5 -3
  47. zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +5 -4
  48. zenml/integrations/aws/__init__.py +1 -1
  49. zenml/integrations/aws/flavors/aws_container_registry_flavor.py +3 -2
  50. zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +11 -5
  51. zenml/integrations/aws/flavors/sagemaker_step_operator_flavor.py +6 -2
  52. zenml/integrations/aws/service_connectors/aws_service_connector.py +5 -4
  53. zenml/integrations/aws/step_operators/sagemaker_step_operator.py +1 -1
  54. zenml/integrations/azure/flavors/azureml_step_operator_flavor.py +4 -4
  55. zenml/integrations/azure/service_connectors/azure_service_connector.py +4 -3
  56. zenml/integrations/azure/step_operators/azureml_step_operator.py +2 -1
  57. zenml/integrations/bentoml/steps/bentoml_deployer.py +1 -1
  58. zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +8 -12
  59. zenml/integrations/comet/flavors/comet_experiment_tracker_flavor.py +1 -1
  60. zenml/integrations/constants.py +0 -1
  61. zenml/integrations/deepchecks/__init__.py +1 -0
  62. zenml/integrations/evidently/__init__.py +5 -3
  63. zenml/integrations/evidently/column_mapping.py +11 -3
  64. zenml/integrations/evidently/data_validators/evidently_data_validator.py +21 -3
  65. zenml/integrations/evidently/metrics.py +5 -6
  66. zenml/integrations/evidently/tests.py +5 -6
  67. zenml/integrations/facets/models.py +2 -6
  68. zenml/integrations/feast/__init__.py +3 -1
  69. zenml/integrations/feast/feature_stores/feast_feature_store.py +0 -23
  70. zenml/integrations/gcp/__init__.py +1 -1
  71. zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py +1 -1
  72. zenml/integrations/gcp/flavors/vertex_step_operator_flavor.py +1 -1
  73. zenml/integrations/gcp/orchestrators/vertex_orchestrator.py +234 -103
  74. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +57 -42
  75. zenml/integrations/gcp/step_operators/vertex_step_operator.py +1 -0
  76. zenml/integrations/github/code_repositories/github_code_repository.py +1 -1
  77. zenml/integrations/github/plugins/event_sources/github_webhook_event_source.py +9 -13
  78. zenml/integrations/great_expectations/__init__.py +1 -1
  79. zenml/integrations/great_expectations/data_validators/ge_data_validator.py +44 -44
  80. zenml/integrations/great_expectations/flavors/great_expectations_data_validator_flavor.py +35 -2
  81. zenml/integrations/great_expectations/ge_store_backend.py +24 -11
  82. zenml/integrations/great_expectations/materializers/ge_materializer.py +3 -3
  83. zenml/integrations/great_expectations/utils.py +5 -5
  84. zenml/integrations/huggingface/__init__.py +3 -0
  85. zenml/integrations/huggingface/flavors/huggingface_model_deployer_flavor.py +1 -1
  86. zenml/integrations/huggingface/steps/__init__.py +3 -0
  87. zenml/integrations/huggingface/steps/accelerate_runner.py +149 -0
  88. zenml/integrations/huggingface/steps/huggingface_deployer.py +2 -2
  89. zenml/integrations/hyperai/flavors/hyperai_orchestrator_flavor.py +1 -1
  90. zenml/integrations/hyperai/service_connectors/hyperai_service_connector.py +4 -3
  91. zenml/integrations/kubeflow/__init__.py +1 -1
  92. zenml/integrations/kubeflow/flavors/kubeflow_orchestrator_flavor.py +48 -81
  93. zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py +295 -245
  94. zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +1 -1
  95. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +11 -2
  96. zenml/integrations/kubernetes/pod_settings.py +17 -31
  97. zenml/integrations/kubernetes/service_connectors/kubernetes_service_connector.py +8 -7
  98. zenml/integrations/label_studio/__init__.py +1 -3
  99. zenml/integrations/label_studio/annotators/label_studio_annotator.py +3 -4
  100. zenml/integrations/label_studio/flavors/label_studio_annotator_flavor.py +2 -2
  101. zenml/integrations/langchain/__init__.py +5 -1
  102. zenml/integrations/langchain/materializers/document_materializer.py +44 -8
  103. zenml/integrations/mlflow/__init__.py +9 -3
  104. zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +1 -1
  105. zenml/integrations/mlflow/flavors/mlflow_experiment_tracker_flavor.py +29 -37
  106. zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +4 -4
  107. zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
  108. zenml/integrations/neptune/flavors/neptune_experiment_tracker_flavor.py +1 -1
  109. zenml/integrations/neural_prophet/__init__.py +5 -1
  110. zenml/integrations/pigeon/flavors/pigeon_annotator_flavor.py +1 -1
  111. zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +9 -8
  112. zenml/integrations/seldon/seldon_client.py +52 -67
  113. zenml/integrations/seldon/services/seldon_deployment.py +3 -3
  114. zenml/integrations/seldon/steps/seldon_deployer.py +4 -4
  115. zenml/integrations/skypilot/flavors/skypilot_orchestrator_base_vm_config.py +15 -5
  116. zenml/integrations/skypilot_aws/__init__.py +1 -1
  117. zenml/integrations/skypilot_aws/flavors/skypilot_orchestrator_aws_vm_flavor.py +1 -1
  118. zenml/integrations/skypilot_azure/__init__.py +1 -1
  119. zenml/integrations/skypilot_azure/flavors/skypilot_orchestrator_azure_vm_flavor.py +1 -1
  120. zenml/integrations/skypilot_gcp/__init__.py +2 -1
  121. zenml/integrations/skypilot_gcp/flavors/skypilot_orchestrator_gcp_vm_flavor.py +1 -1
  122. zenml/integrations/skypilot_lambda/flavors/skypilot_orchestrator_lambda_vm_flavor.py +2 -2
  123. zenml/integrations/spark/flavors/spark_step_operator_flavor.py +1 -1
  124. zenml/integrations/spark/step_operators/spark_step_operator.py +2 -0
  125. zenml/integrations/tekton/__init__.py +1 -1
  126. zenml/integrations/tekton/flavors/tekton_orchestrator_flavor.py +66 -23
  127. zenml/integrations/tekton/orchestrators/tekton_orchestrator.py +547 -233
  128. zenml/integrations/tensorboard/__init__.py +1 -12
  129. zenml/integrations/tensorboard/services/tensorboard_service.py +3 -5
  130. zenml/integrations/tensorboard/visualizers/tensorboard_visualizer.py +6 -6
  131. zenml/integrations/tensorflow/__init__.py +2 -10
  132. zenml/integrations/tensorflow/materializers/keras_materializer.py +17 -9
  133. zenml/integrations/wandb/flavors/wandb_experiment_tracker_flavor.py +9 -14
  134. zenml/integrations/whylogs/flavors/whylogs_data_validator_flavor.py +1 -1
  135. zenml/lineage_graph/lineage_graph.py +1 -1
  136. zenml/logging/step_logging.py +15 -7
  137. zenml/materializers/built_in_materializer.py +3 -3
  138. zenml/materializers/pydantic_materializer.py +2 -2
  139. zenml/metadata/lazy_load.py +4 -4
  140. zenml/metadata/metadata_types.py +64 -4
  141. zenml/model/model.py +79 -54
  142. zenml/model_deployers/base_model_deployer.py +14 -12
  143. zenml/model_registries/base_model_registry.py +17 -15
  144. zenml/models/__init__.py +79 -206
  145. zenml/models/v2/base/base.py +54 -41
  146. zenml/models/v2/base/base_plugin_flavor.py +2 -6
  147. zenml/models/v2/base/filter.py +91 -76
  148. zenml/models/v2/base/page.py +2 -12
  149. zenml/models/v2/base/scoped.py +4 -7
  150. zenml/models/v2/core/api_key.py +22 -8
  151. zenml/models/v2/core/artifact.py +2 -2
  152. zenml/models/v2/core/artifact_version.py +74 -40
  153. zenml/models/v2/core/code_repository.py +37 -10
  154. zenml/models/v2/core/component.py +65 -16
  155. zenml/models/v2/core/device.py +14 -4
  156. zenml/models/v2/core/event_source.py +1 -2
  157. zenml/models/v2/core/flavor.py +74 -8
  158. zenml/models/v2/core/logs.py +68 -8
  159. zenml/models/v2/core/model.py +8 -4
  160. zenml/models/v2/core/model_version.py +25 -6
  161. zenml/models/v2/core/model_version_artifact.py +51 -21
  162. zenml/models/v2/core/model_version_pipeline_run.py +45 -13
  163. zenml/models/v2/core/pipeline.py +37 -72
  164. zenml/models/v2/core/pipeline_build.py +29 -17
  165. zenml/models/v2/core/pipeline_deployment.py +18 -6
  166. zenml/models/v2/core/pipeline_namespace.py +113 -0
  167. zenml/models/v2/core/pipeline_run.py +50 -22
  168. zenml/models/v2/core/run_metadata.py +59 -36
  169. zenml/models/v2/core/schedule.py +37 -24
  170. zenml/models/v2/core/secret.py +31 -12
  171. zenml/models/v2/core/service.py +64 -36
  172. zenml/models/v2/core/service_account.py +24 -11
  173. zenml/models/v2/core/service_connector.py +219 -44
  174. zenml/models/v2/core/stack.py +45 -17
  175. zenml/models/v2/core/step_run.py +28 -8
  176. zenml/models/v2/core/tag.py +8 -4
  177. zenml/models/v2/core/trigger.py +2 -2
  178. zenml/models/v2/core/trigger_execution.py +1 -0
  179. zenml/models/v2/core/user.py +18 -21
  180. zenml/models/v2/core/workspace.py +13 -3
  181. zenml/models/v2/misc/build_item.py +3 -3
  182. zenml/models/v2/misc/external_user.py +2 -6
  183. zenml/models/v2/misc/hub_plugin_models.py +9 -9
  184. zenml/models/v2/misc/loaded_visualization.py +2 -2
  185. zenml/models/v2/misc/service_connector_type.py +8 -17
  186. zenml/models/v2/misc/user_auth.py +7 -2
  187. zenml/new/pipelines/build_utils.py +3 -3
  188. zenml/new/pipelines/pipeline.py +17 -13
  189. zenml/new/pipelines/run_utils.py +103 -1
  190. zenml/orchestrators/base_orchestrator.py +10 -7
  191. zenml/orchestrators/local_docker/local_docker_orchestrator.py +1 -1
  192. zenml/orchestrators/step_launcher.py +28 -4
  193. zenml/orchestrators/step_runner.py +3 -6
  194. zenml/orchestrators/utils.py +1 -1
  195. zenml/plugins/base_plugin_flavor.py +6 -10
  196. zenml/plugins/plugin_flavor_registry.py +3 -7
  197. zenml/secret/base_secret.py +7 -8
  198. zenml/service_connectors/docker_service_connector.py +4 -3
  199. zenml/service_connectors/service_connector.py +5 -12
  200. zenml/service_connectors/service_connector_registry.py +2 -4
  201. zenml/services/container/container_service.py +1 -1
  202. zenml/services/container/container_service_endpoint.py +1 -1
  203. zenml/services/local/local_service.py +1 -1
  204. zenml/services/local/local_service_endpoint.py +1 -1
  205. zenml/services/service.py +16 -10
  206. zenml/services/service_type.py +4 -5
  207. zenml/services/terraform/terraform_service.py +1 -1
  208. zenml/stack/flavor.py +1 -5
  209. zenml/stack/flavor_registry.py +4 -4
  210. zenml/stack/stack.py +4 -1
  211. zenml/stack/stack_component.py +55 -31
  212. zenml/step_operators/step_operator_entrypoint_configuration.py +1 -0
  213. zenml/steps/base_step.py +34 -28
  214. zenml/steps/entrypoint_function_utils.py +3 -5
  215. zenml/steps/utils.py +12 -14
  216. zenml/utils/cuda_utils.py +50 -0
  217. zenml/utils/deprecation_utils.py +18 -20
  218. zenml/utils/dict_utils.py +1 -1
  219. zenml/utils/filesync_model.py +65 -28
  220. zenml/utils/function_utils.py +260 -0
  221. zenml/utils/json_utils.py +131 -0
  222. zenml/utils/mlstacks_utils.py +2 -2
  223. zenml/utils/pipeline_docker_image_builder.py +9 -0
  224. zenml/utils/pydantic_utils.py +270 -62
  225. zenml/utils/secret_utils.py +65 -12
  226. zenml/utils/source_utils.py +2 -2
  227. zenml/utils/typed_model.py +5 -3
  228. zenml/utils/typing_utils.py +243 -0
  229. zenml/utils/yaml_utils.py +1 -1
  230. zenml/zen_server/auth.py +2 -2
  231. zenml/zen_server/cloud_utils.py +6 -6
  232. zenml/zen_server/deploy/base_provider.py +1 -1
  233. zenml/zen_server/deploy/deployment.py +6 -8
  234. zenml/zen_server/deploy/docker/docker_zen_server.py +3 -4
  235. zenml/zen_server/deploy/local/local_provider.py +0 -1
  236. zenml/zen_server/deploy/local/local_zen_server.py +6 -6
  237. zenml/zen_server/deploy/terraform/terraform_zen_server.py +4 -6
  238. zenml/zen_server/exceptions.py +4 -1
  239. zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
  240. zenml/zen_server/pipeline_deployment/utils.py +48 -68
  241. zenml/zen_server/rbac/models.py +2 -5
  242. zenml/zen_server/rbac/utils.py +11 -14
  243. zenml/zen_server/routers/auth_endpoints.py +2 -2
  244. zenml/zen_server/routers/pipeline_builds_endpoints.py +1 -1
  245. zenml/zen_server/routers/runs_endpoints.py +1 -1
  246. zenml/zen_server/routers/secrets_endpoints.py +3 -2
  247. zenml/zen_server/routers/server_endpoints.py +1 -1
  248. zenml/zen_server/routers/steps_endpoints.py +1 -1
  249. zenml/zen_server/routers/workspaces_endpoints.py +1 -1
  250. zenml/zen_stores/base_zen_store.py +46 -9
  251. zenml/zen_stores/migrations/utils.py +42 -46
  252. zenml/zen_stores/migrations/versions/0701da9951a0_added_service_table.py +1 -1
  253. zenml/zen_stores/migrations/versions/1041bc644e0d_remove_secrets_manager.py +5 -3
  254. zenml/zen_stores/migrations/versions/10a907dad202_delete_mlmd_tables.py +1 -1
  255. zenml/zen_stores/migrations/versions/26b776ad583e_redesign_artifacts.py +8 -10
  256. zenml/zen_stores/migrations/versions/37835ce041d2_optimizing_database.py +3 -3
  257. zenml/zen_stores/migrations/versions/46506f72f0ed_add_server_settings.py +10 -12
  258. zenml/zen_stores/migrations/versions/5994f9ad0489_introduce_role_permissions.py +3 -2
  259. zenml/zen_stores/migrations/versions/6917bce75069_add_pipeline_run_unique_constraint.py +4 -4
  260. zenml/zen_stores/migrations/versions/728c6369cfaa_add_name_column_to_input_artifact_pk.py +3 -2
  261. zenml/zen_stores/migrations/versions/743ec82b1b3c_update_size_of_build_images.py +2 -2
  262. zenml/zen_stores/migrations/versions/7500f434b71c_remove_shared_columns.py +3 -2
  263. zenml/zen_stores/migrations/versions/7834208cc3f6_artifact_project_scoping.py +8 -7
  264. zenml/zen_stores/migrations/versions/7b651bf6822e_track_secrets_in_db.py +6 -4
  265. zenml/zen_stores/migrations/versions/7e4a481d17f7_add_identity_table.py +2 -2
  266. zenml/zen_stores/migrations/versions/7f603e583dd7_fixed_migration.py +1 -1
  267. zenml/zen_stores/migrations/versions/a39c4184c8ce_remove_secrets_manager_flavors.py +2 -2
  268. zenml/zen_stores/migrations/versions/a91762e6be36_artifact_version_table.py +4 -4
  269. zenml/zen_stores/migrations/versions/alembic_start.py +1 -1
  270. zenml/zen_stores/migrations/versions/fbd7f18ced1e_increase_step_run_field_lengths.py +4 -4
  271. zenml/zen_stores/rest_zen_store.py +109 -49
  272. zenml/zen_stores/schemas/api_key_schemas.py +1 -1
  273. zenml/zen_stores/schemas/artifact_schemas.py +8 -8
  274. zenml/zen_stores/schemas/artifact_visualization_schemas.py +3 -3
  275. zenml/zen_stores/schemas/code_repository_schemas.py +1 -1
  276. zenml/zen_stores/schemas/component_schemas.py +8 -3
  277. zenml/zen_stores/schemas/device_schemas.py +8 -6
  278. zenml/zen_stores/schemas/event_source_schemas.py +3 -4
  279. zenml/zen_stores/schemas/flavor_schemas.py +5 -3
  280. zenml/zen_stores/schemas/model_schemas.py +26 -1
  281. zenml/zen_stores/schemas/pipeline_build_schemas.py +1 -1
  282. zenml/zen_stores/schemas/pipeline_deployment_schemas.py +4 -4
  283. zenml/zen_stores/schemas/pipeline_run_schemas.py +6 -6
  284. zenml/zen_stores/schemas/pipeline_schemas.py +5 -2
  285. zenml/zen_stores/schemas/run_metadata_schemas.py +2 -2
  286. zenml/zen_stores/schemas/secret_schemas.py +8 -5
  287. zenml/zen_stores/schemas/server_settings_schemas.py +3 -1
  288. zenml/zen_stores/schemas/service_connector_schemas.py +1 -1
  289. zenml/zen_stores/schemas/service_schemas.py +11 -2
  290. zenml/zen_stores/schemas/stack_schemas.py +1 -1
  291. zenml/zen_stores/schemas/step_run_schemas.py +11 -11
  292. zenml/zen_stores/schemas/tag_schemas.py +6 -2
  293. zenml/zen_stores/schemas/trigger_schemas.py +2 -2
  294. zenml/zen_stores/schemas/user_schemas.py +2 -2
  295. zenml/zen_stores/schemas/workspace_schemas.py +3 -1
  296. zenml/zen_stores/secrets_stores/aws_secrets_store.py +19 -20
  297. zenml/zen_stores/secrets_stores/azure_secrets_store.py +17 -20
  298. zenml/zen_stores/secrets_stores/base_secrets_store.py +79 -12
  299. zenml/zen_stores/secrets_stores/gcp_secrets_store.py +17 -20
  300. zenml/zen_stores/secrets_stores/hashicorp_secrets_store.py +4 -8
  301. zenml/zen_stores/secrets_stores/service_connector_secrets_store.py +10 -7
  302. zenml/zen_stores/secrets_stores/sql_secrets_store.py +5 -6
  303. zenml/zen_stores/sql_zen_store.py +196 -120
  304. zenml/zen_stores/zen_store_interface.py +33 -0
  305. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/METADATA +9 -7
  306. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/RECORD +309 -306
  307. zenml/integrations/kubeflow/utils.py +0 -95
  308. zenml/models/v2/base/internal.py +0 -37
  309. zenml/models/v2/base/update.py +0 -44
  310. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/LICENSE +0 -0
  311. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/WHEEL +0 -0
  312. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/entry_points.txt +0 -0
@@ -17,11 +17,11 @@ import base64
17
17
  import json
18
18
  import re
19
19
  import time
20
- from typing import Any, Dict, Generator, List, Optional
20
+ from typing import Any, Dict, Generator, List, Literal, Optional
21
21
 
22
22
  from kubernetes import client as k8s_client
23
23
  from kubernetes import config as k8s_config
24
- from pydantic import BaseModel, Field, ValidationError
24
+ from pydantic import BaseModel, ConfigDict, Field, ValidationError
25
25
 
26
26
  from zenml.logger import get_logger
27
27
  from zenml.utils.enum_utils import StrEnum
@@ -30,9 +30,6 @@ logger = get_logger(__name__)
30
30
 
31
31
  api = k8s_client.ApiClient()
32
32
 
33
- SELDON_DEPLOYMENT_KIND = "SeldonDeployment"
34
- SELDON_DEPLOYMENT_API_VERSION = "machinelearning.seldon.io/v1"
35
-
36
33
 
37
34
  class SeldonDeploymentPredictorParameter(BaseModel):
38
35
  """Parameter for Seldon Deployment predictor.
@@ -46,14 +43,12 @@ class SeldonDeploymentPredictorParameter(BaseModel):
46
43
  name: str = ""
47
44
  type: str = ""
48
45
  value: str = ""
49
-
50
- class Config:
51
- """Pydantic configuration class."""
52
-
46
+ model_config = ConfigDict(
53
47
  # validate attribute assignments
54
- validate_assignment = True
48
+ validate_assignment=True,
55
49
  # Ignore extra attributes from the CRD that are not reflected here
56
- extra = "ignore"
50
+ extra="ignore",
51
+ )
57
52
 
58
53
 
59
54
  class SeldonResourceRequirements(BaseModel):
@@ -82,14 +77,12 @@ class SeldonDeploymentMetadata(BaseModel):
82
77
  labels: Dict[str, str] = Field(default_factory=dict)
83
78
  annotations: Dict[str, str] = Field(default_factory=dict)
84
79
  creationTimestamp: Optional[str] = None
85
-
86
- class Config:
87
- """Pydantic configuration class."""
88
-
80
+ model_config = ConfigDict(
89
81
  # validate attribute assignments
90
- validate_assignment = True
82
+ validate_assignment=True,
91
83
  # Ignore extra attributes from the CRD that are not reflected here
92
- extra = "ignore"
84
+ extra="ignore",
85
+ )
93
86
 
94
87
 
95
88
  class SeldonDeploymentPredictiveUnitType(StrEnum):
@@ -130,14 +123,12 @@ class SeldonDeploymentPredictiveUnit(BaseModel):
130
123
  serviceAccountName: Optional[str] = None
131
124
  envSecretRefName: Optional[str] = None
132
125
  children: Optional[List["SeldonDeploymentPredictiveUnit"]] = None
133
-
134
- class Config:
135
- """Pydantic configuration class."""
136
-
126
+ model_config = ConfigDict(
137
127
  # validate attribute assignments
138
- validate_assignment = True
128
+ validate_assignment=True,
139
129
  # Ignore extra attributes from the CRD that are not reflected here
140
- extra = "ignore"
130
+ extra="ignore",
131
+ )
141
132
 
142
133
 
143
134
  class SeldonDeploymentComponentSpecs(BaseModel):
@@ -147,16 +138,13 @@ class SeldonDeploymentComponentSpecs(BaseModel):
147
138
  spec: the component spec.
148
139
  """
149
140
 
150
- spec: Optional[Dict[str, Any]]
151
- # TODO [HIGH]: Add graph field to ComponentSpecs. graph: Optional[SeldonDeploymentPredictiveUnit]
152
-
153
- class Config:
154
- """Pydantic configuration class."""
155
-
141
+ spec: Optional[Dict[str, Any]] = None
142
+ model_config = ConfigDict(
156
143
  # validate attribute assignments
157
- validate_assignment = True
144
+ validate_assignment=True,
158
145
  # Ignore extra attributes from the CRD that are not reflected here
159
- extra = "ignore"
146
+ extra="ignore",
147
+ )
160
148
 
161
149
 
162
150
  class SeldonDeploymentPredictor(BaseModel):
@@ -175,14 +163,12 @@ class SeldonDeploymentPredictor(BaseModel):
175
163
  default_factory=SeldonResourceRequirements
176
164
  )
177
165
  componentSpecs: Optional[List[SeldonDeploymentComponentSpecs]] = None
178
-
179
- class Config:
180
- """Pydantic configuration class."""
181
-
166
+ model_config = ConfigDict(
182
167
  # validate attribute assignments
183
- validate_assignment = True
168
+ validate_assignment=True,
184
169
  # Ignore extra attributes from the CRD that are not reflected here
185
- extra = "ignore"
170
+ extra="ignore",
171
+ )
186
172
 
187
173
 
188
174
  class SeldonDeploymentSpec(BaseModel):
@@ -196,17 +182,15 @@ class SeldonDeploymentSpec(BaseModel):
196
182
  """
197
183
 
198
184
  name: str
199
- protocol: Optional[str]
185
+ protocol: Optional[str] = None
200
186
  predictors: List[SeldonDeploymentPredictor]
201
187
  replicas: int = 1
202
-
203
- class Config:
204
- """Pydantic configuration class."""
205
-
188
+ model_config = ConfigDict(
206
189
  # validate attribute assignments
207
- validate_assignment = True
190
+ validate_assignment=True,
208
191
  # Ignore extra attributes from the CRD that are not reflected here
209
- extra = "ignore"
192
+ extra="ignore",
193
+ )
210
194
 
211
195
 
212
196
  class SeldonDeploymentStatusState(StrEnum):
@@ -242,8 +226,8 @@ class SeldonDeploymentStatusCondition(BaseModel):
242
226
 
243
227
  type: str
244
228
  status: bool
245
- reason: Optional[str]
246
- message: Optional[str]
229
+ reason: Optional[str] = None
230
+ message: Optional[str] = None
247
231
 
248
232
 
249
233
  class SeldonDeploymentStatus(BaseModel):
@@ -258,18 +242,16 @@ class SeldonDeploymentStatus(BaseModel):
258
242
  """
259
243
 
260
244
  state: SeldonDeploymentStatusState = SeldonDeploymentStatusState.UNKNOWN
261
- description: Optional[str]
262
- replicas: Optional[int]
263
- address: Optional[SeldonDeploymentStatusAddress]
245
+ description: Optional[str] = None
246
+ replicas: Optional[int] = None
247
+ address: Optional[SeldonDeploymentStatusAddress] = None
264
248
  conditions: List[SeldonDeploymentStatusCondition]
265
-
266
- class Config:
267
- """Pydantic configuration class."""
268
-
249
+ model_config = ConfigDict(
269
250
  # validate attribute assignments
270
- validate_assignment = True
251
+ validate_assignment=True,
271
252
  # Ignore extra attributes from the CRD that are not reflected here
272
- extra = "ignore"
253
+ extra="ignore",
254
+ )
273
255
 
274
256
 
275
257
  class SeldonDeployment(BaseModel):
@@ -292,8 +274,10 @@ class SeldonDeployment(BaseModel):
292
274
  status: Seldon Deployment status.
293
275
  """
294
276
 
295
- kind: str = Field(SELDON_DEPLOYMENT_KIND, const=True)
296
- apiVersion: str = Field(SELDON_DEPLOYMENT_API_VERSION, const=True)
277
+ kind: Literal["SeldonDeployment"] = "SeldonDeployment"
278
+ apiVersion: Literal["machinelearning.seldon.io/v1"] = (
279
+ "machinelearning.seldon.io/v1"
280
+ )
297
281
  metadata: SeldonDeploymentMetadata
298
282
  spec: SeldonDeploymentSpec
299
283
  status: Optional[SeldonDeploymentStatus] = None
@@ -304,7 +288,7 @@ class SeldonDeployment(BaseModel):
304
288
  Returns:
305
289
  A string representation of the Seldon Deployment.
306
290
  """
307
- return json.dumps(self.dict(exclude_none=True), indent=4)
291
+ return json.dumps(self.model_dump(exclude_none=True), indent=4)
308
292
 
309
293
  @classmethod
310
294
  def build(
@@ -339,8 +323,10 @@ class SeldonDeployment(BaseModel):
339
323
  annotations: A dictionary of annotations to apply to the Seldon
340
324
  Deployment.
341
325
  spec: A Kubernetes pod spec to use for the Seldon Deployment.
342
- is_custom_deployment: Whether the Seldon Deployment is a custom or a built-in one.
343
- serviceAccountName: The name of the service account to associate with the predictive unit container.
326
+ is_custom_deployment: Whether the Seldon Deployment is a custom
327
+ or a built-in one.
328
+ serviceAccountName: The name of the service account to associate
329
+ with the predictive unit container.
344
330
 
345
331
  Returns:
346
332
  A minimal SeldonDeployment object built from the provided
@@ -495,13 +481,12 @@ class SeldonDeployment(BaseModel):
495
481
  return None
496
482
  return ready_condition_message[0]
497
483
 
498
- class Config:
499
- """Pydantic configuration class."""
500
-
484
+ model_config = ConfigDict(
501
485
  # validate attribute assignments
502
- validate_assignment = True
486
+ validate_assignment=True,
503
487
  # Ignore extra attributes from the CRD that are not reflected here
504
- extra = "ignore"
488
+ extra="ignore",
489
+ )
505
490
 
506
491
 
507
492
  class SeldonClientError(Exception):
@@ -651,7 +636,7 @@ class SeldonClient:
651
636
  # are not
652
637
  deployment.mark_as_managed_by_zenml()
653
638
 
654
- body_deploy = deployment.dict(exclude_none=True)
639
+ body_deploy = deployment.model_dump(exclude_none=True)
655
640
  response = (
656
641
  self._custom_objects_api.create_namespaced_custom_object(
657
642
  group="machinelearning.seldon.io",
@@ -788,7 +773,7 @@ class SeldonClient:
788
773
  namespace=self._namespace,
789
774
  plural="seldondeployments",
790
775
  name=deployment.name,
791
- body=deployment.dict(exclude_none=True),
776
+ body=deployment.model_dump(exclude_none=True),
792
777
  _request_timeout=poll_timeout or None,
793
778
  )
794
779
  logger.debug("Seldon Core API response: %s", response)
@@ -113,7 +113,7 @@ class SeldonDeploymentConfig(ServiceConfig):
113
113
  The annotations for the Seldon Core deployment.
114
114
  """
115
115
  annotations = {
116
- "zenml.service_config": self.json(),
116
+ "zenml.service_config": self.model_dump_json(),
117
117
  "zenml.version": __version__,
118
118
  }
119
119
  return annotations
@@ -133,7 +133,7 @@ class SeldonDeploymentConfig(ServiceConfig):
133
133
 
134
134
  Raises:
135
135
  ValueError: if the given deployment resource does not contain
136
- the expected annotations or it contains an invalid or
136
+ the expected annotations, or it contains an invalid or
137
137
  incompatible Seldon Core service configuration.
138
138
  """
139
139
  config_data = deployment.metadata.annotations.get(
@@ -145,7 +145,7 @@ class SeldonDeploymentConfig(ServiceConfig):
145
145
  f"'zenml.service_config' annotation: {deployment}"
146
146
  )
147
147
  try:
148
- service_config = cls.parse_raw(config_data)
148
+ service_config = cls.model_validate_json(config_data)
149
149
  except ValidationError as e:
150
150
  raise ValueError(
151
151
  f"The loaded Seldon Core deployment resource contains an "
@@ -76,7 +76,7 @@ def seldon_model_deployer_step(
76
76
  step_name = context.step_run.name
77
77
 
78
78
  # update the step configuration with the real pipeline runtime information
79
- service_config = service_config.copy()
79
+ service_config = service_config.model_copy()
80
80
  service_config.pipeline_name = pipeline_name
81
81
  service_config.pipeline_step_name = step_name
82
82
 
@@ -141,7 +141,7 @@ def seldon_model_deployer_step(
141
141
  # fetch existing services with same pipeline name, step name and
142
142
  # model name
143
143
  existing_services = model_deployer.find_model_server(
144
- config=service_config.dict()
144
+ config=service_config.model_dump()
145
145
  )
146
146
 
147
147
  # even when the deploy decision is negative, if an existing model server
@@ -240,7 +240,7 @@ def seldon_custom_model_deployer_step(
240
240
  # fetch existing services with the same pipeline name, step name and
241
241
  # model name
242
242
  existing_services = model_deployer.find_model_server(
243
- config=service_config.dict()
243
+ config=service_config.model_dump()
244
244
  )
245
245
  # even when the deploy decision is negative if an existing model server
246
246
  # is not running for this pipeline/step, we still have to serve the
@@ -305,7 +305,7 @@ def seldon_custom_model_deployer_step(
305
305
  )
306
306
 
307
307
  # prepare the service configuration for the deployment
308
- service_config = service_config.copy()
308
+ service_config = service_config.model_copy()
309
309
  service_config.model_uri = served_model_uri
310
310
 
311
311
  # create the specification for the custom deployment
@@ -15,6 +15,8 @@
15
15
 
16
16
  from typing import Dict, List, Literal, Optional, Union
17
17
 
18
+ from pydantic import Field
19
+
18
20
  from zenml.config.base_settings import BaseSettings
19
21
  from zenml.logger import get_logger
20
22
  from zenml.orchestrators import BaseOrchestratorConfig
@@ -90,15 +92,23 @@ class SkypilotBaseOrchestratorSettings(BaseSettings):
90
92
 
91
93
  # Resources
92
94
  instance_type: Optional[str] = None
93
- cpus: Union[None, int, float, str] = None
94
- memory: Union[None, int, float, str] = None
95
- accelerators: Union[None, str, Dict[str, int]] = None
95
+ cpus: Union[None, int, float, str] = Field(
96
+ default=None, union_mode="left_to_right"
97
+ )
98
+ memory: Union[None, int, float, str] = Field(
99
+ default=None, union_mode="left_to_right"
100
+ )
101
+ accelerators: Union[None, str, Dict[str, int]] = Field(
102
+ default=None, union_mode="left_to_right"
103
+ )
96
104
  accelerator_args: Optional[Dict[str, str]] = None
97
105
  use_spot: Optional[bool] = None
98
106
  spot_recovery: Optional[str] = None
99
107
  region: Optional[str] = None
100
108
  zone: Optional[str] = None
101
- image_id: Union[Dict[str, str], str, None] = None
109
+ image_id: Union[Dict[str, str], str, None] = Field(
110
+ default=None, union_mode="left_to_right"
111
+ )
102
112
  disk_size: Optional[int] = None
103
113
  disk_tier: Optional[Literal["high", "medium", "low"]] = None
104
114
 
@@ -112,7 +122,7 @@ class SkypilotBaseOrchestratorSettings(BaseSettings):
112
122
  docker_run_args: List[str] = []
113
123
 
114
124
 
115
- class SkypilotBaseOrchestratorConfig( # type: ignore[misc] # https://github.com/pydantic/pydantic/issues/4173
125
+ class SkypilotBaseOrchestratorConfig(
116
126
  BaseOrchestratorConfig, SkypilotBaseOrchestratorSettings
117
127
  ):
118
128
  """Skypilot orchestrator base config.
@@ -32,7 +32,7 @@ class SkypilotAWSIntegration(Integration):
32
32
 
33
33
  NAME = SKYPILOT_AWS
34
34
  REQUIREMENTS = ["skypilot[aws]<=0.5.0"]
35
- APT_PACKAGES = ["openssh-client","rsync"]
35
+ APT_PACKAGES = ["openssh-client", "rsync"]
36
36
 
37
37
  @classmethod
38
38
  def flavors(cls) -> List[Type[Flavor]]:
@@ -37,7 +37,7 @@ class SkypilotAWSOrchestratorSettings(SkypilotBaseOrchestratorSettings):
37
37
  """Skypilot orchestrator settings."""
38
38
 
39
39
 
40
- class SkypilotAWSOrchestratorConfig( # type: ignore[misc] # https://github.com/pydantic/pydantic/issues/4173
40
+ class SkypilotAWSOrchestratorConfig(
41
41
  SkypilotBaseOrchestratorConfig, SkypilotAWSOrchestratorSettings
42
42
  ):
43
43
  """Skypilot orchestrator config."""
@@ -34,7 +34,7 @@ class SkypilotAzureIntegration(Integration):
34
34
 
35
35
  NAME = SKYPILOT_AZURE
36
36
  REQUIREMENTS = ["skypilot[azure]<=0.5.0"]
37
- APT_PACKAGES = ["openssh-client","rsync"]
37
+ APT_PACKAGES = ["openssh-client", "rsync"]
38
38
 
39
39
  @classmethod
40
40
  def flavors(cls) -> List[Type[Flavor]]:
@@ -39,7 +39,7 @@ class SkypilotAzureOrchestratorSettings(SkypilotBaseOrchestratorSettings):
39
39
  """Skypilot orchestrator settings for Azure."""
40
40
 
41
41
 
42
- class SkypilotAzureOrchestratorConfig( # type: ignore[misc] # https://github.com/pydantic/pydantic/issues/4173
42
+ class SkypilotAzureOrchestratorConfig(
43
43
  SkypilotBaseOrchestratorConfig, SkypilotAzureOrchestratorSettings
44
44
  ):
45
45
  """Skypilot orchestrator config for Azure."""
@@ -26,12 +26,13 @@ from zenml.stack import Flavor
26
26
 
27
27
  SKYPILOT_GCP_ORCHESTRATOR_FLAVOR = "vm_gcp"
28
28
 
29
+
29
30
  class SkypilotGCPIntegration(Integration):
30
31
  """Definition of Skypilot (GCP) Integration for ZenML."""
31
32
 
32
33
  NAME = SKYPILOT_GCP
33
34
  REQUIREMENTS = ["skypilot[gcp]<=0.5.0"]
34
- APT_PACKAGES = ["openssh-client","rsync"]
35
+ APT_PACKAGES = ["openssh-client", "rsync"]
35
36
 
36
37
  @classmethod
37
38
  def flavors(cls) -> List[Type[Flavor]]:
@@ -40,7 +40,7 @@ class SkypilotGCPOrchestratorSettings(SkypilotBaseOrchestratorSettings):
40
40
  """Skypilot orchestrator settings for GCP."""
41
41
 
42
42
 
43
- class SkypilotGCPOrchestratorConfig( # type: ignore[misc] # https://github.com/pydantic/pydantic/issues/4173
43
+ class SkypilotGCPOrchestratorConfig(
44
44
  SkypilotBaseOrchestratorConfig,
45
45
  GoogleCredentialsConfigMixin,
46
46
  SkypilotGCPOrchestratorSettings,
@@ -60,12 +60,12 @@ class SkypilotLambdaOrchestratorSettings(SkypilotBaseOrchestratorSettings):
60
60
  super().__setattr__(name, value)
61
61
 
62
62
 
63
- class SkypilotLambdaOrchestratorConfig( # type: ignore[misc] # https://github.com/pydantic/pydantic/issues/4173
63
+ class SkypilotLambdaOrchestratorConfig(
64
64
  SkypilotBaseOrchestratorConfig, SkypilotLambdaOrchestratorSettings
65
65
  ):
66
66
  """Skypilot orchestrator config."""
67
67
 
68
- api_key: Optional[str] = SecretField()
68
+ api_key: Optional[str] = SecretField(default=None)
69
69
 
70
70
 
71
71
  class SkypilotLambdaOrchestratorFlavor(BaseOrchestratorFlavor):
@@ -43,7 +43,7 @@ class SparkStepOperatorSettings(BaseSettings):
43
43
  submit_kwargs: Optional[Dict[str, Any]] = None
44
44
 
45
45
 
46
- class SparkStepOperatorConfig( # type: ignore[misc] # https://github.com/pydantic/pydantic/issues/4173
46
+ class SparkStepOperatorConfig(
47
47
  BaseStepOperatorConfig, SparkStepOperatorSettings
48
48
  ):
49
49
  """Spark step operator config.
@@ -303,6 +303,8 @@ class SparkStepOperator(BaseStepOperator):
303
303
  # Add any additional configuration given by the user.
304
304
  self._additional_configuration(spark_config=conf, settings=settings)
305
305
 
306
+ info.force_write_logs()
307
+
306
308
  # Generate a spark-submit command given the configuration
307
309
  self._launch_spark_job(
308
310
  spark_config=conf,
@@ -31,7 +31,7 @@ class TektonIntegration(Integration):
31
31
  """Definition of Tekton Integration for ZenML."""
32
32
 
33
33
  NAME = TEKTON
34
- REQUIREMENTS = ["kfp-tekton==1.7.1"]
34
+ REQUIREMENTS = ["kfp>=2.6.0", "kfp-kubernetes>=1.1.0"]
35
35
 
36
36
  @classmethod
37
37
  def flavors(cls) -> List[Type[Flavor]]:
@@ -13,14 +13,16 @@
13
13
  # permissions and limitations under the License.
14
14
  """Tekton orchestrator flavor."""
15
15
 
16
- from typing import TYPE_CHECKING, Any, Dict, Optional, Type
16
+ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Type
17
17
 
18
- from pydantic import root_validator
18
+ from pydantic import model_validator
19
19
 
20
20
  from zenml.constants import KUBERNETES_CLUSTER_RESOURCE_TYPE
21
21
  from zenml.integrations.tekton import TEKTON_ORCHESTRATOR_FLAVOR
22
22
  from zenml.models import ServiceConnectorRequirements
23
23
  from zenml.orchestrators import BaseOrchestratorConfig, BaseOrchestratorFlavor
24
+ from zenml.utils.pydantic_utils import before_validator_handler
25
+ from zenml.utils.secret_utils import SecretField
24
26
 
25
27
  if TYPE_CHECKING:
26
28
  from zenml.integrations.tekton.orchestrators import TektonOrchestrator
@@ -36,42 +38,83 @@ class TektonOrchestratorSettings(BaseSettings):
36
38
  """Settings for the Tekton orchestrator.
37
39
 
38
40
  Attributes:
39
- pod_settings: Pod settings to apply.
41
+ synchronous: If `True`, the client running a pipeline using this
42
+ orchestrator waits until all steps finish running. If `False`,
43
+ the client returns immediately and the pipeline is executed
44
+ asynchronously. Defaults to `True`. This setting only
45
+ has an effect when specified on the pipeline and will be ignored if
46
+ specified on steps.
47
+ timeout: How many seconds to wait for synchronous runs.
48
+ client_args: Arguments to pass when initializing the KFP client.
49
+ client_username: Username to generate a session cookie for the kubeflow client. Both `client_username`
50
+ and `client_password` need to be set together.
51
+ client_password: Password to generate a session cookie for the kubeflow client. Both `client_username`
52
+ and `client_password` need to be set together.
53
+ user_namespace: The user namespace to use when creating experiments
54
+ and runs.
40
55
  """
41
56
 
57
+ synchronous: bool = True
58
+ timeout: int = 1200
59
+
60
+ client_args: Dict[str, Any] = {}
61
+ client_username: Optional[str] = SecretField(default=None)
62
+ client_password: Optional[str] = SecretField(default=None)
63
+ user_namespace: Optional[str] = None
64
+ node_selectors: Dict[str, str] = {}
65
+ node_affinity: Dict[str, List[str]] = {}
42
66
  pod_settings: Optional[KubernetesPodSettings] = None
43
67
 
68
+ @model_validator(mode="before")
69
+ @classmethod
70
+ @before_validator_handler
71
+ def _validate_and_migrate_pod_settings(
72
+ cls, data: Dict[str, Any]
73
+ ) -> Dict[str, Any]:
74
+ """Validates settings and migrates pod settings from older version.
75
+
76
+ Args:
77
+ data: Dict representing user-specified runtime settings.
78
+
79
+ Returns:
80
+ Validated settings.
81
+
82
+ Raises:
83
+ ValueError: If username and password are not specified together.
84
+ """
85
+ # Validate username and password for auth cookie logic
86
+ username = data.get("client_username")
87
+ password = data.get("client_password")
88
+ client_creds_error = "`client_username` and `client_password` both need to be set together."
89
+ if (username and password is None) or (password and username is None):
90
+ raise ValueError(client_creds_error)
91
+ return data
92
+
44
93
 
45
- class TektonOrchestratorConfig( # type: ignore[misc] # https://github.com/pydantic/pydantic/issues/4173
94
+ class TektonOrchestratorConfig(
46
95
  BaseOrchestratorConfig, TektonOrchestratorSettings
47
96
  ):
48
97
  """Configuration for the Tekton orchestrator.
49
98
 
50
99
  Attributes:
100
+ tekton_hostname: Hostname of the Tekton server.
51
101
  kubernetes_context: Name of a kubernetes context to run
52
102
  pipelines in. If the stack component is linked to a Kubernetes
53
103
  service connector, this field is ignored. Otherwise, it is
54
104
  mandatory.
55
105
  kubernetes_namespace: Name of the kubernetes namespace in which the
56
106
  pods that run the pipeline steps should be running.
57
- local: If `True`, the orchestrator will assume it is connected to a
58
- local kubernetes cluster and will perform additional validations and
59
- operations to allow using the orchestrator in combination with other
60
- local stack components that store data in the local filesystem
61
- (i.e. it will mount the local stores directory into the pipeline
62
- containers).
63
- skip_local_validations: If `True`, the local validations will be
64
- skipped.
65
107
  """
66
108
 
109
+ tekton_hostname: Optional[str] = None
67
110
  kubernetes_context: Optional[str] = None
68
- kubernetes_namespace: str = "zenml"
69
- local: bool = False
70
- skip_local_validations: bool = False
111
+ kubernetes_namespace: str = "kubeflow"
71
112
 
72
- @root_validator(pre=True)
113
+ @model_validator(mode="before")
114
+ @classmethod
115
+ @before_validator_handler
73
116
  def _validate_deprecated_attrs(
74
- cls, values: Dict[str, Any]
117
+ cls, data: Dict[str, Any]
75
118
  ) -> Dict[str, Any]:
76
119
  """Pydantic root_validator for deprecated attributes.
77
120
 
@@ -80,7 +123,7 @@ class TektonOrchestratorConfig( # type: ignore[misc] # https://github.com/pydan
80
123
  mandatory in the meantime.
81
124
 
82
125
  Args:
83
- values: Values passed to the object constructor
126
+ data: Values passed to the object constructor
84
127
 
85
128
  Returns:
86
129
  Values passed to the object constructor
@@ -93,10 +136,10 @@ class TektonOrchestratorConfig( # type: ignore[misc] # https://github.com/pydan
93
136
 
94
137
  # remove deprecated attributes from values dict
95
138
  for attr in provisioning_attrs:
96
- if attr in values:
97
- del values[attr]
139
+ if attr in data:
140
+ del data[attr]
98
141
 
99
- return values
142
+ return data
100
143
 
101
144
  @property
102
145
  def is_remote(self) -> bool:
@@ -109,7 +152,7 @@ class TektonOrchestratorConfig( # type: ignore[misc] # https://github.com/pydan
109
152
  Returns:
110
153
  True if this config is for a remote component, False otherwise.
111
154
  """
112
- return not self.local
155
+ return True
113
156
 
114
157
  @property
115
158
  def is_local(self) -> bool:
@@ -118,7 +161,7 @@ class TektonOrchestratorConfig( # type: ignore[misc] # https://github.com/pydan
118
161
  Returns:
119
162
  True if this config is for a local component, False otherwise.
120
163
  """
121
- return self.local
164
+ return False
122
165
 
123
166
 
124
167
  class TektonOrchestratorFlavor(BaseOrchestratorFlavor):