Skip to content

Latest commit

 

History

History
90 lines (68 loc) · 3.61 KB

File metadata and controls

90 lines (68 loc) · 3.61 KB

Recipe Data Directory

This directory contains recipe metadata and component configurations for the NVIDIA Cloud Native Stack bundler system.

Quick Reference

Task Documentation
Understand recipe architecture Data Architecture
Create/modify recipes Recipe Development Guide
Create new bundlers Bundler Development Guide
CLI commands CLI Reference

Directory Structure

recipes/
├── registry.yaml                  # Component registry (Helm & Kustomize configs)
├── overlays/                      # Recipe overlays (including base)
│   ├── base.yaml                  # Base recipe (universal defaults, root of inheritance)
│   ├── eks.yaml                   # EKS overlay
│   ├── eks-training.yaml          # EKS + training overlay
│   ├── gb200-eks-training.yaml    # GB200 + EKS + training overlay
│   ├── gb200-eks-ubuntu-training.yaml # Full criteria leaf recipe
│   ├── h100-eks-ubuntu-training-kubeflow.yaml # H100 + EKS + Ubuntu + training + Kubeflow
│   └── h100-ubuntu-inference.yaml # H100 inference overlay
└── components/                    # Component value configurations
    ├── cert-manager/
    ├── nvidia-dra-driver-gpu/
    ├── gpu-operator/
    └── ...

Recipe Naming Convention: Recipe file names follow a specific ordering convention for consistency: {accelerator}-{service}-{os}-{intent}-{platform}.yaml

Examples:

  • h100-eks-training.yaml (accelerator + service + intent)
  • h100-eks-ubuntu-training.yaml (accelerator + service + os + intent)
  • h100-eks-ubuntu-training-kubeflow.yaml (accelerator + service + os + intent + platform)

Overview

The recipe system uses a base-plus-overlay architecture:

  • Base values (overlays/base.yaml) provide default configurations
  • Overlay values (e.g., eks-gb200-training.yaml) provide environment-specific optimizations
  • Inline overrides allow per-recipe customization without creating new files

All files in this directory are embedded into the CLI binary and API server at compile time.

Run Validation Tests

# Run all recipe tests
make test

# Run specific validation
go test -v ./pkg/recipe/... -run TestAllMetadataFilesConformToSchema

# Check for duplicate criteria
go test -v ./pkg/recipe/... -run TestNoDuplicateCriteriaAcrossOverlays

Automated Validation

All recipe metadata and component values are automatically validated. Tests run as part of make test and check:

  • Schema conformance (YAML parses correctly)
  • Criteria validation (valid enum values)
  • Reference validation (valuesFile paths exist, dependencyRefs resolve)
  • Constraint syntax (valid measurement paths and operators)
  • Uniqueness (no duplicate criteria across overlays)
  • Merge consistency (base + overlay merges without data loss)
# Generate bundle from recipe with overrides
aicr bundle -r recipes/overlays/your-recipe.yaml -o ./test-bundles

# Verify merged values
cat test-bundles/gpu-operator/values.yaml | grep -A5 "driver:"

For detailed test documentation, see Automated Validation.

See Also