Skip to content

feat(cli): add --annotation to sandbox create - #4325

Open
ericcurtin wants to merge 4 commits into
NVIDIA:mainfrom
ericcurtin:feat/4303-sandbox-create-annotations/ericcurtin
Open

ericcurtin wants to merge 4 commits into
NVIDIA:mainfrom
ericcurtin:feat/4303-sandbox-create-annotations/ericcurtin

Conversation

@ericcurtin

@ericcurtin ericcurtin commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Add repeatable --annotation KEY=VALUE to sandbox create.

Related Issue

Closes #4303

Changes

  • New --annotation flag, merged with the ephemeral retention annotation.
  • --label now uses the shared parse_key_value_pairs (also trims keys and rejects empty ones).
  • Docs and CLI skill updated.

Testing

  • Checks appropriate to the affected code and behavior pass
  • Unit tests added/updated (if applicable)
  • E2E tests added/updated (if applicable)

cargo fmt, cargo clippy -p openshell-cli --all-targets -- -D warnings, cargo test -p openshell-cli (lib, bin, sandbox_create_lifecycle_integration), and markdownlint on changed docs.

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

@copy-pr-bot

copy-pr-bot Bot commented Oct 8, 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.

Comment thread crates/openshell-cli/src/commands/common.rs Outdated
@ericcurtin

Copy link
Copy Markdown
Contributor Author

@elezar @johntmyers PTAL when you get a chance. Thank you!

elezar
elezar previously requested changes Oct 8, 2026

@elezar elezar left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Please remove the CLI-only reserved annotation key check, its associated test, and the documentation stating that openshell.nvidia.com/ is reserved.

Annotation ownership should be defined consistently and enforced by the gateway across all clients. Existing annotations use both openshell.nvidia.com/ and internal.openshell.ai/, and some keys under the former already support caller/interceptor-supplied provenance.

Follow-up issue #4333 covers namespace consistency and gateway enforcement where reservation applies, including compatibility with retention and provenance workflows. This PR can stay focused on exposing creation-time annotations.

@ericcurtin

Copy link
Copy Markdown
Contributor Author

Please remove the CLI-only reserved annotation key check, its associated test, and the documentation stating that openshell.nvidia.com/ is reserved.

Annotation ownership should be defined consistently and enforced by the gateway across all clients. Existing annotations use both openshell.nvidia.com/ and internal.openshell.ai/, and some keys under the former already support caller/interceptor-supplied provenance.

Follow-up issue #4333 covers namespace consistency and gateway enforcement where reservation applies, including compatibility with retention and provenance workflows. This PR can stay focused on exposing creation-time annotations.

Good call removing the company name from openshell.nvidia.com/ and allowing internal.openshell.ai/ FWIW. When you start blurring the name of the company with the name of the upstream project things can get messy fast...

@ericcurtin

Copy link
Copy Markdown
Contributor Author

Removed the reserved key check, its test, and the docs note. @elezar PTAL, and /ok to test 2c1004639c36d1178093ae057542de0eabb58f12 if it looks good. Thank you!

@johntmyers johntmyers added the test:e2e Requires end-to-end coverage label Oct 12, 2026
@johntmyers

Copy link
Copy Markdown
Collaborator

/ok to test 2c10046

@github-actions

Copy link
Copy Markdown

Label test:e2e applied for 2c10046. Open Branch E2E Checks, find the run for commit 2c10046, and click Re-run all jobs to execute with the label set. The run will execute the standard E2E suite after building the required gateway, sandbox, and supervisor images once. The matching required CI gate status on this PR will flip green automatically once the run finishes.

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

gator-agent

PR Review Status

The full patch has no blocking findings. Thanks @ericcurtin, I checked your update removing the reserved-key check, test, and docs note requested by @elezar; those changes are present, and gateway-wide annotation ownership remains tracked in #4333. The annotation parser, creation request, ephemeral retention handling, tests, and published docs are consistent with this focused change.

Required tests are now queued or running on this head after applying test:e2e and posting /ok to test. The label-help bot suggested rerunning E2E, but the mirror push created a fresh E2E run after the label was applied; run 38296825072 is queued with its PR-metadata job complete. Gator will monitor its results. Maintainer approval remains outstanding.

Blocking findings: None.
Carried findings: None.
Non-blocking suggestions: None.

Gator metadata
  • Validation: Concentrated CLI implementation of accepted issue #4303.
  • Docs: Fern sandbox overview and public CLI skill updated; no navigation change needed.
  • Checks: DCO and Trivy pass; current-head Branch Checks and Helm Lint running.
  • E2E: test:e2e applied; fresh current-head Branch E2E Checks run 38296825072 queued.
  • Head SHA: 2c1004639c36d1178093ae057542de0eabb58f12
  • Base SHA: 67adcf1a3cf054be54dfdbf6a44c65b4d426b1ec
  • Merge base SHA: 67adcf1a3cf054be54dfdbf6a44c65b4d426b1ec
  • Patch ID: ae252e0cbe00a52d2e864f6375e4bc3f15a77e1a
  • Gator payload: 12
  • Review mode: initial
  • Previous reviewed SHA: none
  • Review budget exhausted: no
  • Maintainer decision required: no
  • Next state: gator:watch-pipeline

@johntmyers johntmyers added gator:watch-pipeline Gator is monitoring PR CI/CD status gator:approval-needed Gator completed review; maintainer approval needed and removed gator:watch-pipeline Gator is monitoring PR CI/CD status labels Oct 12, 2026
johntmyers
johntmyers previously approved these changes Oct 12, 2026
@johntmyers
johntmyers requested a review from elezar October 12, 2026 20:07
@johntmyers
johntmyers enabled auto-merge October 12, 2026 20:07
@johntmyers johntmyers added gator:merge-ready gator:blocked Gator is blocked by process or repository gates and removed gator:approval-needed Gator completed review; maintainer approval needed gator:merge-ready gator:blocked Gator is blocked by process or repository gates labels Oct 12, 2026
@johntmyers johntmyers added the gator:in-review Gator is reviewing or awaiting PR review feedback label Oct 14, 2026
Signed-off-by: Eric Curtin <eric.curtin@docker.com>
Signed-off-by: Eric Curtin <eric.curtin@docker.com>
Signed-off-by: Eric Curtin <eric.curtin@docker.com>
@ericcurtin
ericcurtin force-pushed the feat/4303-sandbox-create-annotations/ericcurtin branch from 2c10046 to bdd8c4d Compare October 14, 2026 20:29
@ericcurtin

Copy link
Copy Markdown
Contributor Author

Rebased and fixed the test compile break from main. @johntmyers PTAL, and /ok to test bdd8c4dde9892fd503c38fd9a8b2888749371015 if it looks good. Thank you!

@johntmyers

Copy link
Copy Markdown
Collaborator

/ok to test bdd8c4d

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

gator-agent

PR Review Status

No blocking findings remain after the follow-up review. Thanks @ericcurtin, I checked your rebase and test compilation fix in response to @johntmyers: both annotation tests now use the current environment helper, and the author-only delta introduces no identified regression. @elezar's earlier request to remove CLI-only annotation reservation remains addressed; gateway-wide ownership stays tracked in #4333.

The current-head Branch Checks and E2E workflows are queued or running after @johntmyers posted /ok to test. E2E run 38634070862 was created with test:e2e already applied and has build jobs queued, so no additional rerun is needed. Gator will monitor the results; maintainer approval is still outstanding.

Blocking findings: None.
Carried findings: None.

Gator metadata
  • Validation: Concentrated CLI implementation of accepted issue #4303.
  • Docs: Fern sandbox overview and public CLI skill updated; no navigation change needed.
  • Checks: DCO, Helm Lint, and Trivy pass; current-head Branch Checks running.
  • E2E: test:e2e applied; current-head Branch E2E Checks run 38634070862 queued with build jobs queued.
  • Head SHA: bdd8c4dde9892fd503c38fd9a8b2888749371015
  • Base SHA: 68b10822ce1b65b376c5c60176b765f793f460fd
  • Merge base SHA: 68b10822ce1b65b376c5c60176b765f793f460fd
  • Patch ID: f7976e37ed0a82e040598b4aa749d60d66f36abe
  • Gator payload: 12
  • Review mode: follow_up
  • Previous reviewed SHA: 2c1004639c36d1178093ae057542de0eabb58f12
  • Review budget exhausted: no
  • Maintainer decision required: no
  • Next state: gator:watch-pipeline

@johntmyers johntmyers added gator:watch-pipeline Gator is monitoring PR CI/CD status gator:approval-needed Gator completed review; maintainer approval needed and removed gator:in-review Gator is reviewing or awaiting PR review feedback gator:watch-pipeline Gator is monitoring PR CI/CD status labels Oct 14, 2026
johntmyers
johntmyers previously approved these changes Oct 15, 2026
@johntmyers
johntmyers added this pull request to the merge queue Oct 15, 2026
@johntmyers johntmyers added gator:merge-ready and removed gator:approval-needed Gator completed review; maintainer approval needed labels Oct 15, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 15, 2026
Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>
@johntmyers

Copy link
Copy Markdown
Collaborator

/ok to test ff0192c

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

gator-agent

PR Review Status

No blocking findings remain after reviewing the author-only delta and merge resolution. @johntmyers, I checked your update integrating main and boxing the forwarding-test future: the merge resolution changes test allocation without changing annotation behavior. @ericcurtin's earlier test-helper fix and @elezar's request to remove CLI-only annotation reservation remain addressed; gateway-wide annotation ownership stays tracked in #4333.

Branch Checks and E2E are already running for this head after @johntmyers posted /ok to test. The E2E workflow was created with test:e2e already applied and has completed build jobs, so no additional rerun is needed. Gator will monitor the results; maintainer approval remains outstanding.

Blocking findings: None.
Carried findings: None.

Gator metadata
  • Validation: Concentrated CLI implementation of accepted issue #4303.
  • Docs: Fern sandbox overview and public CLI skill updated; no navigation change needed.
  • Checks: DCO, issue acceptance, and Helm Lint pass; Branch Checks running. No current-head Trivy Changes status is published; recheck required gate coverage before approval handoff.
  • E2E: test:e2e applied; current-head Branch E2E Checks run 38784991295 dispatched with build jobs complete or running.
  • Head SHA: ff0192caefa2360291832b85253dc0445c47e72a
  • Base SHA: 253884414a8c878ad8f3509be9b63140610fa598
  • Merge base SHA: 253884414a8c878ad8f3509be9b63140610fa598
  • Patch ID: e0cd528114e9d99b713e8d17013029778ca24c54
  • Gator payload: 12
  • Review mode: follow_up
  • Previous reviewed SHA: bdd8c4dde9892fd503c38fd9a8b2888749371015
  • Review budget exhausted: no
  • Maintainer decision required: no
  • Next state: gator:watch-pipeline

@johntmyers johntmyers added gator:watch-pipeline Gator is monitoring PR CI/CD status gator:blocked Gator is blocked by process or repository gates gator:approval-needed Gator completed review; maintainer approval needed and removed gator:merge-ready gator:watch-pipeline Gator is monitoring PR CI/CD status gator:blocked Gator is blocked by process or repository gates labels Oct 15, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gator:approval-needed Gator completed review; maintainer approval needed test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(cli): allow annotations when creating a sandbox

3 participants