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.
- zenml/VERSION +1 -1
- zenml/constants.py +1 -0
- zenml/integrations/gcp/image_builders/gcp_image_builder.py +5 -8
- zenml/stack/stack.py +5 -0
- zenml/zen_stores/sql_zen_store.py +22 -56
- {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/METADATA +1 -1
- {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/RECORD +10 -27
- zenml/zen_server/deploy/helm/.helmignore +0 -23
- zenml/zen_server/deploy/helm/Chart.yaml +0 -12
- zenml/zen_server/deploy/helm/README.md +0 -50
- zenml/zen_server/deploy/helm/templates/NOTES.txt +0 -52
- zenml/zen_server/deploy/helm/templates/_environment.tpl +0 -511
- zenml/zen_server/deploy/helm/templates/_helpers.tpl +0 -70
- zenml/zen_server/deploy/helm/templates/cert-secret.yaml +0 -45
- zenml/zen_server/deploy/helm/templates/hpa.yaml +0 -32
- zenml/zen_server/deploy/helm/templates/server-db-job.yaml +0 -121
- zenml/zen_server/deploy/helm/templates/server-db-pvc.yaml +0 -25
- zenml/zen_server/deploy/helm/templates/server-deployment.yaml +0 -132
- zenml/zen_server/deploy/helm/templates/server-ingress.yaml +0 -59
- zenml/zen_server/deploy/helm/templates/server-secret.yaml +0 -60
- zenml/zen_server/deploy/helm/templates/server-service.yaml +0 -15
- zenml/zen_server/deploy/helm/templates/serviceaccount.yaml +0 -27
- zenml/zen_server/deploy/helm/templates/tests/test-connection.yaml +0 -15
- zenml/zen_server/deploy/helm/values.yaml +0 -1008
- {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/WHEEL +0 -0
- {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.
|
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
|
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
|
81
|
-
"push the image to. Please update your stack
|
82
|
-
"
|
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 == "
|
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
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
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
|
)
|
{zenml_nightly-0.73.0.dev20250204.dist-info → zenml_nightly-0.73.0.dev20250205.dist-info}/RECORD
RENAMED
@@ -1,5 +1,5 @@
|
|
1
1
|
zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
|
2
|
-
zenml/VERSION,sha256=
|
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=
|
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=
|
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=
|
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=
|
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.
|
1297
|
-
zenml_nightly-0.73.0.
|
1298
|
-
zenml_nightly-0.73.0.
|
1299
|
-
zenml_nightly-0.73.0.
|
1300
|
-
zenml_nightly-0.73.0.
|
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
|
-

|
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 }}
|