Skip to content

fix(api): add b200 accelerator to OpenAPI spec enum#455

Merged
mchmarny merged 1 commit into
mainfrom
fix/api-b200-accelerator
Mar 21, 2026
Merged

fix(api): add b200 accelerator to OpenAPI spec enum#455
mchmarny merged 1 commit into
mainfrom
fix/api-b200-accelerator

Conversation

@nvidiajeff

Copy link
Copy Markdown
Contributor

Summary

  • Add b200 to the accelerator enum in all 6 occurrences in api/aicr/v1/server.yaml
  • The B200 accelerator is fully supported in the CLI (pkg/recipe/criteria.go defines CriteriaAcceleratorB200) but was missing from the OpenAPI spec, meaning the API server would reject ?accelerator=b200 requests

Test plan

  • make lint — passes
  • go test -race ./pkg/api/... — passes
  • Verified all 6 enum instances updated (GET /v1/recipe accelerator + gpu, GET /v1/query accelerator + gpu, RecipeCriteria schema)

@nvidiajeff nvidiajeff requested a review from a team as a code owner March 21, 2026 04:54
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report ✅

Metric Value
Coverage 73.7%
Threshold 70%
Status Pass
Coverage Badge
![Coverage](https://img.shields.io/badge/coverage-73.7%25-green)

No Go source files changed in this PR.

@mchmarny mchmarny merged commit 0d267c9 into main Mar 21, 2026
18 checks passed
@mchmarny mchmarny deleted the fix/api-b200-accelerator branch March 21, 2026 07:38
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 20, 2026
Apply the corrections identified in a cross-docs review. Two accelerator
types were under-documented relative to the Go type in pkg/recipe/criteria.go:
B200 (supported since PR NVIDIA#455) and RTX PRO 6000 (supported as
CriteriaAcceleratorRTXPro6000 with real overlays under
recipes/overlays/rtx-pro-6000-*.yaml). Both are now added to every
accelerator enumeration — the five enum blocks in api/aicr/v1/server.yaml
and the seven documentation pages that list accelerators (README glossary,
user cli-reference and api-reference, contributor api-server, cli, data,
and validations).

Also in scope: replace HTML entities (&lt;) with literal < in the
Performance Characteristics bullets across docs/integrator/data-flow.md,
docs/contributor/api-server.md and docs/contributor/cli.md so they render
correctly in MDX and stay consistent across pages; refresh the CI pipeline
description in the contributor guide to the current tool versions (Go 1.26,
golangci-lint v2.10.1) per .settings.yaml; fix the GPU_TYPES shell array
in the contributor CLI examples to add b200 and rtx-pro-6000 and drop the
unsupported l4 so copy-pasted examples don't fail at runtime; and rewrite
three ungrammatical sentences in the Skyhook integrator page.
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 20, 2026
Apply the corrections identified in a cross-docs review. Two accelerator
types were under-documented relative to the Go type in pkg/recipe/criteria.go:
B200 (supported since PR NVIDIA#455) and RTX PRO 6000 (supported as
CriteriaAcceleratorRTXPro6000 with real overlays under
recipes/overlays/rtx-pro-6000-*.yaml). Both are now added to every
accelerator enumeration — the five enum blocks in api/aicr/v1/server.yaml
and the seven documentation pages that list accelerators (README glossary,
user cli-reference and api-reference, contributor api-server, cli, data,
and validations).

Also in scope: replace HTML entities (&lt;) with literal < in the
Performance Characteristics bullets across docs/integrator/data-flow.md,
docs/contributor/api-server.md and docs/contributor/cli.md so they render
correctly in MDX and stay consistent across pages; refresh the CI pipeline
description in the contributor guide to the current tool versions (Go 1.26,
golangci-lint v2.10.1) per .settings.yaml; fix the GPU_TYPES shell array
in the contributor CLI examples to add b200 and rtx-pro-6000 and drop the
unsupported l4 so copy-pasted examples don't fail at runtime; and rewrite
three ungrammatical sentences in the Skyhook integrator page.

Add a dedicated bullet to the "Documentation updates" rule in
.claude/CLAUDE.md and AGENTS.md for enum/constant additions, so this
class of drift is less likely to recur. Two things the new bullet
prescribes that the generic per-kind bullets don't: (1) start from the
authoritative Go type, not from an already-documented sibling value
(grepping docs for "gb200" finds b200 gaps but not rtx-pro-6000 gaps —
rtx-pro-6000 had no sibling documented anywhere); and (2) include the
OpenAPI contract at api/aicr/v1/server.yaml alongside the docs/ pages,
since it mirrors the same enum and drifts the same way.
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 21, 2026
Apply the corrections identified in a cross-docs review. Two accelerator
types were under-documented relative to the Go type in pkg/recipe/criteria.go:
B200 (supported since PR NVIDIA#455) and RTX PRO 6000 (supported as
CriteriaAcceleratorRTXPro6000 with real overlays under
recipes/overlays/rtx-pro-6000-*.yaml). Both are now added to every
accelerator enumeration — the five enum blocks in api/aicr/v1/server.yaml
and the seven documentation pages that list accelerators (README glossary,
user cli-reference and api-reference, contributor api-server, cli, data,
and validations).

Also in scope: replace HTML entities (&lt;) with literal < in the
Performance Characteristics bullets across docs/integrator/data-flow.md,
docs/contributor/api-server.md and docs/contributor/cli.md so they render
correctly in MDX and stay consistent across pages; refresh the CI pipeline
description in the contributor guide to the current tool versions (Go 1.26,
golangci-lint v2.10.1) per .settings.yaml; fix the GPU_TYPES shell array
in the contributor CLI examples to add b200 and rtx-pro-6000 and drop the
unsupported l4 so copy-pasted examples don't fail at runtime; replace two
fictional invalid-accelerator error examples with the shapes the code
actually produces (pkg/recipe/criteria.go:108 emits "invalid accelerator
type: <value>", and the API wraps it as
{"message":"Invalid recipe criteria","details":{"error": ...}} per
pkg/recipe/handler.go:67-72); and rewrite three ungrammatical sentences
in the Skyhook integrator page.

Add a dedicated bullet to the "Documentation updates" rule in
.claude/CLAUDE.md and AGENTS.md for enum/constant additions, so this
class of drift is less likely to recur. Two things the new bullet
prescribes that the generic per-kind bullets don't: (1) start from the
authoritative Go type, not from an already-documented sibling value
(grepping docs for "gb200" finds b200 gaps but not rtx-pro-6000 gaps —
rtx-pro-6000 had no sibling documented anywhere); and (2) include the
OpenAPI contract at api/aicr/v1/server.yaml alongside the docs/ pages,
since it mirrors the same enum and drifts the same way.
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 21, 2026
Apply the corrections identified in a cross-docs review. Two accelerator
types were under-documented relative to the Go type in pkg/recipe/criteria.go:
B200 (supported since PR NVIDIA#455) and RTX PRO 6000 (supported as
CriteriaAcceleratorRTXPro6000 with real overlays under
recipes/overlays/rtx-pro-6000-*.yaml). Both are now added to every
accelerator enumeration:

  - the five enum blocks in api/aicr/v1/server.yaml;
  - user docs (docs/README.md glossary, user cli-reference and
    api-reference) and contributor docs (api-server, cli, data,
    validations);
  - the site-docs glossary mirror (site/docs/getting-started/index.md);
  - Go-visible surfaces in the package that defines the type (godoc in
    pkg/recipe/doc.go, field comment in pkg/recipe/criteria.go, package
    godoc in pkg/api/doc.go and pkg/server/doc.go, and the `aicr recipe`
    --help Description in pkg/cli/recipe.go).

Other docs corrections in scope: replace HTML entities (&lt;) with
literal < in the Performance Characteristics bullets across
docs/integrator/data-flow.md, docs/contributor/api-server.md and
docs/contributor/cli.md so they render correctly in MDX; refresh the
CI pipeline description in docs/contributor/index.md to the current
tool versions (Go 1.26, golangci-lint v2.10.1) per .settings.yaml;
fix the GPU_TYPES shell array in docs/contributor/cli.md to add b200
and rtx-pro-6000 and drop the unsupported l4 so copy-pasted examples
don't fail at runtime; replace two fictional invalid-accelerator
error examples with the literal output produced by the binary today
(captured by running `aicr recipe --accelerator invalid-gpu` and
`GET /v1/recipe?accelerator=invalid-gpu` against HEAD); and rewrite
three ungrammatical sentences in the Skyhook integrator page.

Add a dedicated bullet to the "Documentation updates" rule in
.claude/CLAUDE.md and AGENTS.md for enum/constant additions, so this
class of drift is less likely to recur. The bullet names a broader
audit surface than any single review pass: OpenAPI contract, user/
contributor docs, the site-docs mirror, package godoc and urfave/cli
Description strings in the defining package, and
.github/ISSUE_TEMPLATE/*.yml dropdowns. It also prescribes starting
from the authoritative Go type rather than a known-good sibling value
— grepping for gb200 catches forward b200 additions but misses
pre-existing drift like rtx-pro-6000, which had no sibling documented
anywhere.
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 21, 2026
Apply the corrections identified in a cross-docs review. Two accelerator
types were under-documented relative to the Go type in pkg/recipe/criteria.go:
B200 (supported since PR NVIDIA#455) and RTX PRO 6000 (supported as
CriteriaAcceleratorRTXPro6000 with real overlays under
recipes/overlays/rtx-pro-6000-*.yaml). Both are now added to every
accelerator enumeration:

  - the five enum blocks in api/aicr/v1/server.yaml;
  - user docs (docs/README.md glossary, user cli-reference and
    api-reference) and contributor docs (api-server, cli, data,
    validations);
  - the site-docs glossary mirror (site/docs/getting-started/index.md);
  - Go-visible surfaces in the package that defines the type (godoc in
    pkg/recipe/doc.go, field comment in pkg/recipe/criteria.go, package
    godoc in pkg/api/doc.go and pkg/server/doc.go, and the `aicr recipe`
    --help Description in pkg/cli/recipe.go).

Other docs corrections in scope: replace HTML entities (&lt;) with
literal < in the Performance Characteristics bullets across
docs/integrator/data-flow.md, docs/contributor/api-server.md and
docs/contributor/cli.md so they render correctly in MDX; refresh the
CI pipeline description in docs/contributor/index.md to the current
tool versions (Go 1.26, golangci-lint v2.10.1) per .settings.yaml;
fix the GPU_TYPES shell array in docs/contributor/cli.md to add b200
and rtx-pro-6000 and drop the unsupported l4 so copy-pasted examples
don't fail at runtime; replace two fictional invalid-accelerator
error examples with the literal output produced by the binary today
(captured by running `aicr recipe --accelerator invalid-gpu` and
`GET /v1/recipe?accelerator=invalid-gpu` against HEAD); and rewrite
three ungrammatical sentences in the Skyhook integrator page.

Add a dedicated bullet to the "Documentation updates" rule in
.claude/CLAUDE.md and AGENTS.md for enum/constant additions, so this
class of drift is less likely to recur. The bullet names a broader
audit surface than any single review pass: OpenAPI contract, user/
contributor docs, the site-docs mirror, package godoc and urfave/cli
Description strings in the defining package, and
.github/ISSUE_TEMPLATE/*.yml dropdowns. It also prescribes starting
from the authoritative Go type rather than a known-good sibling value
— grepping for gb200 catches forward b200 additions but misses
pre-existing drift like rtx-pro-6000, which had no sibling documented
anywhere.
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 21, 2026
Apply the corrections identified in a cross-docs review. Three enum
drifts between the Go source types and the documented/advertised values
are closed here:

  - **Accelerator**: B200 (supported since PR NVIDIA#455) and RTX PRO 6000
    (supported as CriteriaAcceleratorRTXPro6000 with real overlays
    under recipes/overlays/rtx-pro-6000-*.yaml) were missing from the
    OpenAPI contract and most documentation.
  - **Service**: `kind` and `lke` were defined in CriteriaServiceType
    (pkg/recipe/criteria.go) but missing from the OpenAPI `service`
    enum and every documented service listing.
  - **Deployer**: `argocd-helm` was defined in the OpenAPI deployer
    enum (api/aicr/v1/server.yaml:845) but not documented in the user
    API reference or CLI flag table.

Both enums are now updated in every place they're surfaced:

  - api/aicr/v1/server.yaml — five accelerator enum blocks and three
    service enum blocks;
  - user docs (docs/README.md glossary, user cli-reference and
    api-reference) and contributor docs (api-server, cli, data,
    validations);
  - the site-docs glossary mirror (site/docs/getting-started/index.md);
  - Go-visible surfaces in the defining package: godoc in
    pkg/recipe/doc.go, field comment in pkg/recipe/criteria.go,
    package godoc in pkg/api/doc.go and pkg/server/doc.go, and the
    `aicr recipe` --help Description in pkg/cli/recipe.go;
  - .github/ISSUE_TEMPLATE/bug_report.yml GPU-type hint.

While normalizing service listings, legacy `self-managed` references
were removed from the two package godocs (pkg/api/doc.go,
pkg/server/doc.go) and the contributor `validate` struct-tag example —
`self-managed` is parsed as an alias for `any`, not a distinct enum
value, so advertising it as a valid standalone option was misleading.

Other docs corrections in scope: replace HTML entities (&lt;) with
literal < in the Performance Characteristics bullets across
docs/integrator/data-flow.md, docs/contributor/api-server.md and
docs/contributor/cli.md so they render correctly in MDX; refresh the
CI pipeline description in docs/contributor/index.md to the current
tool versions (Go 1.26, golangci-lint v2.10.1) per .settings.yaml;
fix the GPU_TYPES shell array in docs/contributor/cli.md to add b200
and rtx-pro-6000 and drop the unsupported l4 so copy-pasted examples
don't fail at runtime; replace two fictional invalid-accelerator
error examples with the literal output produced by the binary today
(captured by running `aicr recipe --accelerator invalid-gpu` and
`GET /v1/recipe?accelerator=invalid-gpu` against HEAD); and rewrite
three ungrammatical sentences in the Skyhook integrator page.

Add a dedicated bullet to the "Documentation updates" rule in
.claude/CLAUDE.md and AGENTS.md for enum/constant additions, so this
class of drift is less likely to recur. The bullet names a broader
audit surface than any single review pass: OpenAPI contract, user/
contributor docs, the site-docs mirror, package godoc and urfave/cli
Description strings in the defining package, and
.github/ISSUE_TEMPLATE/*.yml dropdowns. It also prescribes starting
from the authoritative Go type rather than a known-good sibling value
— grepping for gb200 catches forward b200 additions but misses
pre-existing drift like rtx-pro-6000, which had no sibling documented
anywhere.
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 21, 2026
Apply the corrections identified in a cross-docs review. Three enum
drifts between the Go source types and the documented/advertised values
are closed here:

  - **Accelerator**: B200 (supported since PR NVIDIA#455) and RTX PRO 6000
    (supported as CriteriaAcceleratorRTXPro6000 with real overlays
    under recipes/overlays/rtx-pro-6000-*.yaml) were missing from the
    OpenAPI contract and most documentation.
  - **Service**: `kind` and `lke` were defined in CriteriaServiceType
    (pkg/recipe/criteria.go) but missing from the OpenAPI `service`
    enum and every documented service listing.
  - **Deployer**: `argocd-helm` was defined in the OpenAPI deployer
    enum (api/aicr/v1/server.yaml:845) but not documented in the user
    API reference or CLI flag table.

Both enums are now updated in every place they're surfaced:

  - api/aicr/v1/server.yaml — five accelerator enum blocks and three
    service enum blocks;
  - user docs (docs/README.md glossary, user cli-reference and
    api-reference) and contributor docs (api-server, cli, data,
    validations);
  - the site-docs glossary mirror (site/docs/getting-started/index.md);
  - Go-visible surfaces in the defining package: godoc in
    pkg/recipe/doc.go, field comment in pkg/recipe/criteria.go,
    package godoc in pkg/api/doc.go and pkg/server/doc.go, and the
    `aicr recipe` --help Description in pkg/cli/recipe.go;
  - .github/ISSUE_TEMPLATE/bug_report.yml GPU-type hint.

While normalizing service listings, legacy `self-managed` references
were removed from the two package godocs (pkg/api/doc.go,
pkg/server/doc.go) and the contributor `validate` struct-tag example —
`self-managed` is parsed as an alias for `any`, not a distinct enum
value, so advertising it as a valid standalone option was misleading.

Other docs corrections in scope: replace HTML entities (&lt;) with
literal < in the Performance Characteristics bullets across
docs/integrator/data-flow.md, docs/contributor/api-server.md and
docs/contributor/cli.md so they render correctly in MDX; refresh the
CI pipeline description in docs/contributor/index.md to the current
tool versions (Go 1.26, golangci-lint v2.10.1) per .settings.yaml;
fix the GPU_TYPES shell array in docs/contributor/cli.md to add b200
and rtx-pro-6000 and drop the unsupported l4 so copy-pasted examples
don't fail at runtime; replace two fictional invalid-accelerator
error examples with the literal output produced by the binary today
(captured by running `aicr recipe --accelerator invalid-gpu` and
`GET /v1/recipe?accelerator=invalid-gpu` against HEAD); and rewrite
three ungrammatical sentences in the Skyhook integrator page.

Add a dedicated bullet to the "Documentation updates" rule in
.claude/CLAUDE.md and AGENTS.md for enum/constant additions, so this
class of drift is less likely to recur. The bullet names a broader
audit surface than any single review pass: OpenAPI contract, user/
contributor docs, the site-docs mirror, package godoc and urfave/cli
Description strings in the defining package, and
.github/ISSUE_TEMPLATE/*.yml dropdowns. It also prescribes starting
from the authoritative Go type rather than a known-good sibling value
— grepping for gb200 catches forward b200 additions but misses
pre-existing drift like rtx-pro-6000, which had no sibling documented
anywhere.
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 21, 2026
Apply the corrections identified in a cross-docs review. Three enum
drifts between the Go source types and the documented/advertised values
are closed here:

  - **Accelerator**: B200 (supported since PR NVIDIA#455) and RTX PRO 6000
    (supported as CriteriaAcceleratorRTXPro6000 with real overlays
    under recipes/overlays/rtx-pro-6000-*.yaml) were missing from the
    OpenAPI contract and most documentation.
  - **Service**: `kind` and `lke` were defined in CriteriaServiceType
    (pkg/recipe/criteria.go) but missing from the OpenAPI `service`
    enum and every documented service listing.
  - **Deployer**: `argocd-helm` was defined in the OpenAPI deployer
    enum (api/aicr/v1/server.yaml:845) but not documented in the user
    API reference or CLI flag table.

Both enums are now updated in every place they're surfaced:

  - api/aicr/v1/server.yaml — five accelerator enum blocks and three
    service enum blocks;
  - user docs (docs/README.md glossary, user cli-reference and
    api-reference) and contributor docs (api-server, cli, data,
    validations);
  - the site-docs glossary mirror (site/docs/getting-started/index.md);
  - Go-visible surfaces in the defining package: godoc in
    pkg/recipe/doc.go, field comment in pkg/recipe/criteria.go,
    package godoc in pkg/api/doc.go and pkg/server/doc.go, and the
    `aicr recipe` --help Description in pkg/cli/recipe.go;
  - .github/ISSUE_TEMPLATE/bug_report.yml GPU-type hint.

While normalizing service listings, legacy `self-managed` references
were removed from the two package godocs (pkg/api/doc.go,
pkg/server/doc.go) and the contributor `validate` struct-tag example —
`self-managed` is parsed as an alias for `any`, not a distinct enum
value, so advertising it as a valid standalone option was misleading.

Other docs corrections in scope: replace HTML entities (&lt;) with
literal < in the Performance Characteristics bullets across
docs/integrator/data-flow.md, docs/contributor/api-server.md and
docs/contributor/cli.md so they render correctly in MDX; refresh the
CI pipeline description in docs/contributor/index.md to the current
tool versions (Go 1.26, golangci-lint v2.10.1) per .settings.yaml;
fix the GPU_TYPES shell array in docs/contributor/cli.md to add b200
and rtx-pro-6000 and drop the unsupported l4 so copy-pasted examples
don't fail at runtime; replace two fictional invalid-accelerator
error examples with the literal output produced by the binary today
(captured by running `aicr recipe --accelerator invalid-gpu` and
`GET /v1/recipe?accelerator=invalid-gpu` against HEAD); and rewrite
three ungrammatical sentences in the Skyhook integrator page.

Add a dedicated bullet to the "Documentation updates" rule in
.claude/CLAUDE.md and AGENTS.md for enum/constant additions, so this
class of drift is less likely to recur. The bullet names a broader
audit surface than any single review pass: OpenAPI contract, user/
contributor docs, the site-docs mirror, package godoc and urfave/cli
Description strings in the defining package, and
.github/ISSUE_TEMPLATE/*.yml dropdowns. It also prescribes starting
from the authoritative Go type rather than a known-good sibling value
— grepping for gb200 catches forward b200 additions but misses
pre-existing drift like rtx-pro-6000, which had no sibling documented
anywhere.
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has been automatically locked since it has been closed for 90 days with no further activity. Please open a new pull request for related changes.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Jun 19, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants