Skip to content

Commit 4e4a993

Browse files
author
Nissan Pow
committed
feat: add test_secrets for k8s secrets verification
1 parent be18a0c commit 4e4a993

2 files changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from metaflow import FlowSpec, step, secrets, project
2+
3+
4+
@project(name="hello_secrets")
5+
class HelloSecretsFlow(FlowSpec):
6+
@step
7+
def start(self):
8+
from metaflow import metaflow_version
9+
10+
print(f"In start step and using metaflow: {metaflow_version.get_version()}")
11+
print("HelloSecretsFlow is starting.")
12+
self.next(self.hello)
13+
14+
@secrets(sources=["mf_secrets_test"])
15+
@step
16+
def hello(self):
17+
import os
18+
19+
self.secrets = os.environ["mf_secrets_test"]
20+
print("Hello secrets: %s" % self.secrets)
21+
self.next(self.end)
22+
23+
@step
24+
def end(self):
25+
pass
26+
27+
28+
if __name__ == "__main__":
29+
HelloSecretsFlow()

test/ux/core/test_basic.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,22 @@ def test_timeout(exec_mode, decospecs, compute_env, tag, scheduler_config):
150150
assert run["work"].task.data.done is True, "Timeout step did not complete"
151151

152152

153+
@pytest.mark.scheduler_only
154+
def test_secrets(exec_mode, decospecs, compute_env, tag, scheduler_config):
155+
"""Test that k8s secrets can be read inside a step."""
156+
run = execute_test_flow(
157+
flow_name="basic/hellosecrets.py",
158+
exec_mode=exec_mode,
159+
decospecs=decospecs,
160+
tag=tag,
161+
scheduler_config=scheduler_config,
162+
test_name="secrets",
163+
tl_args_extra={"env": compute_env},
164+
)
165+
assert run.successful, "Run was not successful"
166+
assert run["hello"].task.data.secrets == "hellosecrets", "Secret value mismatch"
167+
168+
153169
@pytest.mark.conda
154170
def test_hello_conda(exec_mode, decospecs, compute_env, tag, scheduler_config):
155171
run = execute_test_flow(

0 commit comments

Comments
 (0)