Skip to content

Commit 6d53a17

Browse files
Ygnasjgarciao
andcommitted
fix: use secretKeyRef for VLLM tokens and AWS credentials to prevent credential leaks in logs (#1248)
Move VLLM_API_TOKEN and VLLM_EMBEDDING_API_TOKEN from plain env var values to K8s secretKeyRef, matching the existing pattern used for POSTGRES_PASSWORD. Add both tokens to LLAMA_STACK_DISTRIBUTION_SECRET_DATA and relocate the dict after all secret variables are defined. Add AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY to the llamastack-distribution-secret and reference them via secretKeyRef instead of passing plaintext values, consistent with the VLLM token handling. Signed-off-by: Ignas Baranauskas <ibaranau@redhat.com> Co-authored-by: Jorge <jgarciao@users.noreply.github.com>
1 parent 730e637 commit 6d53a17

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed

tests/fixtures/files.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,13 @@ def _factory(provider_name: str) -> list[Dict[str, str]]:
6363
})
6464
env_vars.append({
6565
"name": "AWS_ACCESS_KEY_ID",
66-
"value": request.getfixturevalue(argname="aws_access_key_id"),
66+
"valueFrom": {"secretKeyRef": {"name": "llamastack-distribution-secret", "key": "aws-access-key-id"}},
6767
})
6868
env_vars.append({
6969
"name": "AWS_SECRET_ACCESS_KEY",
70-
"value": request.getfixturevalue(argname="aws_secret_access_key"),
70+
"valueFrom": {
71+
"secretKeyRef": {"name": "llamastack-distribution-secret", "key": "aws-secret-access-key"}
72+
},
7173
})
7274
env_vars.append({"name": "S3_AUTO_CREATE_BUCKET", "value": S3_AUTO_CREATE_BUCKET})
7375

tests/llama_stack/conftest.py

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,6 @@
4444
POSTGRESQL_USER = os.getenv("LLS_VECTOR_IO_POSTGRESQL_USER", "ps_user")
4545
POSTGRESQL_PASSWORD = os.getenv("LLS_VECTOR_IO_POSTGRESQL_PASSWORD", "ps_password")
4646

47-
LLAMA_STACK_DISTRIBUTION_SECRET_DATA = {
48-
"postgres-user": POSTGRESQL_USER,
49-
"postgres-password": POSTGRESQL_PASSWORD,
50-
}
51-
5247
LLS_CORE_INFERENCE_MODEL = os.getenv("LLS_CORE_INFERENCE_MODEL", "")
5348
LLS_CORE_VLLM_URL = os.getenv("LLS_CORE_VLLM_URL", "")
5449
LLS_CORE_VLLM_API_TOKEN = os.getenv("LLS_CORE_VLLM_API_TOKEN", "")
@@ -64,6 +59,18 @@
6459
LLS_CORE_VLLM_EMBEDDING_MAX_TOKENS = os.getenv("LLS_CORE_VLLM_EMBEDDING_MAX_TOKENS", "8192")
6560
LLS_CORE_VLLM_EMBEDDING_TLS_VERIFY = os.getenv("LLS_CORE_VLLM_EMBEDDING_TLS_VERIFY", "true")
6661

62+
LLS_CORE_AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID", "")
63+
LLS_CORE_AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY", "")
64+
65+
LLAMA_STACK_DISTRIBUTION_SECRET_DATA = {
66+
"postgres-user": POSTGRESQL_USER,
67+
"postgres-password": POSTGRESQL_PASSWORD,
68+
"vllm-api-token": LLS_CORE_VLLM_API_TOKEN,
69+
"vllm-embedding-api-token": LLS_CORE_VLLM_EMBEDDING_API_TOKEN,
70+
"aws-access-key-id": LLS_CORE_AWS_ACCESS_KEY_ID,
71+
"aws-secret-access-key": LLS_CORE_AWS_SECRET_ACCESS_KEY,
72+
}
73+
6774
IBM_EARNINGS_DOC_URL = "https://www.ibm.com/downloads/documents/us-en/1550f7eea8c0ded6"
6875

6976
UPGRADE_DISTRIBUTION_NAME = "llama-stack-distribution-upgrade"
@@ -167,11 +174,12 @@ def test_with_remote_milvus(llama_stack_server_config):
167174
inference_model = LLS_CORE_INFERENCE_MODEL
168175
env_vars.append({"name": "INFERENCE_MODEL", "value": inference_model})
169176

170-
if params.get("vllm_api_token"):
171-
vllm_api_token = str(params.get("vllm_api_token"))
172-
else:
173-
vllm_api_token = LLS_CORE_VLLM_API_TOKEN
174-
env_vars.append({"name": "VLLM_API_TOKEN", "value": vllm_api_token})
177+
env_vars.append(
178+
{
179+
"name": "VLLM_API_TOKEN",
180+
"valueFrom": {"secretKeyRef": {"name": "llamastack-distribution-secret", "key": "vllm-api-token"}},
181+
},
182+
)
175183

176184
if params.get("vllm_url_fixture"):
177185
vllm_url = str(request.getfixturevalue(argname=params.get("vllm_url_fixture")))
@@ -196,7 +204,14 @@ def test_with_remote_milvus(llama_stack_server_config):
196204
env_vars.append({"name": "EMBEDDING_MODEL", "value": LLS_CORE_EMBEDDING_MODEL})
197205
env_vars.append({"name": "EMBEDDING_PROVIDER_MODEL_ID", "value": LLS_CORE_EMBEDDING_PROVIDER_MODEL_ID})
198206
env_vars.append({"name": "VLLM_EMBEDDING_URL", "value": LLS_CORE_VLLM_EMBEDDING_URL})
199-
env_vars.append({"name": "VLLM_EMBEDDING_API_TOKEN", "value": LLS_CORE_VLLM_EMBEDDING_API_TOKEN})
207+
env_vars.append(
208+
{
209+
"name": "VLLM_EMBEDDING_API_TOKEN",
210+
"valueFrom": {
211+
"secretKeyRef": {"name": "llamastack-distribution-secret", "key": "vllm-embedding-api-token"}
212+
},
213+
},
214+
)
200215
env_vars.append({"name": "VLLM_EMBEDDING_MAX_TOKENS", "value": LLS_CORE_VLLM_EMBEDDING_MAX_TOKENS})
201216
env_vars.append({"name": "VLLM_EMBEDDING_TLS_VERIFY", "value": LLS_CORE_VLLM_EMBEDDING_TLS_VERIFY})
202217
elif embedding_provider == "sentence-transformers":

0 commit comments

Comments
 (0)