fix(copaw): configure static MinIO alias in Kubernetes - #1228
Merged
shiyiyue1102 merged 1 commit intoSep 11, 2026
Merged
Conversation
Change-Id: Ic130d6d32f03bd9dbc8afd69064bcc0f262492b5
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
mcalias for Kubernetes Workers using MinIO when noMC_HOST_<alias>is presentMC_HOST_<alias>path for OSSstorage.provider=osshas no controller-issued credentials instead of falling back to placeholder static credentialsRoot cause
FileSync._ensure_alias()previously skippedmc alias setfor every Kubernetes Worker because it assumedmc-wrapperconfigured the alias. The wrapper only provisionsMC_HOST_agentteamsfor OSS/STS; it is intentionally a pass-through for MinIO. Therefore default Kubernetes + MinIO Workers had neither anMC_HOST_agentteamsalias nor a static alias, andmc mirror agentteams/...resolved its source as a local filesystem path.The fix makes the decision provider-aware:
MC_HOST_agentteams: use the controller-issued alias (OSS/STS)provider=osswithoutMC_HOST_agentteams: fail explicitly because the credential contract is brokenReproduction
On
origin/mainateeaab643, both the new regression test and an isolated real-MinIO container test reproduce the issue. The releasedv1.2.3image fails with:Verification
python -m pytest tests/test_worker_sync.py tests/test_copaw_worker_entrypoint.py -q— 9 passedpython -m compileall -q src/copaw_workergit diff --check origin/main...HEADRELEASE.2025-04-22T22-12-26Z:v1.2.3: reproduced the local-path failure above.copaw/config.json,.copaw/providers.json, and.copaw/workspaces/default/agent.jsonwere materialized; a runtime session file was uploaded and read back from MinIOMC_HOST_agentteams: the same mirror, bridge, and runtime-persistence flow succeeded, covering the OSS/STS alias boundaryshared/prefix remained a non-fatal warning as designed and did not block initializationThe unfiltered local CoPaw suite was also attempted, but it is not a clean baseline in this environment: 87 unrelated failures occur across bridge, Matrix, health, and other existing test areas. The touched sync and credential-entrypoint scopes pass independently.
This is a current-
main, provider-aware, tested alternative to #901, which remains blocked on the missing tests and OSS credential boundary.Fixes #957
Fixes #1226
Summary
mcalias for Kubernetes Workers using MinIO when noMC_HOST_<alias>is presentMC_HOST_<alias>path for OSSstorage.provider=osshas no controller-issued credentials instead of falling back to placeholder static credentialsRoot cause
FileSync._ensure_alias()previously skippedmc alias setfor every Kubernetes Worker because it assumedmc-wrapperconfigured the alias. The wrapper only provisionsMC_HOST_agentteamsfor OSS/STS; it is intentionally a pass-through for MinIO. Therefore default Kubernetes + MinIO Workers had neither anMC_HOST_agentteamsalias nor a static alias, andmc mirror agentteams/...resolved its source as a local filesystem path.The fix makes the decision provider-aware:
MC_HOST_agentteams: use the controller-issued alias (OSS/STS)provider=osswithoutMC_HOST_agentteams: fail explicitly because the credential contract is brokenReproduction
On
origin/mainateeaab643, both the new regression test and an isolated real-MinIO container test reproduce the issue. The releasedv1.2.3image fails with:Verification
python -m pytest tests/test_worker_sync.py tests/test_copaw_worker_entrypoint.py -q— 9 passedpython -m compileall -q src/copaw_workergit diff --check origin/main...HEADRELEASE.2025-04-22T22-12-26Z:v1.2.3: reproduced the local-path failure above.copaw/config.json,.copaw/providers.json, and.copaw/workspaces/default/agent.jsonwere materialized; a runtime session file was uploaded and read back from MinIOMC_HOST_agentteams: the same mirror, bridge, and runtime-persistence flow succeeded, covering the OSS/STS alias boundaryshared/prefix remained a non-fatal warning as designed and did not block initializationThe unfiltered local CoPaw suite was also attempted, but it is not a clean baseline in this environment: 87 unrelated failures occur across bridge, Matrix, health, and other existing test areas. The touched sync and credential-entrypoint scopes pass independently.
This is a current-
main, provider-aware, tested alternative to #901, which remains blocked on the missing tests and OSS credential boundary.Fixes #957
Fixes #1226