apiVersion: aicr.nvidia.com/v1alpha1
componentRefs:
  - chart: aws-ebs-csi-driver
    name: aws-ebs-csi-driver
    namespace: kube-system
    source: https://kubernetes-sigs.github.io/aws-ebs-csi-driver
    type: Helm
    valuesFile: components/aws-ebs-csi-driver/values.yaml
    version: 2.59.0
  - chart: aws-efa-k8s-device-plugin
    name: aws-efa
    namespace: kube-system
    source: https://aws.github.io/eks-charts
    type: Helm
    valuesFile: components/aws-efa/values.yaml
    version: v0.5.26
  - chart: cert-manager
    name: cert-manager
    namespace: cert-manager
    source: https://charts.jetstack.io
    type: Helm
    valuesFile: components/cert-manager/values.yaml
    version: v1.20.2
  - chart: gpu-operator
    dependencyRefs:
      - nfd
      - cert-manager
      - kube-prometheus-stack
      - nodewright-customizations
    name: gpu-operator
    namespace: gpu-operator
    overrides:
      cdi:
        enabled: true
      gdrcopy:
        enabled: true
    source: https://helm.ngc.nvidia.com/nvidia
    type: Helm
    valuesFile: components/gpu-operator/values-eks-training.yaml
    version: v26.3.1
  - chart: k8s-ephemeral-storage-metrics
    dependencyRefs:
      - kube-prometheus-stack
      - prometheus-operator-crds
    name: k8s-ephemeral-storage-metrics
    namespace: monitoring
    source: https://jmcgrath207.github.io/k8s-ephemeral-storage-metrics/chart
    type: Helm
    valuesFile: components/k8s-ephemeral-storage-metrics/values.yaml
    version: 1.19.2
  - chart: kai-scheduler
    dependencyRefs:
      - gpu-operator
    name: kai-scheduler
    namespace: kai-scheduler
    source: oci://ghcr.io/kai-scheduler/kai-scheduler
    type: Helm
    valuesFile: components/kai-scheduler/values.yaml
    version: v0.14.1
  - chart: kube-prometheus-stack
    dependencyRefs:
      - prometheus-operator-crds
    name: kube-prometheus-stack
    namespace: monitoring
    overrides:
      prometheus:
        prometheusSpec:
          storageSpec:
            emptyDir: null
            volumeClaimTemplate:
              spec:
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 50Gi
    source: https://prometheus-community.github.io/helm-charts
    type: Helm
    valuesFile: components/kube-prometheus-stack/values.yaml
    version: 84.4.0
  - chart: kubeflow-trainer
    dependencyRefs:
      - cert-manager
      - kube-prometheus-stack
      - gpu-operator
    manifestFiles:
      - components/kubeflow-trainer/manifests/torch-distributed-cluster-training-runtime.yaml
    name: kubeflow-trainer
    namespace: kubeflow
    source: oci://ghcr.io/kubeflow/charts
    type: Helm
    valuesFile: components/kubeflow-trainer/values.yaml
    version: 2.2.0
  - chart: node-feature-discovery
    name: nfd
    namespace: node-feature-discovery
    overrides:
      topologyUpdater:
        enable: true
    source: https://kubernetes-sigs.github.io/node-feature-discovery/charts
    type: Helm
    valuesFile: components/nfd/values.yaml
    version: 0.18.3
  - dependencyRefs:
      - nodewright-operator
    manifestFiles:
      - components/nodewright-customizations/manifests/tuning.yaml
    name: nodewright-customizations
    namespace: skyhook
    overrides:
      accelerator: h100
      intent: multiNodeTraining
      service: eks
    source: ""
    type: Helm
  - chart: skyhook-operator
    name: nodewright-operator
    namespace: skyhook
    source: https://helm.ngc.nvidia.com/nvidia/skyhook
    type: Helm
    valuesFile: components/nodewright-operator/values.yaml
    version: v0.15.1
  - chart: nvidia-dra-driver-gpu
    dependencyRefs:
      - gpu-operator
    name: nvidia-dra-driver-gpu
    namespace: nvidia-dra-driver
    overrides:
      controller:
        affinity:
          nodeAffinity: null
    source: https://helm.ngc.nvidia.com/nvidia
    type: Helm
    valuesFile: components/nvidia-dra-driver-gpu/values.yaml
    version: 25.12.0
  - chart: nvsentinel
    dependencyRefs:
      - cert-manager
      - gpu-operator
      - prometheus-operator-crds
    name: nvsentinel
    namespace: nvsentinel
    source: oci://ghcr.io/nvidia
    type: Helm
    valuesFile: components/nvsentinel/values.yaml
    version: v1.3.0
  - chart: prometheus-adapter
    dependencyRefs:
      - kube-prometheus-stack
    name: prometheus-adapter
    namespace: monitoring
    source: https://prometheus-community.github.io/helm-charts
    type: Helm
    valuesFile: components/prometheus-adapter/values.yaml
    version: 5.3.0
  - chart: prometheus-operator-crds
    name: prometheus-operator-crds
    namespace: monitoring
    source: https://prometheus-community.github.io/helm-charts
    type: Helm
    valuesFile: components/prometheus-operator-crds/values.yaml
    version: 28.0.1
constraints:
  - name: K8s.server.version
    value: '>= 1.32.4'
  - name: OS.release.ID
    value: ubuntu
  - name: OS.release.VERSION_ID
    value: "24.04"
  - name: OS.sysctl./proc/sys/kernel/osrelease
    value: '>= 6.8'
criteria:
  accelerator: h100
  intent: training
  os: ubuntu
  platform: kubeflow
  service: eks
deploymentOrder:
  - aws-ebs-csi-driver
  - aws-efa
  - cert-manager
  - nfd
  - nodewright-operator
  - nodewright-customizations
  - prometheus-operator-crds
  - kube-prometheus-stack
  - gpu-operator
  - k8s-ephemeral-storage-metrics
  - kai-scheduler
  - kubeflow-trainer
  - nvidia-dra-driver-gpu
  - nvsentinel
  - prometheus-adapter
kind: RecipeResult
metadata:
  appliedOverlays:
    - base
    - monitoring-hpa
    - h100-any
    - eks
    - eks-training
    - h100-eks-training
    - h100-eks-ubuntu-training
    - h100-eks-ubuntu-training-kubeflow
  version: 0.14.0
validation:
  conformance:
    checks:
      - platform-health
      - gpu-operator-health
      - dra-support
      - accelerator-metrics
      - ai-service-metrics
      - gang-scheduling
      - pod-autoscaling
      - cluster-autoscaling
      - robust-controller
      - secure-accelerator-access
  deployment:
    checks:
      - operator-health
      - expected-resources
      - gpu-operator-version
      - check-nvidia-smi
    constraints:
      - name: Deployment.gpu-operator.version
        value: '>= v24.6.0'
  performance:
    checks:
      - nccl-all-reduce-bw
    constraints:
      - name: nccl-all-reduce-bw
        value: '>= 300'
