Skip to main content
Version: main 🚧

What are Stacks

Stacks let vCluster Platform deploy several applications as one dependency-aware unit. Use them when an environment needs more than a collection of independently installed applications.

A Stack can wait for one application to become healthy before it creates another. It can also capture values from one task and pass them to later tasks. Applications without dependencies can deploy concurrently.

Understand stack resources​

A Stack uses two Platform resources:

  • A StackTemplate is a reusable, parameterized task graph. Platform administrators create these templates and control who can use them.
  • A StackInstance applies an inline graph or a referenced StackTemplate to one tenant cluster or control plane cluster.

Each task creates one child resource:

  • An App task creates an AppInstance from an inline definition or an App reference.
  • An Argo CD Application task creates an ArgoCDApplication from an inline definition or an ArgoCDApplicationTemplate reference.

A Stack can mix both task types. The destination, owner, and access settings come from the StackInstance and propagate to its children.

Understand task orchestration​

The diagram below shows one example task graph. A Stack's applications, task count, and dependencies depend entirely on what your environment needs.

StackInstanceGPU OperatorAppIngressAppModel ServerAppMonitoringArgoCDApplicationshares outputArrows wait until theirdependency reports Healthy.
In this example, GPU Operator and Ingress start without dependencies. Model Server waits until GPU Operator is healthy, and Monitoring waits on both Model Server and Ingress while reading Model Server's output.

Tasks form a directed acyclic graph. A task starts after every task in its dependsOn list becomes healthy. Tasks on separate branches can run at the same time.

Each task reports its own phase, reason, and child resource name. The StackInstance combines those results into an aggregate phase. This gives users one place to monitor the environment without hiding the status of each application.

Tasks can capture scalar values from Secrets or namespaced Kubernetes resources. Later tasks consume those values through the .Outputs template context. Template authors can publish selected outputs to Stack users without publishing every captured value.

Choose an application delivery resource​

ResourceUse it when
AppYou need one independently managed Helm chart, manifest set, or script.
ArgoCDApplicationGit is the source of truth and Argo CD continuously reconciles one application.
StackSeveral Apps or Argo CD Applications need dependencies, health gates, shared parameters, or output handoff.

Argo CD sync waves order resources inside one Argo CD Application. A Stack adds dependency edges between separate applications and can mix App and Argo CD delivery.

Understand lifecycle and licensing​

A referenced StackTemplate is resolved during each reconciliation. StackTemplates don't have Stack revisions. Template changes can therefore affect existing StackInstances.

When a template removes a task, the StackInstance prune policy controls its existing child. Retain is the default and keeps the child. Prune deletes it in reverse dependency order.

Stacks don't have a separate license feature. App tasks use the Apps feature. Argo CD Application tasks also require the Argo CD Integration feature. Both are available on every plan, including the free plan.

Certified Stacks use the same resources and controller. vCluster Platform bundles certified StackTemplates and their supporting resources for tested integrations such as NVIDIA Run:ai. See Certified Stacks integrations for the full list.

Next steps​