Templates overview
Templates define reusable configurations for creating tenant clusters, applications, Stacks, and namespaces. They allow platform teams to standardize resource provisioning while giving users a controlled way to customize certain settings. Tenant cluster and namespace templates are implemented using Kubernetes custom resources (VirtualClusterTemplate and SpaceTemplate) and can be managed with tools such as kubectl, Helm, or Argo CD. Reusable app configurations use a separate pair of custom resources (App and AppInstance) with their own versioning and drift-detection behavior. StackTemplate and StackInstance resources define dependency-ordered groups of Apps and Argo CD Applications. ArgoCDApplicationTemplate, a separate cluster-scoped resource, defines one reusable Argo CD Application blueprint that a Stack's argoCDApplication tasks reference.
Each template type serves a specific purpose. Tenant cluster templates define the base configuration for tenant clusters, including the Kubernetes version, control plane, networking, storage settings, and sync behavior. App templates provide reusable application configurations using Helm charts or Kubernetes manifests. Stack templates coordinate several applications through dependencies, health gates, and outputs, and can reference ArgoCDApplicationTemplates for their Argo CD Application tasks. Namespace templates predefine configurations for new namespaces, including role-based access control, resource quotas, and labels.
Templates allow team administrators to define which settings users can modify through parameters. For example, you can expose only specific fields, such as the number of replicas or a set of approved storage classes, while keeping the rest of the configuration fixed. This approach reduces the risk of misconfiguration, while enabling flexibility, and helps with security.
Tenant cluster and app templates can include pre-installed components, such as monitoring agents or ingress controllers. Additional Kubernetes resources like ConfigMaps, RBAC, or NetworkPolicies can be applied to either the control plane cluster or the tenant cluster itself.
Tenant cluster, namespace, and App templates can support versioned upgrade workflows. StackTemplates don't have Stack revisions. A StackInstance resolves its referenced StackTemplate during reconciliation.
Template types​
vCluster Platform includes templates for tenant clusters, applications, Stacks, and namespaces.
| Template type | Custom resource | Purpose | Common Use Cases |
|---|---|---|---|
| Tenant cluster | VirtualClusterTemplate | Specifies how tenant clusters are provisioned, including control plane settings, synchronization behavior, and metadata. | Provision tenant clusters with consistent architecture, features, and default settings. |
| App | App | Defines reusable application configurations, such as Helm charts or Kubernetes manifests. | Deploy standard applications across projects or spaces using consistent settings. |
| Stack | StackTemplate | Defines a parameterized task graph of Apps and Argo CD Applications. | Deploy dependencies in order, wait for health, and pass outputs between applications. |
| Argo CD Application | ArgoCDApplicationTemplate | Defines a reusable Argo CD Application blueprint. | Reference the same Argo CD Application definition from multiple Stack tasks. |
| Namespace | SpaceTemplate | Predefines configurations for new namespaces, including role-based access control, resource quotas, and labels. | Automatically apply baseline policies when a namespace is created. |
You can create templates using the vCluster Platform UI for guided configuration or by applying manifests directly with kubectl, Helm, or Argo CD.
To define a task graph, see Create a Stack template.
Apply parameters and versioning​
Templates support optional parameterization. Tenant cluster, namespace, and App templates also support versioning. You can apply:
-
Parameters - Enable dynamic customization of template fields, allowing users to specify values for CPU limits, labels, environment types, and other configuration options during vCluster provisioning.
-
Versioning - Manage tenant cluster, namespace, and App template releases. StackTemplates don't use this versioning model.
Next steps​
- Create a template to define a reusable configuration.
- Create a Stack template to coordinate dependent applications.
- Manage Certified Stacks to use the NVIDIA Run:ai templates bundled with Platform.
- Optionally, configure template parameters to allow user customization.
- Optionally, set up template versioning to manage template updates.
- If a tenant cluster, namespace, or app instance isn't picking up its template, see Troubleshoot template and app sync failures.