Templates overview
Templates define reusable configurations for creating virtual clusters, applications, and namespaces. They allow platform teams to standardize resource provisioning while giving users a controlled way to customize certain settings. Templates are implemented using Kubernetes custom resources (VirtualClusterTemplate
, AppTemplate
, and SpaceTemplate
) and can be managed with tools such as kubectl
, Helm, or ArgoCD.
Each template type serves a specific purpose. Virtual cluster templates define the base configuration for virtual 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. 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.
Virtual 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 host cluster or the virtual cluster itself.
Because templates can be versioned, they support upgrade workflows. When a template is updated, those changes can be manually or automatically propagated to any resources based on it. This allows teams to configure and update clusters, applications, and namespaces in a repeatable way across multiple environments.
Template types​
vCluster Platform includes templates for virtual clusters, applications, and namespaces.
Template type | Custom resource | Purpose | Common Use Cases |
---|---|---|---|
Virtual cluster | VirtualClusterTemplate | Specifies how virtual clusters are provisioned, including control plane settings, synchronization behavior, and metadata. | Provision virtual clusters with consistent architecture, features, and default settings. |
App | AppTemplate | Defines reusable application configurations, such as Helm charts or Kubernetes manifests . | Deploy standard applications across projects or spaces using consistent settings. |
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 ArgoCD.
Apply parameters and versioning​
Templates support optional parameterization and versioning. Optionally, 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 and iterate template configurations across different releases, providing version control for your cluster templates. It allows for automatic updates for virtual clusters based on versioned templates. Templates without versions do not support automatic updates.
Next steps​
- Create a template to define a reusable configuration.
- Optionally, configure template parameters to allow user customization.
- Optionally, set up template versioning to manage template updates.