1. Registry
  2. Packages
  3. NVIDIA AI Cluster Runtime (AICR) Provider
  4. API Docs
  5. ClusterStack
Viewing docs for NVIDIA AI Cluster Runtime v0.3.2
published on Monday, Aug 31, 2026 by Pulumi Labs
nvidia-aicr logo NVIDIA AI Cluster Runtime
Viewing docs for NVIDIA AI Cluster Runtime v0.3.2
published 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.

    ComponentOverrides Dictionary<string, Pulumi.Labs.NvidiaAicr.Inputs.ComponentOverrideArgs>
    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 kubeconfig nor kubeconfigPath is set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.

    KubeconfigPath string
    Path to a kubeconfig file on disk. Mutually exclusive with kubeconfig. Prefer kubeconfig when 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.

    SkipAwait 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.
    SkipComponents 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.

    ComponentOverrides map[string]ComponentOverrideArgs
    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 kubeconfig nor kubeconfigPath is set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.

    KubeconfigPath string
    Path to a kubeconfig file on disk. Mutually exclusive with kubeconfig. Prefer kubeconfig when 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.

    SkipAwait 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.
    SkipComponents []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 kubeconfig nor kubeconfigPath is 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. Prefer kubeconfig when 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.

    componentOverrides Map<String,ComponentOverrideArgs>
    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 kubeconfig nor kubeconfigPath is set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.

    kubeconfigPath String
    Path to a kubeconfig file on disk. Mutually exclusive with kubeconfig. Prefer kubeconfig when 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.

    skipAwait 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.
    skipComponents 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.

    componentOverrides {[key: string]: ComponentOverrideArgs}
    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 kubeconfig nor kubeconfigPath is set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.

    kubeconfigPath string
    Path to a kubeconfig file on disk. Mutually exclusive with kubeconfig. Prefer kubeconfig when 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.

    skipAwait 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.
    skipComponents 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, ComponentOverrideArgs]
    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 kubeconfig nor kubeconfigPath is 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. Prefer kubeconfig when 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.

    componentOverrides 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 kubeconfig nor kubeconfigPath is set, the ambient kubeconfig (KUBECONFIG env var or ~/.kube/config) is used.

    kubeconfigPath String
    Path to a kubeconfig file on disk. Mutually exclusive with kubeconfig. Prefer kubeconfig when 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.

    skipAwait 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.
    skipComponents 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:

    ComponentCount int
    Number of components deployed.
    Criteria Pulumi.Labs.NvidiaAicr.Outputs.RecipeCriteria
    The canonicalized recipe criteria this stack resolved with, including its skipComponents. Wire it into a ValidationRun's criteria input so deployment and validation share a single source of truth — the same recipe, and the same components in scope.
    DeployedComponents List<string>
    Names of all components deployed as part of this stack, in topological order.
    RecipeName string
    The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
    RecipeVersion string
    The AICR recipe data version embedded in this provider build.
    ComponentCount int
    Number of components deployed.
    Criteria RecipeCriteria
    The canonicalized recipe criteria this stack resolved with, including its skipComponents. Wire it into a ValidationRun's criteria input so deployment and validation share a single source of truth — the same recipe, and the same components in scope.
    DeployedComponents []string
    Names of all components deployed as part of this stack, in topological order.
    RecipeName string
    The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
    RecipeVersion 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's criteria input 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.
    componentCount Integer
    Number of components deployed.
    criteria RecipeCriteria
    The canonicalized recipe criteria this stack resolved with, including its skipComponents. Wire it into a ValidationRun's criteria input so deployment and validation share a single source of truth — the same recipe, and the same components in scope.
    deployedComponents List<String>
    Names of all components deployed as part of this stack, in topological order.
    recipeName String
    The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
    recipeVersion String
    The AICR recipe data version embedded in this provider build.
    componentCount number
    Number of components deployed.
    criteria RecipeCriteria
    The canonicalized recipe criteria this stack resolved with, including its skipComponents. Wire it into a ValidationRun's criteria input so deployment and validation share a single source of truth — the same recipe, and the same components in scope.
    deployedComponents string[]
    Names of all components deployed as part of this stack, in topological order.
    recipeName string
    The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
    recipeVersion string
    The AICR recipe data version embedded in this provider build.
    component_count int
    Number of components deployed.
    criteria RecipeCriteria
    The canonicalized recipe criteria this stack resolved with, including its skipComponents. Wire it into a ValidationRun's criteria input 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.
    componentCount Number
    Number of components deployed.
    criteria Property Map
    The canonicalized recipe criteria this stack resolved with, including its skipComponents. Wire it into a ValidationRun's criteria input so deployment and validation share a single source of truth — the same recipe, and the same components in scope.
    deployedComponents List<String>
    Names of all components deployed as part of this stack, in topological order.
    recipeName String
    The resolved AICR recipe name (e.g., "h100-eks-ubuntu-training-kubeflow").
    recipeVersion 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.
    SkipComponents 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's criteria output 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.
    SkipComponents []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's criteria output 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's criteria output 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.
    skipComponents 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's criteria output 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.
    skipComponents 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's criteria output 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's criteria output 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.
    skipComponents 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's criteria output 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-aicr logo NVIDIA AI Cluster Runtime
    Viewing docs for NVIDIA AI Cluster Runtime v0.3.2
    published on Monday, Aug 31, 2026 by Pulumi Labs

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial