You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add an explicit ICMS-backed registration list command that uses the admin JWT, and update the self-hosted documentation and embedded agent skill to use it.
Closes#1197
Signed-off-by: Mike Camp <mcamp@nvidia.com>
|`NVCF_TOKEN`| Admin JWT |`function create` / `deploy` / `update` / `delete`, cluster management (`cluster register`/`rotate`/`delete`, `self-hosted` ops). Required for admin commands; preferred for the rest. |
94
+
|`NVCF_TOKEN`| Admin JWT |`function create` / `deploy` / `update` / `delete`, cluster management (`cluster register`/`registration list`/`rotate`/`delete`, `self-hosted` ops). Required for admin commands; preferred for the rest. |
95
95
|`NVCF_API_KEY`|`nvapi-...` API key |`function invoke` / `list` / `get`, queue details. Falls back to `NVCF_TOKEN` when unset. |
96
96
97
97
Token generation flow:
@@ -148,6 +148,7 @@ After `init`, the credentials live in `~/.nvcf-cli.state`, so later commands wor
148
148
| `nvcf-cli self-hosted status [--cluster-name=X] [--watch] [--json]` | Snapshot dashboard of cluster identity + component health + recent events | Routine health checks; `--watch` for live |
149
149
| `nvcf-cli init` | Mint admin token from API Keys service via the public api gateway | Before any cluster-management operation; idempotent |
| `nvcf-cli cluster registration list --nca-id=Y [--icms-url=URL]` | List self-hosted cluster registrations from ICMS | Check registered compute-plane names and IDs with the admin token |
151
152
| `nvcf-cli cluster rotate --cluster-id=ID` | Rotate cluster JWKS in ICMS | When NVCA's K8s signing key changed and PSAT verification started 401-ing |
152
153
| `nvcf-cli cluster delete --cluster-id=ID` | Remove cluster registration from ICMS | **Confirm with user.** Destroys ICMS state for the cluster. |
153
154
| `nvcf-cli api-key generate --description="…" --expires-in=1h` | Mint both a function API key and a task API key (default) | Before invoking functions or creating tasks; run after every `init` |
@@ -212,7 +213,7 @@ For step-by-step playbooks, load the prompt that matches the user's intent:
212
213
- `nvcf-cli self-hosted down`or `uninstall` in any form — destructive. **ALWAYS run with `--plan-only` (`down`) or `--no-apply` (`uninstall`) first** and show the user what would happen. State which compute plane(s) and whether persistent state would be wiped.
213
214
- `nvcf-cli self-hosted down --remove-persistent`(or `uninstall --remove-persistent`) — deletes Cassandra rows, OpenBao seal keys, sr-default user data. **Loss is unrecoverable.** Confirm explicitly that this is what the user wants.
214
215
- `nvcf-cli self-hosted uninstall --control-plane --force-with-registered-clusters`— orphans every registered compute plane (PSAT auth breaks immediately). State the consequence before passing this flag.
215
-
- `nvcf-cli self-hosted down --all`— nukes everything. Always show the cluster list (`nvcf-cli cluster list`) and get confirmation.
216
+
- `nvcf-cli self-hosted down --all`nukes everything. Always show the registered clusters (`nvcf-cli cluster registration list --nca-id=<nca-id>`) and get confirmation.
216
217
- `nvcf-cli cluster delete`— removes the cluster's ICMS registration; the compute plane immediately stops being able to authenticate.
217
218
- `nvcf-cli function delete`— removes a function and any active deployment.
218
219
- `nvcf-cli task delete`— permanently removes the task record. Stop, state the task ID and current status, then wait for a subsequent user reply that explicitly confirms deletion of that specific task before running this command. Do not treat the user's original delete request as confirmation.
@@ -223,7 +224,7 @@ For step-by-step playbooks, load the prompt that matches the user's intent:
223
224
- Run `nvcf-cli self-hosted status` before assuming a cluster exists / is healthy.
224
225
- Show the planned action (cluster name, function name, GPU type, cost if known) before creating.
225
226
- Before creating or deploying a container or LLM function, confirm the exact function name and container image with the user. For LLM functions, also confirm the exact model name used in `models[].name` and OpenAI `model: "<function-id>/<model-name>"`. If any value is missing, ask the user instead of guessing or submitting example placeholders.
226
-
- Confirm exact resource names before deletion — match against `cluster list` / `function list` output.
227
+
- Confirm exact resource names before deletion. Match against `cluster registration list` / `function list` output.
227
228
- In CI / non-interactive contexts, use `--non-interactive --token=$JWT`. Never propose interactive `nvcf-cli init` when `$CI` is set.
228
229
229
230
**NEVER paste these into chat / logs / feedback:**
@@ -285,6 +286,7 @@ nvcf-cli self-hosted status # snapshot
285
286
nvcf-cli self-hosted status --watch # live
286
287
nvcf-cli init # mint admin token (clears all saved API keys)
287
288
nvcf-cli cluster register … # register cluster
289
+
nvcf-cli cluster registration list --nca-id=<nca-id> # list self-hosted registrations
288
290
nvcf-cli api-key generate --description=… # mint both function and task API keys (run after every init)
289
291
nvcf-cli api-key generate --for function … # function key only
290
292
nvcf-cli api-key generate --for task … # task key only
Copy file name to clipboardExpand all lines: ai-tooling/user/skills/nvcf-self-managed-cli/prompts/add-compute-plane.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ User has a working NVCF control plane (running somewhere) and wants to register
7
7
-**kubectl context for the new compute plane** in their `KUBECONFIG`.
8
8
-**Public ICMS URL** of the existing control plane (e.g. `https://icms.nvcf.example.com`).
9
9
-**Admin JWT** for the control plane's account, OR ability to mint one via `nvcf-cli init` against the control plane's public api endpoint. (Admin tokens come from the API Keys service via the public api gateway — kubectl access to the control plane is NOT required to obtain one.)
10
-
-**A unique `--cluster-name`** that doesn't collide with already-registered clusters. Use `nvcf-cli cluster list` from a control-plane context to check.
10
+
- A unique `--cluster-name` that doesn't collide with already-registered clusters. Use `nvcf-cli cluster registration list --nca-id=$NCA_ID --icms-url=$ICMS` to check.
11
11
12
12
## Steps
13
13
@@ -53,4 +53,4 @@ User has a working NVCF control plane (running somewhere) and wants to register
53
53
-**Re-registering the same cluster** (re-running on the same compute plane that was previously registered): expected, no-op semantics.
54
54
-**Different physical cluster but same name**: the second attempt will reuse the ICMS row, but the new compute plane's JWKS will be silently *replaced* — the old compute plane's NVCA agent will start failing PSAT auth. **Confirm with the user** that they meant to overwrite.
55
55
56
-
When in doubt, run `nvcf-cli cluster list` first and ask the user before proceeding with a name that already exists.
56
+
When in doubt, run `nvcf-cli cluster registration list --nca-id=$NCA_ID --icms-url=$ICMS` first and ask the user before proceeding with a name that already exists.
Copy file name to clipboardExpand all lines: ai-tooling/user/skills/nvcf-self-managed-cli/prompts/rotate-cluster-jwks.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ User says NVCA stopped authenticating, or PSAT auth is 401-ing against ICMS. The
10
10
11
11
## Steps
12
12
13
-
1.**Confirm the cluster ID.**`nvcf-cli cluster list` (against the control plane). Identify the row matching the user's compute plane.
13
+
1. Confirm the cluster ID. Run `nvcf-cli cluster registration list --nca-id=$NCA_ID --icms-url=$ICMS`. Identify the row matching the user's compute plane.
14
14
15
15
2.**Rotate.** From a context that can reach the compute plane's K8s API (because rotation re-fetches the K8s API's `/openid/v1/jwks`):
Copy file name to clipboardExpand all lines: ai-tooling/user/skills/nvcf-self-managed-cli/reference/commands.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ Full subcommand list. Always pair with [flags.md](flags.md) for global flags and
28
28
| Command | Purpose | Notes |
29
29
|---|---|---|
30
30
|`cluster register --name=X --nca-id=Y [--region=Z] [--ignore-existing]`| Register a JWKS+OIDC with ICMS | Used by `up` Phase 5 internally; standalone for manual registration |
31
-
|`cluster list`| List registered clusters | Output is YAML by default; `--json` for machine |
31
+
|`cluster registration list --nca-id=Y [--icms-url=URL]`| List self-hosted cluster registrations from ICMS | Uses the admin token; `--json` for machine-readable output|
32
32
|`cluster rotate --cluster-id=ID`| Re-fetch JWKS from K8s and PUT to ICMS | After K8s API server signing key rotation |
33
33
|`cluster delete --cluster-id=ID`| Remove ICMS row |**DESTRUCTIVE: confirm with user**|
0 commit comments