published on Monday, Aug 31, 2026 by Pulumi Labs
NVIDIA AI Cluster Runtimepublished on Monday, Aug 31, 2026 by Pulumi Labs
Create ClusterStack Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new ClusterStack(name: string, args: ClusterStackArgs, opts?: ComponentResourceOptions);@overload
def ClusterStack(resource_name: str,
args: ClusterStackArgs,
opts: Optional[ResourceOptions] = None)
@overload
def ClusterStack(resource_name: str,
opts: Optional[ResourceOptions] = None,
accelerator: Optional[str] = None,
intent: Optional[str] = None,
service: Optional[str] = None,
component_overrides: Optional[Mapping[str, ComponentOverrideArgs]] = None,
context: Optional[str] = None,
kubeconfig: Optional[str] = None,
kubeconfig_path: Optional[str] = None,
nodes: Optional[int] = None,
os: Optional[str] = None,
platform: Optional[str] = None,
skip_await: Optional[bool] = None,
skip_components: Optional[Sequence[str]] = None)func NewClusterStack(ctx *Context, name string, args ClusterStackArgs, opts ...ResourceOption) (*ClusterStack, error)public ClusterStack(string name, ClusterStackArgs args, ComponentResourceOptions? opts = null)
public ClusterStack(String name, ClusterStackArgs args)
public ClusterStack(String name, ClusterStackArgs args, ComponentResourceOptions options)
type: nvidia-aicr:ClusterStack
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "nvidia-aicr_cluster_stack" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args ClusterStackArgs
- The arguments to resource properties.
- opts ComponentResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ClusterStackArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ClusterStackArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ClusterStackArgs
- The arguments to resource properties.
- opts ComponentResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ClusterStackArgs
- The arguments to resource properties.
- options ComponentResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var clusterStackResource = new NvidiaAicr.ClusterStack("clusterStackResource", new()
{
Accelerator = "string",
Intent = "string",
Service = "string",
ComponentOverrides =
{
{ "string", new NvidiaAicr.Inputs.ComponentOverrideArgs
{
Namespace = "string",
Values =
{
{ "string", "any" },
},
Version = "string",
} },
},
Context = "string",
Kubeconfig = "string",
KubeconfigPath = "string",
Nodes = 0,
Os = "string",
Platform = "string",
SkipAwait = false,
SkipComponents = new[]
{
"string",
},
});
example, err := nvidiaaicr.NewClusterStack(ctx, "clusterStackResource", &nvidiaaicr.ClusterStackArgs{
Accelerator: "string",
Intent: "string",
Service: "string",
ComponentOverrides: nvidiaaicr.ComponentOverrideMap{
"string": &nvidiaaicr.ComponentOverrideArgs{
Namespace: pulumi.String("string"),
Values: pulumi.Map{
"string": pulumi.Any("any"),
},
Version: pulumi.String("string"),
},
},
Context: "string",
Kubeconfig: pulumi.String("string"),
KubeconfigPath: "string",
Nodes: 0,
Os: "string",
Platform: "string",
SkipAwait: false,
SkipComponents: pulumi.StringArray{
"string",
},
})
resource "nvidia-aicr_cluster_stack" "clusterStackResource" {
lifecycle {
create_before_destroy = true
}
accelerator = "string"
intent = "string"
service = "string"
component_overrides = {
"string" = {
namespace = "string"
values = {
"string" = "any"
}
version = "string"
}
}
context = "string"
kubeconfig = "string"
kubeconfig_path = "string"
nodes = 0
os = "string"
platform = "string"
skip_await = false
skip_components = ["string"]
}
var clusterStackResource = new ClusterStack("clusterStackResource", ClusterStackArgs.builder()
.accelerator("string")
.intent("string")
.service("string")
.componentOverrides(Map.of("string", ComponentOverrideArgs.builder()
.namespace("string")
.values(Map.of("string", "any"))
.version("string")
.build()))
.context("string")
.kubeconfig("string")
.kubeconfigPath("string")
.nodes(0)
.os("string")
.platform("string")
.skipAwait(false)
.skipComponents("string")
.build());
cluster_stack_resource = nvidia_aicr.ClusterStack("clusterStackResource",
accelerator="string",
intent="string",
service="string",
component_overrides={
"string": {
"namespace": "string",
"values": {
"string": "any",
},
"version": "string",
},
},
context="string",
kubeconfig="string",
kubeconfig_path="string",
nodes=0,
os="string",
platform="string",
skip_await=False,
skip_components=["string"])
const clusterStackResource = new nvidia_aicr.ClusterStack("clusterStackResource", {
accelerator: "string",
intent: "string",
service: "string",
componentOverrides: {
string: {
namespace: "string",
values: {
string: "any",
},
version: "string",
},
},
context: "string",
kubeconfig: "string",
kubeconfigPath: "string",
nodes: 0,
os: "string",
platform: "string",
skipAwait: false,
skipComponents: ["string"],
});
type: nvidia-aicr:ClusterStack
properties:
accelerator: string
componentOverrides:
string:
namespace: string
values:
string: any
version: string
context: string
intent: string
kubeconfig: string
kubeconfigPath: string
nodes: 0
os: string
platform: string
service: string
skipAwait: false
skipComponents:
- string
ClusterStack Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The ClusterStack resource accepts the following input properties:
- Accelerator string
GPU accelerator type. Selects the AICR recipe family.
Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only — the services with rtx-pro-6000-tuned recipes in the pinned AICR data).
- Intent string
Workload intent. Selects between training-oriented and inference-oriented component sets.
Supported values: "training", "inference".
- Service string
Kubernetes service. Selects cloud-specific operators and storage drivers.
Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke". bcm and lke are the cloud-neutral leaves (no hyperscaler CSI/EFA components) and double as stand-ins for providers without an AICR criteria value yet (e.g. CoreWeave CKS deploys the lke leaf). Use "kind" for local hardware-free development of the deployment pipeline.
- Component
Overrides Dictionary<string, Pulumi.Labs. Nvidia Aicr. Inputs. Component Override Args> - Per-component overrides. Map of AICR component name to override settings (version, namespace, Helm values). Values are deep-merged with the recipe defaults; only the keys you specify are changed.
- Context string
- Kubeconfig context to select. Defaults to the current-context in the kubeconfig.
- Kubeconfig string
Kubeconfig contents (or path to a kubeconfig file) for the target cluster. Accepts computed outputs from cluster resources (e.g., an EKS cluster's KubeconfigJson). Mutually exclusive with
kubeconfigPath.If neither
kubeconfignorkubeconfigPathis set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.- Kubeconfig
Path string - Path to a kubeconfig file on disk. Mutually exclusive with
kubeconfig. Preferkubeconfigwhen chaining off a cluster resource's output. - Nodes int
- Worker-node count hint used to size the recipe (number of nodes, not GPUs). Leave unset to let AICR pick the default-sized recipe.
- Os string
Operating system flavor of the worker nodes.
Supported values: "ubuntu", "cos" (Container-Optimized OS, GKE only), "ol" (Oracle Linux, OKE) — the values with backing recipes in this provider's pinned AICR data. Additional OS values (rhel, amazonlinux, talos) arrive through AICR SDK upgrades.
Leave unset for OS-agnostic resolution: OS-pinned recipe overlays (kernel tuning, driver constraints) are skipped and the OS-agnostic recipe is used. Set it when the cluster's OS is known. Some combinations require an OS (e.g. gke requires "cos"; eks platform recipes require "ubuntu") and fail with a message listing the valid values; kind recipes require it unset.
- Platform string
ML platform/framework to layer on top of the base recipe.
Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm in the pinned AICR data.
Leave unset for the base recipe without a platform-specific runtime. Note that intent="inference" always includes an inference gateway (part of the base inference stack); choosing a platform layers a runtime ("dynamo", "nim") on top. intent="training" leaves training-runtime components out entirely when platform is unset.
- Skip
Await bool - If true, do not wait for each Helm release to become ready before continuing. Faster previews/updates at the cost of losing readiness signal. Default: false.
- Skip
Components List<string> - Component names to exclude from the deployment. Useful for swapping in your own installation of a component (e.g., bring-your-own cert-manager) or for deploying onto bare-metal where cloud-specific operators are not relevant.
- Accelerator string
GPU accelerator type. Selects the AICR recipe family.
Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only — the services with rtx-pro-6000-tuned recipes in the pinned AICR data).
- Intent string
Workload intent. Selects between training-oriented and inference-oriented component sets.
Supported values: "training", "inference".
- Service string
Kubernetes service. Selects cloud-specific operators and storage drivers.
Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke". bcm and lke are the cloud-neutral leaves (no hyperscaler CSI/EFA components) and double as stand-ins for providers without an AICR criteria value yet (e.g. CoreWeave CKS deploys the lke leaf). Use "kind" for local hardware-free development of the deployment pipeline.
- Component
Overrides map[string]ComponentOverride Args - Per-component overrides. Map of AICR component name to override settings (version, namespace, Helm values). Values are deep-merged with the recipe defaults; only the keys you specify are changed.
- Context string
- Kubeconfig context to select. Defaults to the current-context in the kubeconfig.
- Kubeconfig string
Kubeconfig contents (or path to a kubeconfig file) for the target cluster. Accepts computed outputs from cluster resources (e.g., an EKS cluster's KubeconfigJson). Mutually exclusive with
kubeconfigPath.If neither
kubeconfignorkubeconfigPathis set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.- Kubeconfig
Path string - Path to a kubeconfig file on disk. Mutually exclusive with
kubeconfig. Preferkubeconfigwhen chaining off a cluster resource's output. - Nodes int
- Worker-node count hint used to size the recipe (number of nodes, not GPUs). Leave unset to let AICR pick the default-sized recipe.
- Os string
Operating system flavor of the worker nodes.
Supported values: "ubuntu", "cos" (Container-Optimized OS, GKE only), "ol" (Oracle Linux, OKE) — the values with backing recipes in this provider's pinned AICR data. Additional OS values (rhel, amazonlinux, talos) arrive through AICR SDK upgrades.
Leave unset for OS-agnostic resolution: OS-pinned recipe overlays (kernel tuning, driver constraints) are skipped and the OS-agnostic recipe is used. Set it when the cluster's OS is known. Some combinations require an OS (e.g. gke requires "cos"; eks platform recipes require "ubuntu") and fail with a message listing the valid values; kind recipes require it unset.
- Platform string
ML platform/framework to layer on top of the base recipe.
Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm in the pinned AICR data.
Leave unset for the base recipe without a platform-specific runtime. Note that intent="inference" always includes an inference gateway (part of the base inference stack); choosing a platform layers a runtime ("dynamo", "nim") on top. intent="training" leaves training-runtime components out entirely when platform is unset.
- Skip
Await bool - If true, do not wait for each Helm release to become ready before continuing. Faster previews/updates at the cost of losing readiness signal. Default: false.
- Skip
Components []string - Component names to exclude from the deployment. Useful for swapping in your own installation of a component (e.g., bring-your-own cert-manager) or for deploying onto bare-metal where cloud-specific operators are not relevant.
- accelerator string
GPU accelerator type. Selects the AICR recipe family.
Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only — the services with rtx-pro-6000-tuned recipes in the pinned AICR data).
- intent string
Workload intent. Selects between training-oriented and inference-oriented component sets.
Supported values: "training", "inference".
- service string
Kubernetes service. Selects cloud-specific operators and storage drivers.
Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke". bcm and lke are the cloud-neutral leaves (no hyperscaler CSI/EFA components) and double as stand-ins for providers without an AICR criteria value yet (e.g. CoreWeave CKS deploys the lke leaf). Use "kind" for local hardware-free development of the deployment pipeline.
- component_
overrides map(object) - Per-component overrides. Map of AICR component name to override settings (version, namespace, Helm values). Values are deep-merged with the recipe defaults; only the keys you specify are changed.
- context string
- Kubeconfig context to select. Defaults to the current-context in the kubeconfig.
- kubeconfig string
Kubeconfig contents (or path to a kubeconfig file) for the target cluster. Accepts computed outputs from cluster resources (e.g., an EKS cluster's KubeconfigJson). Mutually exclusive with
kubeconfigPath.If neither
kubeconfignorkubeconfigPathis set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.- kubeconfig_
path string - Path to a kubeconfig file on disk. Mutually exclusive with
kubeconfig. Preferkubeconfigwhen chaining off a cluster resource's output. - nodes number
- Worker-node count hint used to size the recipe (number of nodes, not GPUs). Leave unset to let AICR pick the default-sized recipe.
- os string
Operating system flavor of the worker nodes.
Supported values: "ubuntu", "cos" (Container-Optimized OS, GKE only), "ol" (Oracle Linux, OKE) — the values with backing recipes in this provider's pinned AICR data. Additional OS values (rhel, amazonlinux, talos) arrive through AICR SDK upgrades.
Leave unset for OS-agnostic resolution: OS-pinned recipe overlays (kernel tuning, driver constraints) are skipped and the OS-agnostic recipe is used. Set it when the cluster's OS is known. Some combinations require an OS (e.g. gke requires "cos"; eks platform recipes require "ubuntu") and fail with a message listing the valid values; kind recipes require it unset.
- platform string
ML platform/framework to layer on top of the base recipe.
Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm in the pinned AICR data.
Leave unset for the base recipe without a platform-specific runtime. Note that intent="inference" always includes an inference gateway (part of the base inference stack); choosing a platform layers a runtime ("dynamo", "nim") on top. intent="training" leaves training-runtime components out entirely when platform is unset.
- skip_
await bool - If true, do not wait for each Helm release to become ready before continuing. Faster previews/updates at the cost of losing readiness signal. Default: false.
- skip_
components list(string) - Component names to exclude from the deployment. Useful for swapping in your own installation of a component (e.g., bring-your-own cert-manager) or for deploying onto bare-metal where cloud-specific operators are not relevant.
- accelerator String
GPU accelerator type. Selects the AICR recipe family.
Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only — the services with rtx-pro-6000-tuned recipes in the pinned AICR data).
- intent String
Workload intent. Selects between training-oriented and inference-oriented component sets.
Supported values: "training", "inference".
- service String
Kubernetes service. Selects cloud-specific operators and storage drivers.
Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke". bcm and lke are the cloud-neutral leaves (no hyperscaler CSI/EFA components) and double as stand-ins for providers without an AICR criteria value yet (e.g. CoreWeave CKS deploys the lke leaf). Use "kind" for local hardware-free development of the deployment pipeline.
- component
Overrides Map<String,ComponentOverride Args> - Per-component overrides. Map of AICR component name to override settings (version, namespace, Helm values). Values are deep-merged with the recipe defaults; only the keys you specify are changed.
- context String
- Kubeconfig context to select. Defaults to the current-context in the kubeconfig.
- kubeconfig String
Kubeconfig contents (or path to a kubeconfig file) for the target cluster. Accepts computed outputs from cluster resources (e.g., an EKS cluster's KubeconfigJson). Mutually exclusive with
kubeconfigPath.If neither
kubeconfignorkubeconfigPathis set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.- kubeconfig
Path String - Path to a kubeconfig file on disk. Mutually exclusive with
kubeconfig. Preferkubeconfigwhen chaining off a cluster resource's output. - nodes Integer
- Worker-node count hint used to size the recipe (number of nodes, not GPUs). Leave unset to let AICR pick the default-sized recipe.
- os String
Operating system flavor of the worker nodes.
Supported values: "ubuntu", "cos" (Container-Optimized OS, GKE only), "ol" (Oracle Linux, OKE) — the values with backing recipes in this provider's pinned AICR data. Additional OS values (rhel, amazonlinux, talos) arrive through AICR SDK upgrades.
Leave unset for OS-agnostic resolution: OS-pinned recipe overlays (kernel tuning, driver constraints) are skipped and the OS-agnostic recipe is used. Set it when the cluster's OS is known. Some combinations require an OS (e.g. gke requires "cos"; eks platform recipes require "ubuntu") and fail with a message listing the valid values; kind recipes require it unset.
- platform String
ML platform/framework to layer on top of the base recipe.
Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm in the pinned AICR data.
Leave unset for the base recipe without a platform-specific runtime. Note that intent="inference" always includes an inference gateway (part of the base inference stack); choosing a platform layers a runtime ("dynamo", "nim") on top. intent="training" leaves training-runtime components out entirely when platform is unset.
- skip
Await Boolean - If true, do not wait for each Helm release to become ready before continuing. Faster previews/updates at the cost of losing readiness signal. Default: false.
- skip
Components List<String> - Component names to exclude from the deployment. Useful for swapping in your own installation of a component (e.g., bring-your-own cert-manager) or for deploying onto bare-metal where cloud-specific operators are not relevant.
- accelerator string
GPU accelerator type. Selects the AICR recipe family.
Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only — the services with rtx-pro-6000-tuned recipes in the pinned AICR data).
- intent string
Workload intent. Selects between training-oriented and inference-oriented component sets.
Supported values: "training", "inference".
- service string
Kubernetes service. Selects cloud-specific operators and storage drivers.
Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke". bcm and lke are the cloud-neutral leaves (no hyperscaler CSI/EFA components) and double as stand-ins for providers without an AICR criteria value yet (e.g. CoreWeave CKS deploys the lke leaf). Use "kind" for local hardware-free development of the deployment pipeline.
- component
Overrides {[key: string]: ComponentOverride Args} - Per-component overrides. Map of AICR component name to override settings (version, namespace, Helm values). Values are deep-merged with the recipe defaults; only the keys you specify are changed.
- context string
- Kubeconfig context to select. Defaults to the current-context in the kubeconfig.
- kubeconfig string
Kubeconfig contents (or path to a kubeconfig file) for the target cluster. Accepts computed outputs from cluster resources (e.g., an EKS cluster's KubeconfigJson). Mutually exclusive with
kubeconfigPath.If neither
kubeconfignorkubeconfigPathis set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.- kubeconfig
Path string - Path to a kubeconfig file on disk. Mutually exclusive with
kubeconfig. Preferkubeconfigwhen chaining off a cluster resource's output. - nodes number
- Worker-node count hint used to size the recipe (number of nodes, not GPUs). Leave unset to let AICR pick the default-sized recipe.
- os string
Operating system flavor of the worker nodes.
Supported values: "ubuntu", "cos" (Container-Optimized OS, GKE only), "ol" (Oracle Linux, OKE) — the values with backing recipes in this provider's pinned AICR data. Additional OS values (rhel, amazonlinux, talos) arrive through AICR SDK upgrades.
Leave unset for OS-agnostic resolution: OS-pinned recipe overlays (kernel tuning, driver constraints) are skipped and the OS-agnostic recipe is used. Set it when the cluster's OS is known. Some combinations require an OS (e.g. gke requires "cos"; eks platform recipes require "ubuntu") and fail with a message listing the valid values; kind recipes require it unset.
- platform string
ML platform/framework to layer on top of the base recipe.
Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm in the pinned AICR data.
Leave unset for the base recipe without a platform-specific runtime. Note that intent="inference" always includes an inference gateway (part of the base inference stack); choosing a platform layers a runtime ("dynamo", "nim") on top. intent="training" leaves training-runtime components out entirely when platform is unset.
- skip
Await boolean - If true, do not wait for each Helm release to become ready before continuing. Faster previews/updates at the cost of losing readiness signal. Default: false.
- skip
Components string[] - Component names to exclude from the deployment. Useful for swapping in your own installation of a component (e.g., bring-your-own cert-manager) or for deploying onto bare-metal where cloud-specific operators are not relevant.
- accelerator str
GPU accelerator type. Selects the AICR recipe family.
Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only — the services with rtx-pro-6000-tuned recipes in the pinned AICR data).
- intent str
Workload intent. Selects between training-oriented and inference-oriented component sets.
Supported values: "training", "inference".
- service str
Kubernetes service. Selects cloud-specific operators and storage drivers.
Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke". bcm and lke are the cloud-neutral leaves (no hyperscaler CSI/EFA components) and double as stand-ins for providers without an AICR criteria value yet (e.g. CoreWeave CKS deploys the lke leaf). Use "kind" for local hardware-free development of the deployment pipeline.
- component_
overrides Mapping[str, ComponentOverride Args] - Per-component overrides. Map of AICR component name to override settings (version, namespace, Helm values). Values are deep-merged with the recipe defaults; only the keys you specify are changed.
- context str
- Kubeconfig context to select. Defaults to the current-context in the kubeconfig.
- kubeconfig str
Kubeconfig contents (or path to a kubeconfig file) for the target cluster. Accepts computed outputs from cluster resources (e.g., an EKS cluster's KubeconfigJson). Mutually exclusive with
kubeconfigPath.If neither
kubeconfignorkubeconfigPathis set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.- kubeconfig_
path str - Path to a kubeconfig file on disk. Mutually exclusive with
kubeconfig. Preferkubeconfigwhen chaining off a cluster resource's output. - nodes int
- Worker-node count hint used to size the recipe (number of nodes, not GPUs). Leave unset to let AICR pick the default-sized recipe.
- os str
Operating system flavor of the worker nodes.
Supported values: "ubuntu", "cos" (Container-Optimized OS, GKE only), "ol" (Oracle Linux, OKE) — the values with backing recipes in this provider's pinned AICR data. Additional OS values (rhel, amazonlinux, talos) arrive through AICR SDK upgrades.
Leave unset for OS-agnostic resolution: OS-pinned recipe overlays (kernel tuning, driver constraints) are skipped and the OS-agnostic recipe is used. Set it when the cluster's OS is known. Some combinations require an OS (e.g. gke requires "cos"; eks platform recipes require "ubuntu") and fail with a message listing the valid values; kind recipes require it unset.
- platform str
ML platform/framework to layer on top of the base recipe.
Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm in the pinned AICR data.
Leave unset for the base recipe without a platform-specific runtime. Note that intent="inference" always includes an inference gateway (part of the base inference stack); choosing a platform layers a runtime ("dynamo", "nim") on top. intent="training" leaves training-runtime components out entirely when platform is unset.
- skip_
await bool - If true, do not wait for each Helm release to become ready before continuing. Faster previews/updates at the cost of losing readiness signal. Default: false.
- skip_
components Sequence[str] - Component names to exclude from the deployment. Useful for swapping in your own installation of a component (e.g., bring-your-own cert-manager) or for deploying onto bare-metal where cloud-specific operators are not relevant.
- accelerator String
GPU accelerator type. Selects the AICR recipe family.
Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only — the services with rtx-pro-6000-tuned recipes in the pinned AICR data).
- intent String
Workload intent. Selects between training-oriented and inference-oriented component sets.
Supported values: "training", "inference".
- service String
Kubernetes service. Selects cloud-specific operators and storage drivers.
Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke". bcm and lke are the cloud-neutral leaves (no hyperscaler CSI/EFA components) and double as stand-ins for providers without an AICR criteria value yet (e.g. CoreWeave CKS deploys the lke leaf). Use "kind" for local hardware-free development of the deployment pipeline.
- component
Overrides Map<Property Map> - Per-component overrides. Map of AICR component name to override settings (version, namespace, Helm values). Values are deep-merged with the recipe defaults; only the keys you specify are changed.
- context String
- Kubeconfig context to select. Defaults to the current-context in the kubeconfig.
- kubeconfig String
Kubeconfig contents (or path to a kubeconfig file) for the target cluster. Accepts computed outputs from cluster resources (e.g., an EKS cluster's KubeconfigJson). Mutually exclusive with
kubeconfigPath.If neither
kubeconfignorkubeconfigPathis set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.- kubeconfig
Path String - Path to a kubeconfig file on disk. Mutually exclusive with
kubeconfig. Preferkubeconfigwhen chaining off a cluster resource's output. - nodes Number
- Worker-node count hint used to size the recipe (number of nodes, not GPUs). Leave unset to let AICR pick the default-sized recipe.
- os String
Operating system flavor of the worker nodes.
Supported values: "ubuntu", "cos" (Container-Optimized OS, GKE only), "ol" (Oracle Linux, OKE) — the values with backing recipes in this provider's pinned AICR data. Additional OS values (rhel, amazonlinux, talos) arrive through AICR SDK upgrades.
Leave unset for OS-agnostic resolution: OS-pinned recipe overlays (kernel tuning, driver constraints) are skipped and the OS-agnostic recipe is used. Set it when the cluster's OS is known. Some combinations require an OS (e.g. gke requires "cos"; eks platform recipes require "ubuntu") and fail with a message listing the valid values; kind recipes require it unset.
- platform String
ML platform/framework to layer on top of the base recipe.
Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm in the pinned AICR data.
Leave unset for the base recipe without a platform-specific runtime. Note that intent="inference" always includes an inference gateway (part of the base inference stack); choosing a platform layers a runtime ("dynamo", "nim") on top. intent="training" leaves training-runtime components out entirely when platform is unset.
- skip
Await Boolean - If true, do not wait for each Helm release to become ready before continuing. Faster previews/updates at the cost of losing readiness signal. Default: false.
- skip
Components List<String> - Component names to exclude from the deployment. Useful for swapping in your own installation of a component (e.g., bring-your-own cert-manager) or for deploying onto bare-metal where cloud-specific operators are not relevant.
Outputs
All input properties are implicitly available as output properties. Additionally, the ClusterStack resource produces the following output properties:
- Component
Count int - Number of components deployed.
- Criteria
Pulumi.
Labs. Nvidia Aicr. Outputs. Recipe Criteria - The canonicalized recipe criteria this stack resolved with, including its
skipComponents. Wire it into a ValidationRun'scriteriainput so deployment and validation share a single source of truth — the same recipe, and the same components in scope. - Deployed
Components List<string> - Names of all components deployed as part of this stack, in topological order.
- Recipe
Name string - The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
- Recipe
Version string - The AICR recipe data version embedded in this provider build.
- Component
Count int - Number of components deployed.
- Criteria
Recipe
Criteria - The canonicalized recipe criteria this stack resolved with, including its
skipComponents. Wire it into a ValidationRun'scriteriainput so deployment and validation share a single source of truth — the same recipe, and the same components in scope. - Deployed
Components []string - Names of all components deployed as part of this stack, in topological order.
- Recipe
Name string - The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
- Recipe
Version string - The AICR recipe data version embedded in this provider build.
- component_
count number - Number of components deployed.
- criteria object
- The canonicalized recipe criteria this stack resolved with, including its
skipComponents. Wire it into a ValidationRun'scriteriainput so deployment and validation share a single source of truth — the same recipe, and the same components in scope. - deployed_
components list(string) - Names of all components deployed as part of this stack, in topological order.
- recipe_
name string - The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
- recipe_
version string - The AICR recipe data version embedded in this provider build.
- component
Count Integer - Number of components deployed.
- criteria
Recipe
Criteria - The canonicalized recipe criteria this stack resolved with, including its
skipComponents. Wire it into a ValidationRun'scriteriainput so deployment and validation share a single source of truth — the same recipe, and the same components in scope. - deployed
Components List<String> - Names of all components deployed as part of this stack, in topological order.
- recipe
Name String - The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
- recipe
Version String - The AICR recipe data version embedded in this provider build.
- component
Count number - Number of components deployed.
- criteria
Recipe
Criteria - The canonicalized recipe criteria this stack resolved with, including its
skipComponents. Wire it into a ValidationRun'scriteriainput so deployment and validation share a single source of truth — the same recipe, and the same components in scope. - deployed
Components string[] - Names of all components deployed as part of this stack, in topological order.
- recipe
Name string - The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
- recipe
Version string - The AICR recipe data version embedded in this provider build.
- component_
count int - Number of components deployed.
- criteria
Recipe
Criteria - The canonicalized recipe criteria this stack resolved with, including its
skipComponents. Wire it into a ValidationRun'scriteriainput so deployment and validation share a single source of truth — the same recipe, and the same components in scope. - deployed_
components Sequence[str] - Names of all components deployed as part of this stack, in topological order.
- recipe_
name str - The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
- recipe_
version str - The AICR recipe data version embedded in this provider build.
- component
Count Number - Number of components deployed.
- criteria Property Map
- The canonicalized recipe criteria this stack resolved with, including its
skipComponents. Wire it into a ValidationRun'scriteriainput so deployment and validation share a single source of truth — the same recipe, and the same components in scope. - deployed
Components List<String> - Names of all components deployed as part of this stack, in topological order.
- recipe
Name String - The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
- recipe
Version String - The AICR recipe data version embedded in this provider build.
Supporting Types
ComponentOverride, ComponentOverrideArgs
Per-component override settings. Each field is optional; only the fields
you set are applied on top of the recipe defaults.- Namespace string
- Override the target Kubernetes namespace.
- Values Dictionary<string, object>
Additional or override Helm values, deep-merged on top of the recipe-resolved values.
Merge semantics: nested maps merge recursively; scalars and arrays replace the recipe's value; setting a key to null removes it from the recipe-resolved values, restoring the chart's own default for that key. Note the null asymmetry: a null in the recipe data is passed through to Helm (explicitly clearing the chart default), while a null here removes the recipe's setting. There is currently no way to pass a literal null through to Helm from this input — and some language SDKs drop null map entries during serialization before they reach the provider at all.
- Version string
- Override the Helm chart version. If unset, the recipe-pinned version is used.
- Namespace string
- Override the target Kubernetes namespace.
- Values map[string]interface{}
Additional or override Helm values, deep-merged on top of the recipe-resolved values.
Merge semantics: nested maps merge recursively; scalars and arrays replace the recipe's value; setting a key to null removes it from the recipe-resolved values, restoring the chart's own default for that key. Note the null asymmetry: a null in the recipe data is passed through to Helm (explicitly clearing the chart default), while a null here removes the recipe's setting. There is currently no way to pass a literal null through to Helm from this input — and some language SDKs drop null map entries during serialization before they reach the provider at all.
- Version string
- Override the Helm chart version. If unset, the recipe-pinned version is used.
- namespace string
- Override the target Kubernetes namespace.
- values map(any)
Additional or override Helm values, deep-merged on top of the recipe-resolved values.
Merge semantics: nested maps merge recursively; scalars and arrays replace the recipe's value; setting a key to null removes it from the recipe-resolved values, restoring the chart's own default for that key. Note the null asymmetry: a null in the recipe data is passed through to Helm (explicitly clearing the chart default), while a null here removes the recipe's setting. There is currently no way to pass a literal null through to Helm from this input — and some language SDKs drop null map entries during serialization before they reach the provider at all.
- version string
- Override the Helm chart version. If unset, the recipe-pinned version is used.
- namespace String
- Override the target Kubernetes namespace.
- values Map<String,Object>
Additional or override Helm values, deep-merged on top of the recipe-resolved values.
Merge semantics: nested maps merge recursively; scalars and arrays replace the recipe's value; setting a key to null removes it from the recipe-resolved values, restoring the chart's own default for that key. Note the null asymmetry: a null in the recipe data is passed through to Helm (explicitly clearing the chart default), while a null here removes the recipe's setting. There is currently no way to pass a literal null through to Helm from this input — and some language SDKs drop null map entries during serialization before they reach the provider at all.
- version String
- Override the Helm chart version. If unset, the recipe-pinned version is used.
- namespace string
- Override the target Kubernetes namespace.
- values {[key: string]: any}
Additional or override Helm values, deep-merged on top of the recipe-resolved values.
Merge semantics: nested maps merge recursively; scalars and arrays replace the recipe's value; setting a key to null removes it from the recipe-resolved values, restoring the chart's own default for that key. Note the null asymmetry: a null in the recipe data is passed through to Helm (explicitly clearing the chart default), while a null here removes the recipe's setting. There is currently no way to pass a literal null through to Helm from this input — and some language SDKs drop null map entries during serialization before they reach the provider at all.
- version string
- Override the Helm chart version. If unset, the recipe-pinned version is used.
- namespace str
- Override the target Kubernetes namespace.
- values Mapping[str, Any]
Additional or override Helm values, deep-merged on top of the recipe-resolved values.
Merge semantics: nested maps merge recursively; scalars and arrays replace the recipe's value; setting a key to null removes it from the recipe-resolved values, restoring the chart's own default for that key. Note the null asymmetry: a null in the recipe data is passed through to Helm (explicitly clearing the chart default), while a null here removes the recipe's setting. There is currently no way to pass a literal null through to Helm from this input — and some language SDKs drop null map entries during serialization before they reach the provider at all.
- version str
- Override the Helm chart version. If unset, the recipe-pinned version is used.
- namespace String
- Override the target Kubernetes namespace.
- values Map<Any>
Additional or override Helm values, deep-merged on top of the recipe-resolved values.
Merge semantics: nested maps merge recursively; scalars and arrays replace the recipe's value; setting a key to null removes it from the recipe-resolved values, restoring the chart's own default for that key. Note the null asymmetry: a null in the recipe data is passed through to Helm (explicitly clearing the chart default), while a null here removes the recipe's setting. There is currently no way to pass a literal null through to Helm from this input — and some language SDKs drop null map entries during serialization before they reach the provider at all.
- version String
- Override the Helm chart version. If unset, the recipe-pinned version is used.
RecipeCriteria, RecipeCriteriaArgs
Recipe-selection criteria, mirroring ClusterStack's accelerator / service /
intent / os / platform / nodes inputs, plus the skipComponents the stack
deployed without. Wire a ClusterStack's criteria output here so deployment
and validation resolve the identical recipe and agree on which of its
components are in scope.- Accelerator string
- GPU accelerator type. Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only).
- Intent string
- Workload intent. Supported values: "training", "inference".
- Service string
- Kubernetes service. Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke".
- Nodes int
- Worker-node count hint used to size the recipe.
- Os string
- Operating system flavor of the worker nodes. Leave unset for OS-agnostic resolution. Supported values: "ubuntu", "cos", "ol".
- Platform string
- ML platform/framework. Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm.
- Skip
Components List<string> - Recipe components the stack intentionally did not deploy (ClusterStack's
skipComponents). ValidationRun treats them as out of scope rather than missing: checks that presuppose one of them (e.g. the gpu-operator health, DCGM metrics, and GPU-HPA checks when "gpu-operator" is skipped) are reported "skipped" with a reason instead of failing, and the SDK's component-aware checks see the components as disabled. A ClusterStack'scriteriaoutput carries its own skipComponents, so wiring it keeps validation aligned with the deployed subset automatically. Skipping does not verify a replacement you run yourself — those checks are simply not made.
- Accelerator string
- GPU accelerator type. Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only).
- Intent string
- Workload intent. Supported values: "training", "inference".
- Service string
- Kubernetes service. Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke".
- Nodes int
- Worker-node count hint used to size the recipe.
- Os string
- Operating system flavor of the worker nodes. Leave unset for OS-agnostic resolution. Supported values: "ubuntu", "cos", "ol".
- Platform string
- ML platform/framework. Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm.
- Skip
Components []string - Recipe components the stack intentionally did not deploy (ClusterStack's
skipComponents). ValidationRun treats them as out of scope rather than missing: checks that presuppose one of them (e.g. the gpu-operator health, DCGM metrics, and GPU-HPA checks when "gpu-operator" is skipped) are reported "skipped" with a reason instead of failing, and the SDK's component-aware checks see the components as disabled. A ClusterStack'scriteriaoutput carries its own skipComponents, so wiring it keeps validation aligned with the deployed subset automatically. Skipping does not verify a replacement you run yourself — those checks are simply not made.
- accelerator string
- GPU accelerator type. Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only).
- intent string
- Workload intent. Supported values: "training", "inference".
- service string
- Kubernetes service. Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke".
- nodes number
- Worker-node count hint used to size the recipe.
- os string
- Operating system flavor of the worker nodes. Leave unset for OS-agnostic resolution. Supported values: "ubuntu", "cos", "ol".
- platform string
- ML platform/framework. Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm.
- skip_
components list(string) - Recipe components the stack intentionally did not deploy (ClusterStack's
skipComponents). ValidationRun treats them as out of scope rather than missing: checks that presuppose one of them (e.g. the gpu-operator health, DCGM metrics, and GPU-HPA checks when "gpu-operator" is skipped) are reported "skipped" with a reason instead of failing, and the SDK's component-aware checks see the components as disabled. A ClusterStack'scriteriaoutput carries its own skipComponents, so wiring it keeps validation aligned with the deployed subset automatically. Skipping does not verify a replacement you run yourself — those checks are simply not made.
- accelerator String
- GPU accelerator type. Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only).
- intent String
- Workload intent. Supported values: "training", "inference".
- service String
- Kubernetes service. Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke".
- nodes Integer
- Worker-node count hint used to size the recipe.
- os String
- Operating system flavor of the worker nodes. Leave unset for OS-agnostic resolution. Supported values: "ubuntu", "cos", "ol".
- platform String
- ML platform/framework. Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm.
- skip
Components List<String> - Recipe components the stack intentionally did not deploy (ClusterStack's
skipComponents). ValidationRun treats them as out of scope rather than missing: checks that presuppose one of them (e.g. the gpu-operator health, DCGM metrics, and GPU-HPA checks when "gpu-operator" is skipped) are reported "skipped" with a reason instead of failing, and the SDK's component-aware checks see the components as disabled. A ClusterStack'scriteriaoutput carries its own skipComponents, so wiring it keeps validation aligned with the deployed subset automatically. Skipping does not verify a replacement you run yourself — those checks are simply not made.
- accelerator string
- GPU accelerator type. Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only).
- intent string
- Workload intent. Supported values: "training", "inference".
- service string
- Kubernetes service. Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke".
- nodes number
- Worker-node count hint used to size the recipe.
- os string
- Operating system flavor of the worker nodes. Leave unset for OS-agnostic resolution. Supported values: "ubuntu", "cos", "ol".
- platform string
- ML platform/framework. Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm.
- skip
Components string[] - Recipe components the stack intentionally did not deploy (ClusterStack's
skipComponents). ValidationRun treats them as out of scope rather than missing: checks that presuppose one of them (e.g. the gpu-operator health, DCGM metrics, and GPU-HPA checks when "gpu-operator" is skipped) are reported "skipped" with a reason instead of failing, and the SDK's component-aware checks see the components as disabled. A ClusterStack'scriteriaoutput carries its own skipComponents, so wiring it keeps validation aligned with the deployed subset automatically. Skipping does not verify a replacement you run yourself — those checks are simply not made.
- accelerator str
- GPU accelerator type. Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only).
- intent str
- Workload intent. Supported values: "training", "inference".
- service str
- Kubernetes service. Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke".
- nodes int
- Worker-node count hint used to size the recipe.
- os str
- Operating system flavor of the worker nodes. Leave unset for OS-agnostic resolution. Supported values: "ubuntu", "cos", "ol".
- platform str
- ML platform/framework. Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm.
- skip_
components Sequence[str] - Recipe components the stack intentionally did not deploy (ClusterStack's
skipComponents). ValidationRun treats them as out of scope rather than missing: checks that presuppose one of them (e.g. the gpu-operator health, DCGM metrics, and GPU-HPA checks when "gpu-operator" is skipped) are reported "skipped" with a reason instead of failing, and the SDK's component-aware checks see the components as disabled. A ClusterStack'scriteriaoutput carries its own skipComponents, so wiring it keeps validation aligned with the deployed subset automatically. Skipping does not verify a replacement you run yourself — those checks are simply not made.
- accelerator String
- GPU accelerator type. Supported values: "h100", "gb200", "b200", "rtx-pro-6000" (eks/lke only).
- intent String
- Workload intent. Supported values: "training", "inference".
- service String
- Kubernetes service. Supported values: "aks", "bcm", "eks", "gke", "kind", "lke", "oke".
- nodes Number
- Worker-node count hint used to size the recipe.
- os String
- Operating system flavor of the worker nodes. Leave unset for OS-agnostic resolution. Supported values: "ubuntu", "cos", "ol".
- platform String
- ML platform/framework. Supported values: "kubeflow" (training), "dynamo" (inference), "nim" (inference, eks with h100 or rtx-pro-6000 only). kubeflow and dynamo have no recipes on lke/bcm.
- skip
Components List<String> - Recipe components the stack intentionally did not deploy (ClusterStack's
skipComponents). ValidationRun treats them as out of scope rather than missing: checks that presuppose one of them (e.g. the gpu-operator health, DCGM metrics, and GPU-HPA checks when "gpu-operator" is skipped) are reported "skipped" with a reason instead of failing, and the SDK's component-aware checks see the components as disabled. A ClusterStack'scriteriaoutput carries its own skipComponents, so wiring it keeps validation aligned with the deployed subset automatically. Skipping does not verify a replacement you run yourself — those checks are simply not made.
Package Details
- Repository
- nvidia-aicr pulumi-labs/pulumi-nvidia-aicr
- License
- Apache-2.0
NVIDIA AI Cluster Runtimepublished on Monday, Aug 31, 2026 by Pulumi Labs