From 979d6eac59c409e3648269937a6b2d25979b3025 Mon Sep 17 00:00:00 2001 From: EnjoyBacon7 <59032058+EnjoyBacon7@users.noreply.github.com> Date: Thu, 25 Jun 2026 13:41:57 +0000 Subject: [PATCH] fix(quick_start): align MinIO credential vars with documented .env MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The quickstart guide tells users to `cp .env.example .env` (which defines `MINIO_ACCESS_KEY` / `MINIO_SECRET_KEY`) and drop that file in `quick_start/`. But `quick_start/vdb/milvus.yaml` required `MINIO_ROOT_USER` / `MINIO_ROOT_PASSWORD` with fail-fast `:?` interpolation — variables no `.env.example` anywhere defines — so the documented flow aborts during compose interpolation before the stack starts. Switch the quick_start minio + milvus services to the same `MINIO_ACCESS_KEY` / `MINIO_SECRET_KEY` variables used by the main compose stack, the named-volume profile, and the Ollama CPU asset, so a single documented `.env` works everywhere and Milvus's object-storage creds match minio's. Update the compose-storage test accordingly (it previously locked in the `MINIO_ROOT_*` names) and assert the vars exist in `.env.example`. Co-Authored-By: Claude Opus 4.8 (1M context) --- infra/quick_start/vdb/milvus.yaml | 8 ++++---- tests/unit/infra/test_compose_storage.py | 21 ++++++++++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/infra/quick_start/vdb/milvus.yaml b/infra/quick_start/vdb/milvus.yaml index b5743fde5..f8d7e1e92 100644 --- a/infra/quick_start/vdb/milvus.yaml +++ b/infra/quick_start/vdb/milvus.yaml @@ -18,8 +18,8 @@ services: minio: image: minio/minio:RELEASE.2023-03-20T20-16-18Z environment: - MINIO_ROOT_USER: ${MINIO_ROOT_USER:?Set MINIO_ROOT_USER in your .env} - MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:?Set MINIO_ROOT_PASSWORD in your .env} + MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY:?Set MINIO_ACCESS_KEY in your .env} + MINIO_SECRET_KEY: ${MINIO_SECRET_KEY:?Set MINIO_SECRET_KEY in your .env} volumes: - ${MILVUS_VOLUME_DIRECTORY:-./volumes}/minio:/minio_data command: minio server /minio_data --console-address ":9001" @@ -37,8 +37,8 @@ services: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 # Keep Milvus's MinIO credentials in sync with the minio service above. - MINIO_ACCESS_KEY_ID: ${MINIO_ROOT_USER:?Set MINIO_ROOT_USER in your .env} - MINIO_SECRET_ACCESS_KEY: ${MINIO_ROOT_PASSWORD:?Set MINIO_ROOT_PASSWORD in your .env} + MINIO_ACCESS_KEY_ID: ${MINIO_ACCESS_KEY:?Set MINIO_ACCESS_KEY in your .env} + MINIO_SECRET_ACCESS_KEY: ${MINIO_SECRET_KEY:?Set MINIO_SECRET_KEY in your .env} volumes: - ${MILVUS_VOLUME_DIRECTORY:-./volumes}/milvus:/var/lib/milvus healthcheck: diff --git a/tests/unit/infra/test_compose_storage.py b/tests/unit/infra/test_compose_storage.py index d81000123..f88512b14 100644 --- a/tests/unit/infra/test_compose_storage.py +++ b/tests/unit/infra/test_compose_storage.py @@ -84,18 +84,25 @@ def test_named_volume_profile_is_opt_in() -> None: assert milvus_env["MINIO_SECRET_ACCESS_KEY"] == "${MINIO_SECRET_KEY:?Set MINIO_SECRET_KEY in your .env}" -def test_quick_start_milvus_uses_current_minio_root_env_names() -> None: +def test_quick_start_milvus_uses_matching_minio_credentials() -> None: + # The quickstart docs tell users to ``cp .env.example .env`` (which defines + # MINIO_ACCESS_KEY / MINIO_SECRET_KEY) and drop it in quick_start/. The + # quick_start compose must therefore read the same variable names, both so + # interpolation succeeds and so Milvus's object-storage creds match minio's. quickstart = _load_yaml(ROOT / "infra" / "quick_start" / "vdb" / "milvus.yaml") + default_env_values = _load_env_example(COMPOSE_DIR / ".env.example") minio_env = quickstart["services"]["minio"]["environment"] milvus_env = quickstart["services"]["milvus"]["environment"] - assert "MINIO_ACCESS_KEY" not in minio_env - assert "MINIO_SECRET_KEY" not in minio_env - assert minio_env["MINIO_ROOT_USER"] == "${MINIO_ROOT_USER:?Set MINIO_ROOT_USER in your .env}" - assert minio_env["MINIO_ROOT_PASSWORD"] == "${MINIO_ROOT_PASSWORD:?Set MINIO_ROOT_PASSWORD in your .env}" - assert milvus_env["MINIO_ACCESS_KEY_ID"] == "${MINIO_ROOT_USER:?Set MINIO_ROOT_USER in your .env}" - assert milvus_env["MINIO_SECRET_ACCESS_KEY"] == "${MINIO_ROOT_PASSWORD:?Set MINIO_ROOT_PASSWORD in your .env}" + assert "MINIO_ROOT_USER" not in minio_env + assert "MINIO_ROOT_PASSWORD" not in minio_env + assert "MINIO_ACCESS_KEY" in default_env_values + assert "MINIO_SECRET_KEY" in default_env_values + assert minio_env["MINIO_ACCESS_KEY"] == "${MINIO_ACCESS_KEY:?Set MINIO_ACCESS_KEY in your .env}" + assert minio_env["MINIO_SECRET_KEY"] == "${MINIO_SECRET_KEY:?Set MINIO_SECRET_KEY in your .env}" + assert milvus_env["MINIO_ACCESS_KEY_ID"] == minio_env["MINIO_ACCESS_KEY"] + assert milvus_env["MINIO_SECRET_ACCESS_KEY"] == minio_env["MINIO_SECRET_KEY"] def test_ollama_cpu_milvus_uses_matching_minio_credentials() -> None: