Skip to content

ci: Replace Harbor with Artifactory for Docker images - #1688

Merged
dpressle merged 1 commit into
ai-dynamo:mainfrom
ntsemah:HPCINFRA-4417-2
Jun 15, 2026
Merged

dpressle merged 1 commit into
ai-dynamo:mainfrom
ntsemah:HPCINFRA-4417-2

Conversation

@ntsemah

@ntsemah ntsemah commented May 28, 2026 •

Copy link
Copy Markdown
Contributor

What?

Use Artifactory instead of Harbor for Docker image operations

Why?

Justification for the PR. If there is an existing issue/bug, please reference it. For
bug fixes, the 'Why?' and 'What?' can be merged into a single item.

How?

It is optional, but for complex PRs, please provide information about the design,
architecture, approach, etc.

Summary by CodeRabbit

  • Chores
    • CI build and test pipelines switched to a new Artifactory container registry.
    • Registry authentication updated to use the new service token; cluster image pulls now use image-pull secrets.
    • Image references and build args adjusted so base, build and test images are resolved and pulled from the Artifactory layout.

@ntsemah
ntsemah requested a review from a team as a code owner May 28, 2026 09:12
@copy-pr-bot

copy-pr-bot Bot commented May 28, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions

Copy link
Copy Markdown

👋 Hi ntsemah! Thank you for contributing to ai-dynamo/nixl.

Your PR reviewers will review your contribution then trigger the CI to test your changes.

🚀

@ntsemah
ntsemah marked this pull request as draft May 28, 2026 09:12
@coderabbitai

coderabbitai Bot commented May 28, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Jenkins CI matrix YAMLs updated to use NVIDIA Artifactory: registry host/auth/path changed, Kubernetes imagePullSecrets added, BASE_IMAGE build-args and docker login targets refactored to use ${registry_host}, and compile-step credentials switched to svc-nixl-new-artifactory-token.

Changes

CI Registry Configuration Update

Layer / File(s) Summary
Registry host, auth, and path update
.ci/jenkins/lib/build-matrix.yaml, .ci/jenkins/lib/build-wheel-matrix.yaml, .ci/jenkins/lib/test-dl-matrix.yaml, .ci/jenkins/lib/test-matrix.yaml
registry_host, registry_auth, and registry_path updated to point to NVIDIA Artifactory across build and test matrix configs.
Add Kubernetes imagePullSecrets
.ci/jenkins/lib/build-matrix.yaml, .ci/jenkins/lib/build-wheel-matrix.yaml
Added kubernetes.imagePullSecrets: ['artifactory-pull-secret'] to enable pulling images from Artifactory.
BASE_IMAGE composition & docker login
.ci/jenkins/lib/build-wheel-matrix.yaml, .ci/jenkins/lib/test-dl-matrix.yaml, .ci/jenkins/lib/test-matrix.yaml
env.BASE_IMAGE and podman build BASE_IMAGE now built from ${registry_host} (${registry_host}/nixl/base/...); docker login updated to https://${registry_host}.
Compiling NIXL Docker Image credentials
.ci/jenkins/lib/test-matrix.yaml, .ci/jenkins/lib/test-dl-matrix.yaml
Switched the container credentialsId in the “Compiling NIXL Docker Image” steps to svc-nixl-new-artifactory-token and pass creds into podman build.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • Alexey-Rivkin
  • dpressle
  • kdesai-rag
  • aranadive

Poem

🐰 I hopped through YAML rows tonight,

Swapped hosts and tokens, neat and light,
Artifactory hums within the stack,
Secrets tucked so pods pull back,
A tiny hop — CI's set right.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is incomplete. The 'What?' section is filled, but 'Why?' and 'How?' sections contain only placeholder text with no actual justification or implementation details. Replace placeholder text in 'Why?' and 'How?' sections with actual justification (e.g., reasons for switching registries, any business or technical drivers) and implementation details (e.g., changes to registry configuration, credential updates across four YAML files).
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: replacing Harbor with Artifactory for Docker images across all CI configuration files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.ci/jenkins/lib/test-matrix.yaml:
- Around line 25-27: The YAML has a credential mismatch: update any references
to the old nixl_harbor_credentials to use the new svc-nixl-new-artifactory-token
value—specifically change the credentials entry (where credentials: references
nixl_harbor_credentials) and the build step credentialsId (where credentialsId:
nixl_harbor_credentials) to svc-nixl-new-artifactory-token so the registry_auth
(svc-nixl-new-artifactory-token) is used consistently for authentication.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 58cf7bca-c87e-4bd5-a727-7d81293fae28

📥 Commits

Reviewing files that changed from the base of the PR and between 3009db5 and 37e0f10.

📒 Files selected for processing (1)
  • .ci/jenkins/lib/test-matrix.yaml

Comment thread .ci/jenkins/lib/test-matrix.yaml Outdated
@ntsemah
ntsemah force-pushed the HPCINFRA-4417-2 branch 3 times, most recently from ab6ba31 to ff6dadb Compare May 28, 2026 13:29
@ntsemah
ntsemah marked this pull request as ready for review May 28, 2026 13:30
@ntsemah

ntsemah commented May 28, 2026

Copy link
Copy Markdown
Contributor Author

/build

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.ci/jenkins/lib/build-wheel-matrix.yaml:
- Line 129: The docker login invocation uses "https://${registry_host}" which
mismatches how credentials are looked up for pulls; update the docker/login call
that uses the string with registry_host (the line invoking docker login and the
variable ${registry_host}) to pass the registry server name only (i.e.,
"${registry_host}" or include ":port" only if pulls include it) so the auth key
matches image pulls; ensure the same registry_host variable is used without the
https:// scheme in the docker login command.

In @.ci/jenkins/lib/test-dl-matrix.yaml:
- Around line 100-108: The BASE_IMAGE reference is pulling from
${HARBOR_REGISTRY}/nixl/base/... even though this job publishes the fresh base
to Artifactory earlier; update the BASE_IMAGE build-arg or add an explicit sync
so the job uses the freshly produced Artifactory image instead of a potentially
stale Harbor copy. Specifically, change the --build-arg BASE_IMAGE assignment
used in the podman build command (the BASE_IMAGE variable) to point at the
Artifactory output registry/hostname used earlier in the matrix (or insert a
step that pushes the produced nixl-ci-dl-gpu-base-25.10-cuda13.0-ubuntu24.04
image into ${HARBOR_REGISTRY} before the podman build) so the same-job handoff
is deterministic.

In @.ci/jenkins/lib/test-matrix.yaml:
- Around line 97-105: The job is using
BASE_IMAGE=${HARBOR_REGISTRY}/nixl/base/... which points at Harbor instead of
the freshly published base image produced earlier; update the podman build
invocation to reference the new base image location (the Artifactory/ matrix
output variable that holds the just-built
nixl-ci-gpu-base-25.10-cuda13.0-ubuntu24.04 image) or add a mirror/push step
that copies the just-built base into ${HARBOR_REGISTRY} before the podman build;
modify the BASE_IMAGE argument used in the podman build (and any use of
${HARBOR_REGISTRY}) so the job consumes the current run's base image rather than
a stale Harbor artifact.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 665e197e-6809-423c-a7f3-7cb7529da061

📥 Commits

Reviewing files that changed from the base of the PR and between 37e0f10 and ff6dadb.

📒 Files selected for processing (4)
  • .ci/jenkins/lib/build-matrix.yaml
  • .ci/jenkins/lib/build-wheel-matrix.yaml
  • .ci/jenkins/lib/test-dl-matrix.yaml
  • .ci/jenkins/lib/test-matrix.yaml

Comment thread .ci/jenkins/lib/build-wheel-matrix.yaml
Comment thread .ci/jenkins/lib/test-dl-matrix.yaml Outdated
Comment thread .ci/jenkins/lib/test-matrix.yaml Outdated
@ntsemah
ntsemah force-pushed the HPCINFRA-4417-2 branch from ff6dadb to dfc98e6 Compare June 7, 2026 10:52

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.ci/jenkins/lib/test-matrix.yaml (1)

96-104: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Use the repo-qualified Artifactory path for these image refs.

PR_IMAGE, BASE_IMAGE, and the downstream dockerImage values now point at ${registry_host}/nixl/..., but the Artifactory migration elsewhere in this PR uses a repo-qualified prefix like ${registry_host}/sw-nbu-swx-nixl-docker-local/.... That drops the repository segment configured by registry_path, so this step can push to one location while later consumers pull from another or from a non-existent repo. Build these refs from the shared Artifactory prefix instead of hardcoding /nixl/....

Also applies to: 141-141, 156-156, 171-171, 186-186

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.ci/jenkins/lib/test-matrix.yaml around lines 96 - 104, The image refs are
hardcoded to ${registry_host}/nixl/... which ignores the repo-qualified prefix
used elsewhere; update the assignments and any downstream dockerImage references
(specifically PR_IMAGE, BASE_IMAGE and the dockerImage variables) to build from
the shared Artifactory prefix by inserting the configured registry path (e.g.
use ${registry_host}/${registry_path}/nixl/...) so pushes and pulls use the same
repo-qualified location across the pipeline.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In @.ci/jenkins/lib/test-matrix.yaml:
- Around line 96-104: The image refs are hardcoded to ${registry_host}/nixl/...
which ignores the repo-qualified prefix used elsewhere; update the assignments
and any downstream dockerImage references (specifically PR_IMAGE, BASE_IMAGE and
the dockerImage variables) to build from the shared Artifactory prefix by
inserting the configured registry path (e.g. use
${registry_host}/${registry_path}/nixl/...) so pushes and pulls use the same
repo-qualified location across the pipeline.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 4dfbdeda-1cd9-4c25-9f86-cc1b120a71ac

📥 Commits

Reviewing files that changed from the base of the PR and between ff6dadb and dfc98e6.

📒 Files selected for processing (4)
  • .ci/jenkins/lib/build-matrix.yaml
  • .ci/jenkins/lib/build-wheel-matrix.yaml
  • .ci/jenkins/lib/test-dl-matrix.yaml
  • .ci/jenkins/lib/test-matrix.yaml

@ntsemah
ntsemah force-pushed the HPCINFRA-4417-2 branch from dfc98e6 to 5b42164 Compare June 7, 2026 11:00
@ntsemah

ntsemah commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

/build

@ntsemah
ntsemah force-pushed the HPCINFRA-4417-2 branch from 5b42164 to 0f72b1d Compare June 7, 2026 12:31
@ntsemah

ntsemah commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

/build

@ntsemah
ntsemah force-pushed the HPCINFRA-4417-2 branch from 0f72b1d to d6b9f4f Compare June 7, 2026 12:32
@ntsemah

ntsemah commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

/build

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.ci/jenkins/lib/test-matrix.yaml:
- Around line 95-107: The pipeline exposes Artifactory credentials by using
--creds ${REPO_USER}:${REPO_PASS} with set -x and passing them on the podman
build/push command lines; replace this by performing an authenticated session
before the build: run podman login against ${registry_host} using --username
${REPO_USER} and --password-stdin (feed ${REPO_PASS} via stdin or a masked
credential variable) and then remove the --creds arguments from the podman build
and podman push invocations (affecting the podman build --creds and podman push
--creds usages), and ensure any set -x tracing is disabled or scoped away from
the login step so secrets are not echoed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: d41a5802-8484-4d5a-bdc4-7dbc5e8b6b43

📥 Commits

Reviewing files that changed from the base of the PR and between 5b42164 and d6b9f4f.

📒 Files selected for processing (4)
  • .ci/jenkins/lib/build-matrix.yaml
  • .ci/jenkins/lib/build-wheel-matrix.yaml
  • .ci/jenkins/lib/test-dl-matrix.yaml
  • .ci/jenkins/lib/test-matrix.yaml

Comment thread .ci/jenkins/lib/test-matrix.yaml Outdated
@ntsemah

ntsemah commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

/build

@ntsemah
ntsemah force-pushed the HPCINFRA-4417-2 branch from d6b9f4f to 640e9da Compare June 7, 2026 13:19
@ntsemah

ntsemah commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

/build

1 similar comment
@ntsemah

ntsemah commented Jun 7, 2026

Copy link
Copy Markdown
Contributor Author

/build

@dpressle

dpressle commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

/ok to test 640e9da

Use Artifactory instead of Harbor for Docker image operations

Signed-off-by: Noam Tsemah <ntsemah@nvidia.com>
@ntsemah

ntsemah commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

/build

1 similar comment
@ntsemah

ntsemah commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

/build

@ntsemah

ntsemah commented Jun 10, 2026

Copy link
Copy Markdown
Contributor Author

@NirWolfer NirWolfer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you see that in some instances the upload itself takes over 20 minutes? seems very slow and maybe worth investigating further

@dpressle

Copy link
Copy Markdown
Contributor

/ok to test 9774890

@dpressle
dpressle merged commit 64e8314 into ai-dynamo:main Jun 15, 2026
16 checks passed
NirWolfer added a commit that referenced this pull request Oct 4, 2026
## Summary
Move the `nixl-ci-test-sanitizers` base images (`-asan` / `-tsan`) from
Harbor to Artifactory, matching the other CI base images (#1688).

## Changes
- `test-sanitizer-matrix.yaml`: switch `registry_host` / `registry_auth`
/ `registry_path` to `artifactory.nvidia.com`,
`svc-nixl-new-artifactory-token`, `/sw-nbu-swx-nixl-docker-local/ci`
- Add the `artifactory-pull-secret` image pull secret to the Kubernetes
config
- No cleanup change needed: the images land under `ci/x86_64/`, already
covered by the `ci/**` base-image rule in `.ci/cleanup-spec.json`

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated the sanitizer test environment’s container image source and
pull credentials. This affects automated testing infrastructure; no
changes to end-user features or behavior.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Signed-off-by: NirWolfer <nwolfer@nvidia.com>

This branch was previously deployed

1 inactive deployment
SWX_AWS — 97748901 Deployed Jun 15, 2026 by copy-pr-bot[bot] via Run AWS Tests #7742
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants