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
docs: correct agent label coverage, name prefixes, and validate flag targets
Four documentation claims did not match the code.
Label coverage. pkg/k8s/agent/doc.go and docs/user/agent-deployment.md both
asserted that every created object — explicitly counting the staging ConfigMap
— carries managed-by=aicr, component=snapshot-agent and aicr.run/run-id. The
staging ConfigMap carries none of those: it is written by
serializer.ConfigMapWriter, which stamps only app.kubernetes.io/name,
app.kubernetes.io/component (the header kind) and app.kubernetes.io/version.
An earlier review decided not to add the labels at the serializer, because that
writer also produces the user's delivered cm:// artifact and stamping the sweep
key on a never-delete object is a hazard — so the documentation is corrected
and the serializer is left alone. The agent-deployment troubleshooting recipe
now addresses the staging ConfigMap by its run-scoped name.
Shipped config examples. ADR-020 decision 8 requires examples pinning
jobName/serviceAccountName to be updated; four blocks still pinned them (two in
cli-config.md, two in cli-reference.md), and one contradicted a neighbouring
row this branch already updated — pinning serviceAccountName: aicr for validate
while the reference gives the default as aicr-validate. The pins are dropped
and both agent.* schema rows now state the fields are optional prefixes with
the run ID appended.
NameBase godoc. The pkg/client/v1 copy repeated the claim that NameBase "has no
effect once either of those is set". The fallback is per name.
Validate flag targets. The aicr validate rows for --job-name /
--service-account-name attributed them to "the validation Job" and its
ServiceAccount. Both feed only the optional live snapshot-capture agent: the
validator Jobs are named aicr-<validator>-<hash> and their ServiceAccount
aicr-validator-<run-id>, neither influenced by these flags, and both flags are
inert when --snapshot is supplied.
Refs: ADR-020
Signed-off-by: Alex Yuskauskas <ayuskauskas@nvidia.com>
| `output.template` | string | Optional Go template path |
221
-
| `agent.*` | object | In-cluster capture Job pod: `namespace`, `image`, `imagePullSecrets`, `jobName`, `serviceAccountName`, `nodeSelector`, `tolerations`, `requireGpu`, `runtimeClassName` (mutually exclusive with `requireGpu`), `os`, `requests`, `limits`. Mirrors `spec.validate.agent` so one file pins matching placement for both |
221
+
| `agent.*` | object | In-cluster capture Job pod: `namespace`, `image`, `imagePullSecrets`, `jobName`, `serviceAccountName`, `nodeSelector`, `tolerations`, `requireGpu`, `runtimeClassName` (mutually exclusive with `requireGpu`), `os`, `requests`, `limits`. `jobName` and `serviceAccountName` are optional **prefixes**, not exact names — the run ID is appended (`<prefix>-<run-id>`), so omit them unless you need a custom prefix. Mirrors `spec.validate.agent` so one file pins matching placement for both |
222
222
| `execution.timeout` | duration string | e.g. `5m` |
223
223
| `execution.noCleanup` | bool | Keep the capture Job after completion |
224
224
| `execution.privileged` | bool (tri-state) | Set `false` for PSS-restricted namespaces |
| `agent.*` | object | In-cluster validation Job pod; same fields and nil-vs-empty semantics as `spec.snapshot.agent` (minus `runtimeClassName`/`os`/`requests`/`limits`) |
281
+
| `agent.*` | object | The **live snapshot-capture** Job pod `aicr validate` deploys when `input.snapshot` is empty; same fields and nil-vs-empty semantics as `spec.snapshot.agent` (minus `runtimeClassName`/`os`/`requests`/`limits`). `jobName` and `serviceAccountName` are optional prefixes with the run ID appended (defaults: both `aicr-validate`); they do not name the validator Jobs |
282
282
| `execution.phases` | []string | e.g. `[deployment, conformance, performance]` |
| `--job-name` | | string | aicr-validate | Prefix for the validation Job name; the run ID is always appended (`<prefix>-<run-id>`) |
967
-
| `--service-account-name` | | string | aicr-validate | Prefix for the validation Job's ServiceAccount name; the run ID is always appended (`<prefix>-<run-id>`) |
966
+
| `--job-name` | | string | aicr-validate | Prefix for the **live snapshot-capture agent's** Job name; the run ID is always appended (`<prefix>-<run-id>`). Inert when `--snapshot` is supplied — no agent is deployed. Does not name the validator Jobs (`aicr-<validator>-<hash>`) |
967
+
| `--service-account-name` | | string | aicr-validate | Prefix for the **live snapshot-capture agent's** ServiceAccount, Role, and RoleBinding; the run ID is always appended (`<prefix>-<run-id>`). Inert when `--snapshot` is supplied. Does not name the validator Jobs' ServiceAccount (`aicr-validator-<run-id>`) |
968
968
| `--node-selector` | | string[] | | Override GPU node selection for the live snapshot agent (when `--snapshot` is omitted) and inner validation workloads. Replaces platform-specific selectors (e.g., `cloud.google.com/gke-accelerator`, `node.kubernetes.io/instance-type`) on inner workloads like NCCL benchmark pods. Use when GPU nodes have non-standard labels. Does not affect the validator orchestrator Job. (format: key=value, repeatable) |
969
969
| `--toleration` | | string[] | | Override tolerations for the live snapshot agent (when `--snapshot` is omitted) and inner validation workloads. When omitted, the snapshot agent tolerates all taints. Does not affect the validator orchestrator Job. (format: key=value:effect, repeatable) |
0 commit comments