Comparisons
StageSet isn’t a templating tool and isn’t a replacement for your manifest
generator. It’s a delivery controller: it takes manifests that already exist
(as a Flux ExternalArtifact) and rolls them out in order,
with gates, under continuous reconciliation. These pages place it next to tools
people reach for in the same situations.
| Generates manifests | Applies them | Continuous reconcile / drift | Ordered stages within a release | Gates / typed actions | |
|---|---|---|---|---|---|
| StageSet | no | yes | yes | yes | yes |
| Helm | yes (templates) | yes (helm upgrade) | no | hooks + weights | hooks only |
Kustomize (kustomize CLI) | yes (overlays) | no (kubectl apply) | no | no | no |
Flux kustomize-controller | no | yes | yes | between Kustomizations | health checks |
| Tanka / kubecfg | yes (Jsonnet) | yes (CLI) | no | dependency order | no |
StageSet is complementary to all of them. It consumes manifests produced by
Helm, Kustomize,
Tanka, or anything else — its job starts once you have
manifests and need to deliver them carefully.
Progressive-delivery controllers (Flagger,
Argo Rollouts) sit at another layer —
traffic shifting for a single workload — and also compose with StageSet rather
than replace it; see vs Argo Rollouts.
- StageSet vs Argo Rollouts
Different layers — staged multi-artifact delivery versus single-workload traffic shifting.
- StageSet vs Flux kustomize-controller
Intra-release stages and gates versus per-Kustomization ordering.
- StageSet vs Helm
How StageSet relates to Helm's templating and hook ordering.
- StageSet vs jsonnet-controller
A jsonnet-native Flux applier versus a renderer-agnostic staged-delivery layer.
- StageSet vs Kustomize
Why StageSet delivers what Kustomize only builds.
- StageSet vs Tanka and kubecfg
Reconciled, gated delivery versus CLI-driven Jsonnet apply.