runnable 0.21.0__py3-none-any.whl → 0.22.0__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.
- extensions/pipeline_executor/argo.py +27 -1
- runnable/utils.py +10 -2
- {runnable-0.21.0.dist-info → runnable-0.22.0.dist-info}/METADATA +1 -1
- {runnable-0.21.0.dist-info → runnable-0.22.0.dist-info}/RECORD +7 -7
- {runnable-0.21.0.dist-info → runnable-0.22.0.dist-info}/WHEEL +0 -0
- {runnable-0.21.0.dist-info → runnable-0.22.0.dist-info}/entry_points.txt +0 -0
- {runnable-0.21.0.dist-info → runnable-0.22.0.dist-info}/licenses/LICENSE +0 -0
@@ -244,6 +244,7 @@ class TemplateDefaults(BaseModelWIthConfig):
|
|
244
244
|
image: str
|
245
245
|
image_pull_policy: Optional[ImagePullPolicy] = Field(default=ImagePullPolicy.Always)
|
246
246
|
resources: Resources = Field(default_factory=Resources)
|
247
|
+
env: list[EnvVar | SecretEnvVar] = Field(default_factory=list, exclude=True)
|
247
248
|
|
248
249
|
|
249
250
|
# User provides this as part of the argoSpec
|
@@ -365,6 +366,7 @@ class ArgoExecutor(GenericPipelineExecutor):
|
|
365
366
|
custom_volumes: Optional[list[CustomVolume]] = Field(
|
366
367
|
default_factory=list[CustomVolume]
|
367
368
|
)
|
369
|
+
env: list[EnvVar] = Field(default_factory=list[EnvVar])
|
368
370
|
|
369
371
|
expose_parameters_as_inputs: bool = True
|
370
372
|
secret_from_k8s: Optional[str] = Field(default=None)
|
@@ -508,6 +510,10 @@ class ArgoExecutor(GenericPipelineExecutor):
|
|
508
510
|
)
|
509
511
|
|
510
512
|
self._set_up_initial_container(container_template=core_container_template)
|
513
|
+
self._expose_secrets_to_task(
|
514
|
+
working_on=node, container_template=core_container_template
|
515
|
+
)
|
516
|
+
self._set_env_vars_to_task(node, core_container_template)
|
511
517
|
|
512
518
|
container_template = ContainerTemplate(
|
513
519
|
container=core_container_template,
|
@@ -523,12 +529,32 @@ class ArgoExecutor(GenericPipelineExecutor):
|
|
523
529
|
|
524
530
|
return container_template
|
525
531
|
|
532
|
+
def _set_env_vars_to_task(
|
533
|
+
self, working_on: BaseNode, container_template: CoreContainerTemplate
|
534
|
+
):
|
535
|
+
if not isinstance(working_on, TaskNode):
|
536
|
+
return
|
537
|
+
global_envs: dict[str, str] = {}
|
538
|
+
|
539
|
+
for env_var in self.env:
|
540
|
+
global_envs[env_var.name] = env_var.value
|
541
|
+
|
542
|
+
node_overide = {}
|
543
|
+
if hasattr(working_on, "overides"):
|
544
|
+
node_overide = working_on.overides
|
545
|
+
|
546
|
+
global_envs.update(node_overide.get("env", {}))
|
547
|
+
for key, value in global_envs.items():
|
548
|
+
env_var_to_add = EnvVar(name=key, value=value)
|
549
|
+
container_template.env.append(env_var_to_add)
|
550
|
+
|
526
551
|
def _expose_secrets_to_task(
|
527
552
|
self,
|
528
553
|
working_on: BaseNode,
|
529
554
|
container_template: CoreContainerTemplate,
|
530
555
|
):
|
531
|
-
|
556
|
+
if not isinstance(working_on, TaskNode):
|
557
|
+
return
|
532
558
|
secrets = working_on.executable.secrets
|
533
559
|
for secret in secrets:
|
534
560
|
assert self.secret_from_k8s is not None
|
runnable/utils.py
CHANGED
@@ -109,8 +109,16 @@ def apply_variables(
|
|
109
109
|
raise Exception("Argument Variables should be dict")
|
110
110
|
|
111
111
|
json_d = json.dumps(apply_to)
|
112
|
-
|
113
|
-
|
112
|
+
string_template = str_template(json_d)
|
113
|
+
|
114
|
+
template = string_template.safe_substitute(variables)
|
115
|
+
|
116
|
+
if "$" in template:
|
117
|
+
logger.warning(
|
118
|
+
"Not all variables found in the config are found in the variables"
|
119
|
+
)
|
120
|
+
|
121
|
+
return json.loads(template)
|
114
122
|
|
115
123
|
|
116
124
|
def get_module_and_attr_names(command: str) -> Tuple[str, str]:
|
@@ -15,7 +15,7 @@ extensions/nodes/nodes.py,sha256=ib68QE737ihGLIVp3V2wea13u7lmMZdRvK80bgUkRtA,346
|
|
15
15
|
extensions/nodes/pyproject.toml,sha256=YTu-ETN3JNFSkMzzWeOwn4m-O2nbRH-PmiPBALDCUw4,278
|
16
16
|
extensions/pipeline_executor/README.md,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
17
|
extensions/pipeline_executor/__init__.py,sha256=YnKILiy-SxfnG3rYUoinjh1lfkuAF5QXpPePtn6VxBY,25174
|
18
|
-
extensions/pipeline_executor/argo.py,sha256=
|
18
|
+
extensions/pipeline_executor/argo.py,sha256=81Lv8WO2riYo4KdtgpRabl5YtSgrNGGq8PfMo6YLKUY,33154
|
19
19
|
extensions/pipeline_executor/local.py,sha256=H8s6AdML_9_f-vdGG_6k0y9FbLqAqvA1S_7xMNyARzY,1946
|
20
20
|
extensions/pipeline_executor/local_container.py,sha256=HOT9I-cPDCvgy6_bzNEtl4jPhTyeYSn1GK7lplH3vDA,12515
|
21
21
|
extensions/pipeline_executor/mocked.py,sha256=SuObJ6Myt7p8duW8sylIp1cYIAnFutsJW1avWaOUY3c,5798
|
@@ -49,9 +49,9 @@ runnable/pickler.py,sha256=ydJ_eti_U1F4l-YacFp7BWm6g5vTn04UXye25S1HVok,2684
|
|
49
49
|
runnable/sdk.py,sha256=-FvRoIMlbNFOS_8c2kefYA-mlyE_15rNG3GoN6gKumc,33470
|
50
50
|
runnable/secrets.py,sha256=PXcEJw-4WPzeWRLfsatcPPyr1zkqgHzdRWRcS9vvpvM,2354
|
51
51
|
runnable/tasks.py,sha256=YVKpKxSpsRZWcU3MOqoBoqxeo1XSqv5crkOu6kyu63o,28520
|
52
|
-
runnable/utils.py,sha256=
|
53
|
-
runnable-0.
|
54
|
-
runnable-0.
|
55
|
-
runnable-0.
|
56
|
-
runnable-0.
|
57
|
-
runnable-0.
|
52
|
+
runnable/utils.py,sha256=HyYo6Xe4O02eHuT_m9oLqzh7dxdhbmtTqKzgFR2bpWE,19712
|
53
|
+
runnable-0.22.0.dist-info/METADATA,sha256=KsHHJP5DJOu9S1yv7SEid62OEnSg_eBZfBGbgYUWUiw,9945
|
54
|
+
runnable-0.22.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
55
|
+
runnable-0.22.0.dist-info/entry_points.txt,sha256=seek5WVGvwYALm8lZ0TfPXwG5NaCeUKjU8urF8k3gvY,1621
|
56
|
+
runnable-0.22.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
57
|
+
runnable-0.22.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|