zenml-nightly 0.73.0.dev20250204__py3-none-any.whl → 0.73.0.dev20250205__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 (27) hide show
  1. zenml/VERSION +1 -1
  2. zenml/constants.py +1 -0
  3. zenml/integrations/gcp/image_builders/gcp_image_builder.py +5 -8
  4. zenml/stack/stack.py +5 -0
  5. zenml/zen_stores/sql_zen_store.py +22 -56
  6. {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/METADATA +1 -1
  7. {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/RECORD +10 -27
  8. zenml/zen_server/deploy/helm/.helmignore +0 -23
  9. zenml/zen_server/deploy/helm/Chart.yaml +0 -12
  10. zenml/zen_server/deploy/helm/README.md +0 -50
  11. zenml/zen_server/deploy/helm/templates/NOTES.txt +0 -52
  12. zenml/zen_server/deploy/helm/templates/_environment.tpl +0 -511
  13. zenml/zen_server/deploy/helm/templates/_helpers.tpl +0 -70
  14. zenml/zen_server/deploy/helm/templates/cert-secret.yaml +0 -45
  15. zenml/zen_server/deploy/helm/templates/hpa.yaml +0 -32
  16. zenml/zen_server/deploy/helm/templates/server-db-job.yaml +0 -121
  17. zenml/zen_server/deploy/helm/templates/server-db-pvc.yaml +0 -25
  18. zenml/zen_server/deploy/helm/templates/server-deployment.yaml +0 -132
  19. zenml/zen_server/deploy/helm/templates/server-ingress.yaml +0 -59
  20. zenml/zen_server/deploy/helm/templates/server-secret.yaml +0 -60
  21. zenml/zen_server/deploy/helm/templates/server-service.yaml +0 -15
  22. zenml/zen_server/deploy/helm/templates/serviceaccount.yaml +0 -27
  23. zenml/zen_server/deploy/helm/templates/tests/test-connection.yaml +0 -15
  24. zenml/zen_server/deploy/helm/values.yaml +0 -1008
  25. {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/LICENSE +0 -0
  26. {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/WHEEL +0 -0
  27. {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/entry_points.txt +0 -0
zenml/VERSION CHANGED
@@ -1 +1 @@
1
- 0.73.0.dev20250204
1
+ 0.73.0.dev20250205
zenml/constants.py CHANGED
@@ -165,6 +165,7 @@ ENV_ZENML_DISABLE_CLIENT_SERVER_MISMATCH_WARNING = (
165
165
  )
166
166
  ENV_ZENML_DISABLE_WORKSPACE_WARNINGS = "ZENML_DISABLE_WORKSPACE_WARNINGS"
167
167
  ENV_ZENML_SKIP_IMAGE_BUILDER_DEFAULT = "ZENML_SKIP_IMAGE_BUILDER_DEFAULT"
168
+ ENV_ZENML_SKIP_STACK_VALIDATION = "ZENML_SKIP_STACK_VALIDATION"
168
169
  ENV_ZENML_SERVER = "ZENML_SERVER"
169
170
  ENV_ZENML_ENFORCE_TYPE_ANNOTATIONS = "ZENML_ENFORCE_TYPE_ANNOTATIONS"
170
171
  ENV_ZENML_ENABLE_IMPLICIT_AUTH_METHODS = "ZENML_ENABLE_IMPLICIT_AUTH_METHODS"
@@ -18,7 +18,7 @@ from urllib.parse import urlparse
18
18
 
19
19
  from google.cloud.devtools import cloudbuild_v1
20
20
 
21
- from zenml.enums import ContainerRegistryFlavor, StackComponentType
21
+ from zenml.enums import StackComponentType
22
22
  from zenml.image_builders import BaseImageBuilder
23
23
  from zenml.integrations.gcp import GCP_ARTIFACT_STORE_FLAVOR
24
24
  from zenml.integrations.gcp.flavors import GCPImageBuilderConfig
@@ -72,14 +72,11 @@ class GCPImageBuilder(BaseImageBuilder, GoogleCredentialsMixin):
72
72
  def _validate_remote_components(stack: "Stack") -> Tuple[bool, str]:
73
73
  assert stack.container_registry
74
74
 
75
- if (
76
- stack.container_registry.flavor
77
- != ContainerRegistryFlavor.GCP.value
78
- ):
75
+ if stack.container_registry.config.is_local:
79
76
  return False, (
80
- "The GCP Image Builder requires a GCP container registry to "
81
- "push the image to. Please update your stack to include a "
82
- "GCP container registry and try again."
77
+ "The GCP Image Builder requires a remote container "
78
+ "registry to push the image to. Please update your stack "
79
+ "to include a remote container registry and try again."
83
80
  )
84
81
 
85
82
  if stack.artifact_store.flavor != GCP_ARTIFACT_STORE_FLAVOR:
zenml/stack/stack.py CHANGED
@@ -37,6 +37,7 @@ from zenml.config.global_config import GlobalConfiguration
37
37
  from zenml.constants import (
38
38
  ENV_ZENML_SECRET_VALIDATION_LEVEL,
39
39
  ENV_ZENML_SKIP_IMAGE_BUILDER_DEFAULT,
40
+ ENV_ZENML_SKIP_STACK_VALIDATION,
40
41
  handle_bool_env_var,
41
42
  )
42
43
  from zenml.enums import SecretValidationLevel, StackComponentType
@@ -706,6 +707,10 @@ class Stack:
706
707
  if a secret for a component is missing. Otherwise, only a
707
708
  warning will be logged.
708
709
  """
710
+ if handle_bool_env_var(ENV_ZENML_SKIP_STACK_VALIDATION, default=False):
711
+ logger.debug("Skipping stack validation.")
712
+ return
713
+
709
714
  self.validate_image_builder()
710
715
  for component in self.components.values():
711
716
  if component.validator:
@@ -303,7 +303,6 @@ from zenml.utils.enum_utils import StrEnum
303
303
  from zenml.utils.networking_utils import (
304
304
  replace_localhost_with_internal_hostname,
305
305
  )
306
- from zenml.utils.pydantic_utils import before_validator_handler
307
306
  from zenml.utils.secret_utils import PlainSerializedSecretStr
308
307
  from zenml.utils.string_utils import (
309
308
  format_name_template,
@@ -434,6 +433,7 @@ class SqlZenStoreConfiguration(StoreConfiguration):
434
433
  be created automatically on first access.
435
434
  username: The database username.
436
435
  password: The database password.
436
+ ssl: Whether to use SSL.
437
437
  ssl_ca: certificate authority certificate. Required for SSL
438
438
  enabled authentication if the CA certificate is not part of the
439
439
  certificates shipped by the operating system.
@@ -463,6 +463,7 @@ class SqlZenStoreConfiguration(StoreConfiguration):
463
463
  database: Optional[str] = None
464
464
  username: Optional[PlainSerializedSecretStr] = None
465
465
  password: Optional[PlainSerializedSecretStr] = None
466
+ ssl: bool = False
466
467
  ssl_ca: Optional[PlainSerializedSecretStr] = None
467
468
  ssl_cert: Optional[PlainSerializedSecretStr] = None
468
469
  ssl_key: Optional[PlainSerializedSecretStr] = None
@@ -499,35 +500,6 @@ class SqlZenStoreConfiguration(StoreConfiguration):
499
500
 
500
501
  return secrets_store
501
502
 
502
- @model_validator(mode="before")
503
- @classmethod
504
- @before_validator_handler
505
- def _remove_grpc_attributes(cls, data: Dict[str, Any]) -> Dict[str, Any]:
506
- """Removes old GRPC attributes.
507
-
508
- Args:
509
- data: All model attribute values.
510
-
511
- Returns:
512
- The model attribute values
513
- """
514
- grpc_attribute_keys = [
515
- "grpc_metadata_host",
516
- "grpc_metadata_port",
517
- "grpc_metadata_ssl_ca",
518
- "grpc_metadata_ssl_key",
519
- "grpc_metadata_ssl_cert",
520
- ]
521
- grpc_values = [data.pop(key, None) for key in grpc_attribute_keys]
522
- if any(grpc_values):
523
- logger.warning(
524
- "The GRPC attributes %s are unused and will be removed soon. "
525
- "Please remove them from SQLZenStore configuration. This will "
526
- "become an error in future versions of ZenML."
527
- )
528
-
529
- return data
530
-
531
503
  @model_validator(mode="after")
532
504
  def _validate_backup_strategy(self) -> "SqlZenStoreConfiguration":
533
505
  """Validate the backup strategy.
@@ -641,15 +613,21 @@ class SqlZenStoreConfiguration(StoreConfiguration):
641
613
  return None
642
614
 
643
615
  for k, v in sql_url.query.items():
644
- if k == "ssl_ca":
616
+ if k == "ssl":
617
+ if r := _get_query_result(v):
618
+ self.ssl = is_true_string_value(r)
619
+ elif k == "ssl_ca":
645
620
  if r := _get_query_result(v):
646
621
  self.ssl_ca = PlainSerializedSecretStr(r)
622
+ self.ssl = True
647
623
  elif k == "ssl_cert":
648
624
  if r := _get_query_result(v):
649
625
  self.ssl_cert = PlainSerializedSecretStr(r)
626
+ self.ssl = True
650
627
  elif k == "ssl_key":
651
628
  if r := _get_query_result(v):
652
629
  self.ssl_key = PlainSerializedSecretStr(r)
630
+ self.ssl = True
653
631
  elif k == "ssl_verify_server_cert":
654
632
  if r := _get_query_result(v):
655
633
  if is_true_string_value(r):
@@ -659,7 +637,7 @@ class SqlZenStoreConfiguration(StoreConfiguration):
659
637
  else:
660
638
  raise ValueError(
661
639
  "Invalid MySQL URL query parameter `%s`: The "
662
- "parameter must be one of: ssl_ca, ssl_cert, "
640
+ "parameter must be one of: ssl, ssl_ca, ssl_cert, "
663
641
  "ssl_key, or ssl_verify_server_cert.",
664
642
  k,
665
643
  )
@@ -728,15 +706,6 @@ class SqlZenStoreConfiguration(StoreConfiguration):
728
706
  """
729
707
  return make_url(url).drivername in SQLDatabaseDriver.values()
730
708
 
731
- def expand_certificates(self) -> None:
732
- """Expands the certificates in the verify_ssl field."""
733
- # Load the certificate values back into the configuration
734
- for key in ["ssl_key", "ssl_ca", "ssl_cert"]:
735
- file_path = getattr(self, key, None)
736
- if file_path and os.path.isfile(file_path.get_secret_value()):
737
- with open(file_path, "r") as f:
738
- setattr(self, key, f.read())
739
-
740
709
  def get_sqlalchemy_config(
741
710
  self,
742
711
  database: Optional[str] = None,
@@ -789,22 +758,19 @@ class SqlZenStoreConfiguration(StoreConfiguration):
789
758
  sqlalchemy_ssl_args: Dict[str, Any] = {}
790
759
 
791
760
  # Handle SSL params
792
- for key in ["ssl_key", "ssl_ca", "ssl_cert"]:
793
- ssl_setting = getattr(self, key)
794
- if not ssl_setting:
795
- continue
796
- if not os.path.isfile(ssl_setting.get_secret_value()):
797
- logger.warning(
798
- f"Database SSL setting `{key}` is not a file. "
761
+ if self.ssl:
762
+ sqlalchemy_ssl_args["ssl"] = True
763
+ for key in ["ssl_key", "ssl_ca", "ssl_cert"]:
764
+ ssl_setting = getattr(self, key)
765
+ if not ssl_setting:
766
+ continue
767
+ if not os.path.isfile(ssl_setting.get_secret_value()):
768
+ logger.warning(
769
+ f"Database SSL setting `{key}` is not a file. "
770
+ )
771
+ sqlalchemy_ssl_args[key.removeprefix("ssl_")] = (
772
+ ssl_setting.get_secret_value()
799
773
  )
800
- sqlalchemy_ssl_args[key.lstrip("ssl_")] = (
801
- ssl_setting.get_secret_value()
802
- )
803
- sqlalchemy_ssl_args[key.removeprefix("ssl_")] = (
804
- ssl_setting.get_secret_value()
805
- )
806
-
807
- if len(sqlalchemy_ssl_args) > 0:
808
774
  sqlalchemy_ssl_args["check_hostname"] = (
809
775
  self.ssl_verify_server_cert
810
776
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zenml-nightly
3
- Version: 0.73.0.dev20250204
3
+ Version: 0.73.0.dev20250205
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  License: Apache-2.0
6
6
  Keywords: machine learning,production,pipeline,mlops,devops
@@ -1,5 +1,5 @@
1
1
  zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
2
- zenml/VERSION,sha256=TmboNIl0EidcW2cq1AoH5542zl0I2SL5vBC_z0JE-9o,19
2
+ zenml/VERSION,sha256=BRNvbbNFEwdyrIEopU926a0ad2FzMvnprZW8ctT0PFw,19
3
3
  zenml/__init__.py,sha256=SkMObQA41ajqdZqGErN00S1Vf3KAxpLvbZ-OBy5uYoo,2130
4
4
  zenml/actions/__init__.py,sha256=mrt6wPo73iKRxK754_NqsGyJ3buW7RnVeIGXr1xEw8Y,681
5
5
  zenml/actions/base_action.py,sha256=UcaHev6BTuLDwuswnyaPjdA8AgUqB5xPZ-lRtuvf2FU,25553
@@ -85,7 +85,7 @@ zenml/config/step_run_info.py,sha256=KiVRSTtKmZ1GbvseDTap2imr7XwMHD3jSFVpyLNEK1I
85
85
  zenml/config/store_config.py,sha256=Cla5p5dTB6nNlo8_OZDs9hod5hspi64vxwtZj882XgU,3559
86
86
  zenml/config/strict_base_model.py,sha256=iHnO9qOmLUP_eiy9IjRr3JjIs1l1I_CsRQ76EyAneYU,860
87
87
  zenml/console.py,sha256=hj_KerPQKwnyKACj0ehSqUQX0mGVCJBKE1QvCt6ik3A,1160
88
- zenml/constants.py,sha256=2YfXhw9VeUCeoMy4coJ8vDQruzdGezrbrurc4eOk6JE,15855
88
+ zenml/constants.py,sha256=78YApqAClSlY9LpzhAsG2mxDPqZVWrwqdQFonilNIuA,15919
89
89
  zenml/container_registries/__init__.py,sha256=ZSPbBIOnzhg88kQSpYgKe_POLuru14m629665-kAVAA,2200
90
90
  zenml/container_registries/azure_container_registry.py,sha256=t1sfDa94Vzbyqtb1iPFNutJ2EXV5_p9CUNITasoiQ70,2667
91
91
  zenml/container_registries/base_container_registry.py,sha256=6c2e32wuqxYHJXm5OV2LY1MtX9yopB7WZtes9fmTAz0,7625
@@ -267,7 +267,7 @@ zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py,sha256=m01jsJbyX9i2
267
267
  zenml/integrations/gcp/flavors/vertex_step_operator_flavor.py,sha256=VHg2coeKoBJjSYkiVSTtbfKRg9qW9o8_QZ_xXskfzI4,6653
268
268
  zenml/integrations/gcp/google_credentials_mixin.py,sha256=bPy3JYCCcyuTmPiVFqbY81YJ5g1yRdzHLlBlokvbeqg,4026
269
269
  zenml/integrations/gcp/image_builders/__init__.py,sha256=2IvTL6U2YpUoxGQXeXew-6WFoL5hHIxkqr4DaA5Ez9w,786
270
- zenml/integrations/gcp/image_builders/gcp_image_builder.py,sha256=dNpMJa1TITUOHSn5nj1gWTFwVNmvWz321A_JoTMOqCM,9114
270
+ zenml/integrations/gcp/image_builders/gcp_image_builder.py,sha256=5T6BXsHxLhvp1BF_rslXl1oZzykJUPuZ3E_7-9ZZYLk,9019
271
271
  zenml/integrations/gcp/orchestrators/__init__.py,sha256=6xLFJKZKQk73fHPF-XdpbQO87zjQNGTsNHjJjLfG_Kg,805
272
272
  zenml/integrations/gcp/orchestrators/vertex_orchestrator.py,sha256=7O-Wh-LTGKOWpjARtbE0eWG_vpq6eSI3UERgUoNwzHA,36923
273
273
  zenml/integrations/gcp/service_connectors/__init__.py,sha256=fdydawaor8KAtMYvRZieiTuA1i5QATxXXgI-yV1lsn8,788
@@ -731,7 +731,7 @@ zenml/stack/__init__.py,sha256=vfHzaoRhPtS-XSlM8Vx1noJZDHF1Pj6LDz2knpn_QBg,1236
731
731
  zenml/stack/authentication_mixin.py,sha256=sg7GkpB-Ao9Gsa7Po0jxMn-_mVYUB42etmspZ6dk8cI,3982
732
732
  zenml/stack/flavor.py,sha256=8vcaGCwHOyLG3LIaKQxS12N5uSFFLYyNhrHdb5WOE2w,10988
733
733
  zenml/stack/flavor_registry.py,sha256=IL0fRrxxQJ9YkCYCeADP7nwWEQo4XBElJY4owMjKGbQ,6108
734
- zenml/stack/stack.py,sha256=ytt38mBjG3an8FTK5-59k0kXMo-QRX-OhaSNmdvXK80,32906
734
+ zenml/stack/stack.py,sha256=0tjbzhsJ2UtwMYZ3qMFqTwnZlWR4AI5btBdXo6AjwE8,33098
735
735
  zenml/stack/stack_component.py,sha256=w9GUnlYG89gH0t-Nq3ZM2lVcgFBSzPtdQhYZ9yF4f9o,29424
736
736
  zenml/stack/stack_validator.py,sha256=hWbvvGIeWLj6NwSsF4GCc6RAxAWvxHXTcBZL9nJvcak,3111
737
737
  zenml/stack/utils.py,sha256=qHMFi8SVMSDFeZTFO4KkvaLUbF-l3B0_JZ5SSMxYrwI,6406
@@ -993,23 +993,6 @@ zenml/zen_server/deploy/docker/__init__.py,sha256=lNGI-Pl3PVMqR4BVajZXwe3moVNXPx
993
993
  zenml/zen_server/deploy/docker/docker_provider.py,sha256=18pNpxvP8xqbxS_KxvYTEIuad8Ky5mVtk5TaKVVrzcY,8371
994
994
  zenml/zen_server/deploy/docker/docker_zen_server.py,sha256=KvnqtEcVUrIBHy2vmPNGnab9Ss8qEJ3ZxagC4MmMJ3M,7444
995
995
  zenml/zen_server/deploy/exceptions.py,sha256=tX0GNnLB_GMkeN7zGNlJRwtlrpZ5Slvyj_unVYVmGxk,1396
996
- zenml/zen_server/deploy/helm/.helmignore,sha256=u5h-ao70WpklXR1jKBJILV8PMlXqhBUgtNkDQt9f4rM,349
997
- zenml/zen_server/deploy/helm/Chart.yaml,sha256=qloEZtXDZsT57aJOqrnqpWcjtb_2G2X4JaGWgpRY2IY,333
998
- zenml/zen_server/deploy/helm/README.md,sha256=7_CrLcU-oHIjkAOahTE8zUu-1jmKF6NYzjI_tbeJjik,1777
999
- zenml/zen_server/deploy/helm/templates/NOTES.txt,sha256=HnSMHerw1ck2BPxuO4JEttRsMZs18chDja8_WAf_Cbo,2611
1000
- zenml/zen_server/deploy/helm/templates/_environment.tpl,sha256=KrStNrof9ciB-d6dkQO37vs9QN-k9jrQ-UX1TxARKhk,19374
1001
- zenml/zen_server/deploy/helm/templates/_helpers.tpl,sha256=SuPztyigDEA00ftUfQtDCNK25RWZB4x58BXthNLJKJA,2042
1002
- zenml/zen_server/deploy/helm/templates/cert-secret.yaml,sha256=VYA-0FfdF4hACYAsww8NjFL9JTuDUJTUbO8ud_Dveqo,1565
1003
- zenml/zen_server/deploy/helm/templates/hpa.yaml,sha256=wORGNZ7-vL89PHPmyx5bR5TpDXECbyiqu0py1uOWsds,987
1004
- zenml/zen_server/deploy/helm/templates/server-db-job.yaml,sha256=rXRAYKlHoY6MQ6lQKbtJRJw4hcN9YywTxZlMj2YLFYc,4548
1005
- zenml/zen_server/deploy/helm/templates/server-db-pvc.yaml,sha256=ghpBSOtjxL6aoVzYphTytAojCD0T5lP3c3dwIB-1SLw,820
1006
- zenml/zen_server/deploy/helm/templates/server-deployment.yaml,sha256=cbVqp3dah5rsQFol1gqLU8asTj4-m3-Oz8utLChPDmw,4692
1007
- zenml/zen_server/deploy/helm/templates/server-ingress.yaml,sha256=cgbxnKLPwzJyFqTW9GfT7nKRxG2LYPTsGBVnfrM7r3E,2274
1008
- zenml/zen_server/deploy/helm/templates/server-secret.yaml,sha256=BxtCzQ4Dma5N1YomR8EfX8gqAshHXl7wfXd8oxViGW4,2391
1009
- zenml/zen_server/deploy/helm/templates/server-service.yaml,sha256=PEYcze_4pKINKW_PbTv0vAvcXRctXuZ9jN0axqLfPFI,367
1010
- zenml/zen_server/deploy/helm/templates/serviceaccount.yaml,sha256=4qX970F0O_SR1HSAMugyYAvwSN_63CqQofU4jV0YJO4,826
1011
- zenml/zen_server/deploy/helm/templates/tests/test-connection.yaml,sha256=DPuf5tBRFLlxGLi8XgIbTG9nxaGn-8Z_oIkYJKjFBNs,379
1012
- zenml/zen_server/deploy/helm/values.yaml,sha256=cH4d6xaK47G59-0EOE7THgL8UnwPxRJy2OFC0pLnDeg,43050
1013
996
  zenml/zen_server/exceptions.py,sha256=HunRj5SZolEYBZjrGCQsJ17bO6RJwkHLU5V8HLsfucE,9859
1014
997
  zenml/zen_server/feature_gate/__init__.py,sha256=yabe4fBY6NSusn-QlKQDLOvXVLERNpcAQgigsyWQIbQ,612
1015
998
  zenml/zen_server/feature_gate/endpoint_utils.py,sha256=upQzEOlrD5c6cg0TfxYVM4BKDHle3LIV_c7NZHoaKvg,2220
@@ -1290,11 +1273,11 @@ zenml/zen_stores/secrets_stores/hashicorp_secrets_store.py,sha256=NfW1EHIA99lseb
1290
1273
  zenml/zen_stores/secrets_stores/secrets_store_interface.py,sha256=Q2Jbnt2Pp7NGlR-u1YBfRZV2g8su2Fd0ArBMdksAE-Q,2819
1291
1274
  zenml/zen_stores/secrets_stores/service_connector_secrets_store.py,sha256=kPYX-Z_OOhZCI1CP77ncfV7IsV4e8brklnTXmKxZYNc,7078
1292
1275
  zenml/zen_stores/secrets_stores/sql_secrets_store.py,sha256=nEO0bAPlULBLxLVk-UTRIZiUeVpATggo8qCsKmgEU1E,8788
1293
- zenml/zen_stores/sql_zen_store.py,sha256=GEBQDPhm52-YyxLBJcebNviwtr-VK_dnaHrg21fzJOw,417086
1276
+ zenml/zen_stores/sql_zen_store.py,sha256=tKOghX2Wa0f0xSYu_ReqHgCwslvHrBhE3RePJG2tcA0,415921
1294
1277
  zenml/zen_stores/template_utils.py,sha256=EKYBgmDLTS_PSMWaIO5yvHPLiQvMqHcsAe6NUCrv-i4,9068
1295
1278
  zenml/zen_stores/zen_store_interface.py,sha256=vf2gKBWfUUPtcGZC35oQB6pPNVzWVyQC8nWxVLjfrxM,92692
1296
- zenml_nightly-0.73.0.dev20250204.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1297
- zenml_nightly-0.73.0.dev20250204.dist-info/METADATA,sha256=8j0D64_f5T7tS-ACFS6JwvWGkI7cllXsJEGvFP2ReCc,21428
1298
- zenml_nightly-0.73.0.dev20250204.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
1299
- zenml_nightly-0.73.0.dev20250204.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1300
- zenml_nightly-0.73.0.dev20250204.dist-info/RECORD,,
1279
+ zenml_nightly-0.73.0.dev20250205.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1280
+ zenml_nightly-0.73.0.dev20250205.dist-info/METADATA,sha256=4aKyp4ElvyYZyzp3o1VprHUTmBBphTITDQ4BFQVD_NM,21428
1281
+ zenml_nightly-0.73.0.dev20250205.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
1282
+ zenml_nightly-0.73.0.dev20250205.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1283
+ zenml_nightly-0.73.0.dev20250205.dist-info/RECORD,,
@@ -1,23 +0,0 @@
1
- # Patterns to ignore when building packages.
2
- # This supports shell glob matching, relative path matching, and
3
- # negation (prefixed with !). Only one pattern per line.
4
- .DS_Store
5
- # Common VCS dirs
6
- .git/
7
- .gitignore
8
- .bzr/
9
- .bzrignore
10
- .hg/
11
- .hgignore
12
- .svn/
13
- # Common backup files
14
- *.swp
15
- *.bak
16
- *.tmp
17
- *.orig
18
- *~
19
- # Various IDEs
20
- .project
21
- .idea/
22
- *.tmproj
23
- .vscode/
@@ -1,12 +0,0 @@
1
- apiVersion: v2
2
- name: zenml
3
- version: "0.73.0"
4
- description: Open source MLOps framework for portable production ready ML pipelines
5
- keywords:
6
- - mlops
7
- - zenml
8
- - server
9
- home: https://zenml.io
10
- sources:
11
- - https://github.com/zenml-io/zenml
12
- icon: https://raw.githubusercontent.com/zenml-io/zenml/main/docs/book/.gitbook/assets/zenml_logo.png
@@ -1,50 +0,0 @@
1
- # ZenML Helm Chart
2
-
3
- ![ZenML Logo](https://raw.githubusercontent.com/zenml-io/zenml/main/docs/book/.gitbook/assets/zenml_logo.png)
4
-
5
- ## Overview
6
-
7
- ZenML is an open-source MLOps framework designed to help you create robust, maintainable, and production-ready machine learning pipelines.
8
-
9
- ## Features
10
-
11
- - Easy deployment of ZenML server on Kubernetes.
12
- - Various authentication schemes including OAuth2 and HTTP Basic.
13
- - Highly configurable via Helm values.
14
- - Supports multiple secrets store backends like AWS Secrets Manager, GCP Secrets Manager, and Azure Key Vault.
15
-
16
- ## Quickstart
17
-
18
- ### Install the Chart
19
-
20
- To install the ZenML chart directly from Amazon ECR, use the following command:
21
-
22
- ```bash
23
- # example command for version 0.73.0
24
- helm install my-zenml oci://public.ecr.aws/zenml/zenml --version 0.73.0
25
- ```
26
-
27
- Note: Ensure you have OCI support enabled in your Helm client and that you are authenticated with Amazon ECR.
28
-
29
- ## Configuration
30
-
31
- This chart offers a multitude of configuration options. For detailed
32
- information, check the default [`values.yaml`](values.yaml) file. For full
33
- details of the configuration options, refer to the [ZenML documentation](https://docs.zenml.io/getting-started/deploying-zenml/deploy-with-helm).
34
-
35
- ## Telemetry
36
-
37
- The ZenML server collects anonymous usage data to help us improve the product. You can opt out by setting `zenml.analyticsOptIn` to false.
38
-
39
- ## Contributing
40
-
41
- Feel free to [submit issues or pull requests](https://github.com/zenml-io/zenml) if you would like to improve the chart.
42
-
43
- ## License
44
-
45
- [This project is licensed](https://github.com/zenml-io/zenml/blob/main/LICENSE) under the terms of the Apache-2.0 license.
46
-
47
- ## Further Reading
48
-
49
- - [ZenML Documentation](https://docs.zenml.io)
50
- - [ZenML Source Code](https://github.com/zenml-io/zenml)
@@ -1,52 +0,0 @@
1
- {{- if .Values.zenml.pro.enabled }}
2
-
3
- The ZenML Pro server API is now active and ready to use at the following URL:
4
-
5
- {{ .Values.zenml.serverURL }}
6
-
7
- {{- if .Values.zenml.pro.enrollmentKey }}
8
-
9
- The following enrollment key has been used to enroll your server in the ZenML Pro control plane:
10
-
11
- {{ .Values.zenml.pro.enrollmentKey }}
12
-
13
- {{- else }}
14
-
15
- An enrollment key has been auto-generated for your server. Please use the following command to fetch the enrollment key:
16
-
17
- kubectl get secret {{ include "zenml.fullname" . }} -o jsonpath="{.data.ZENML_SERVER_PRO_OAUTH2_CLIENT_SECRET}" | base64 --decode
18
-
19
- {{- end }}
20
-
21
- {{- else }}
22
- {{- if .Values.zenml.ingress.enabled }}
23
- {{- if .Values.zenml.ingress.host }}
24
-
25
- Please access the ZenML server at the following URL {{- if .Release.IsInstall }} to activate the server and create an initial admin user account {{- end }}:
26
-
27
- http{{ if $.Values.zenml.ingress.tls.enabled }}s{{ end }}://{{ .Values.zenml.ingress.host }}{{ .Values.zenml.ingress.path }}
28
-
29
- {{- else }}
30
- {{- end }}
31
- {{- else }}
32
-
33
- You can get the ZenML server URL by running these commands:
34
-
35
- {{- if contains "NodePort" .Values.zenml.service.type }}
36
- export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "zenml.fullname" . }})
37
- export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
38
- echo http://$NODE_IP:$NODE_PORT
39
- {{- else if contains "LoadBalancer" .Values.zenml.service.type }}
40
- NOTE: It may take a few minutes for the LoadBalancer IP to be available.
41
- You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "zenml.fullname" . }}'
42
- export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "zenml.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
43
- echo http://$SERVICE_IP:{{ .Values.zenml.service.port }}
44
- {{- else if contains "ClusterIP" .Values.zenml.service.type }}
45
- export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "zenml.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
46
- export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
47
- echo "Visit http://127.0.0.1:8080 to use your application"
48
- kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
49
- {{- end }}
50
-
51
- {{- end }}
52
- {{- end }}