Skip to content

DO NOT MERGE: diagnose fork-PR nvcr.io credential loss - #6978

Closed
hujc7 wants to merge 3 commits into
isaac-sim:developfrom
hujc7:jichuanh/ci-docker-cred-diagnostic
Closed

DO NOT MERGE: diagnose fork-PR nvcr.io credential loss#6978
hujc7 wants to merge 3 commits into
isaac-sim:developfrom
hujc7:jichuanh/ci-docker-cred-diagnostic

Conversation

@hujc7

@hujc7 hujc7 commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

1. Purpose — diagnostic only, do not merge

Fork-PR Build cuRobo Docker Image fails pulling the private isaac-sim base
image:

#3 [auth] 0947644777160149/internal/isaac-sim:pull token for nvcr.io
#4 ERROR: failed to authorize: failed to fetch oauth token: denied: Access Denied

In the same run, with the same empty NGC_API_KEY, Build Base Docker Image pulled the same image at the same digest successfully. The two jobs
ran on different runners (ip-10-0-2-183 ✅ / ip-10-0-3-247 ❌), so the
runner credential is what does the work and it differs per instance.

2. What this tests

setup-docker-config repoints DOCKER_CONFIG at a rewritten copy with
credsStore and credHelpers removed. If a runner's nvcr.io credential is
helper-backed, that rewrite destroys the only credential a fork PR has. If it is
a plain auths entry, it survives.

Printing the config shape before and after the rewrite distinguishes the two:

output meaning
has_credential {'nvcr.io': True} plain auths — survives
has_credential {'nvcr.io': False} + credHelpers_for ['nvcr.io'] helper-backed — destroyed by the rewrite
nvcr.io absent runner has no credential

3. Safety

Only dict keys (registry hostnames) and booleans are printed, never values.
Verified locally against a config containing fake credentials: no value appears
in the output.

4. Type of change

  • Diagnostic, to be reverted

hujc7 added 2 commits August 7, 2026 13:56
Fork-PR cuRobo builds fail with "denied: Access Denied" pulling the
private isaac-sim base image, while the base image build succeeds in the
same run with the same empty NGC_API_KEY. The two jobs ran on different
runners, so the runner credential is doing the work and something about
it differs per instance.

The action repoints DOCKER_CONFIG at a rewritten copy with credsStore
and credHelpers removed. If a runner's nvcr.io credential is
helper-backed that rewrite destroys it; if it is a plain auths entry it
survives. Printing the config shape before and after the rewrite
distinguishes the two.

Only registry names and booleans are printed, never credential values.

Remove before merge.
@github-actions github-actions Bot added isaac-lab Related to Isaac Lab team infrastructure labels Aug 7, 2026
The first diagnostic run passed because the deps hash covers the
Dockerfile and install-relevant files but not .github/, so touching only
the action left the hash unchanged, the deps-cache hit, and the image was
never built. No build means no nvcr.io pull and nothing to diagnose.

Remove with the diagnostic.
@hujc7 hujc7 closed this Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

infrastructure isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant