mirror of
https://github.com/kvcache-ai/AgentENV.git
synced 2026-11-05 01:17:36 +00:00
[PR #230] [MERGED] fix: preserve anonymous OverlayBD credential mode #271
Labels
No labels
bug
documentation
enhancement
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
kvcache-ai/AgentENV#271
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/kvcache-ai/AgentENV/pull/230
Author: @ranxi2001
Created: 8/29/2026
Status: ✅ Merged
Merged: 8/31/2026
Merged by: @yingdi-shan
Base:
main← Head:fix/anonymous-overlaybd-credentials📝 Commits (1)
e07bbdefix: preserve anonymous OverlayBD credential mode📊 Changes
1 file changed (+87 additions, -14 deletions)
View changed files
📝
src/setup/deps.rs(+87 -14)📄 Description
What
Generated OverlayBD global configs now keep the legacy
credentialFilePathaligned with the moderncredentialConfig.pathfor both anonymous and file-backed registry access.Why
When no Docker credential file is detected, AgentENV writes an explicit empty
credentialConfigbut previously omittedcredentialFilePath.GlobalConfig::default()then supplied/opt/overlaybd/cred.json, allowing compatibility normalization to restorefilemode and making public OverlayBD-native images fail on a nonexistent credential file.Related issue
Closes #128
Scope and non-goals
The change is limited to AgentENV-generated OverlayBD configuration and its tests. It does not change
GlobalConfigdefaults, legacy compatibility fallback behavior, registry token negotiation, or credential storage.Design and behavior changes
Both credential representations now derive from the same detected Docker credential path:
filemode remains effective.Regression coverage checks both mappings and reloads the generated rootfs, memory, conversion, and resize configs to verify their effective credential mode and path.
Compatibility and operations
credentialFilePath, matchingcredentialConfig.path. Without a detected Docker credential file, both paths are explicitly empty./opt/overlaybd/cred.jsonwill now use anonymous registry access unless that credential is exposed through a detected Docker config; rollback removes the added legacy field.Validation
make fmtmake clippymake test-unitmake -C services test(required whenservices/changes)maketargetCommands and results:
Skipped checks and reasons:
make test-unit: its capability and ublk tiers require host support unavailable on the local WSL kernel; the non-privilegedagentenv --libsuite passed.Risks and reviewer notes
The main compatibility risk is private-registry behavior. A generated config without a detected Docker credential now explicitly disables the legacy
/opt/overlaybd/cred.jsonfallback, matching its existing empty modern config. The file-backed case is covered by asserting that modern and legacy paths remain identical; global legacy fallback semantics for other configs are unchanged.The repository's current E2E suite does not contain an anonymous public OverlayBD-native image scenario, so the deterministic generate-and-reload regression is the direct counterexample coverage for this bug.
Checklist
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.