1. See what you have today
The example is the checkout cache of a storefront in confighub/examples. Its base wraps a small Helm chart, and three overlays set dev, staging and prod.
| File | What it does |
|---|---|
base/charts/checkout-cache/Chart.yaml | part of the Helm chart, kept in the repository |
base/charts/checkout-cache/templates/deployment.yaml | part of the Helm chart, kept in the repository |
base/charts/checkout-cache/templates/service.yaml | part of the Helm chart, kept in the repository |
base/charts/checkout-cache/values.yaml | part of the Helm chart, kept in the repository |
base/kustomization.yaml | inflates the chart with its values and adds a label |
overlays/dev/kustomization.yaml | adds the environment label and patches in the namespace |
overlays/prod/kustomization.yaml | adds the environment label and patches in the namespace, replicas, the container's resources limits memory |
overlays/staging/kustomization.yaml | adds the environment label and patches in the namespace, replicas |
To see what any environment runs, Kustomize has to call Helm. kustomize build refuses the chart unless you pass --enable-helm.
2. See what the Workshop gives you
Each overlay builds into one flat file of 1 Service and 1 Deployment. The Workshop's check reads each one.
$ kustomize build --enable-helm overlays/prod > prod.yaml
$ cub config check prod.yaml
Config: prod
Inspecting local Kubernetes objects (static, no infrastructure)
Installs
2 objects: 1 Deployment, 1 Service
namespaces that must already exist: storefront-prod
Lifecycle work
[PASS] CRDs: 0
[PASS] Helm hooks: 0
[PASS] setup Jobs: 0
[PASS] admission webhooks needing a certificate: 0
[PASS] images tagged latest or not tagged: 0
Schema
[PASS] schema validation: 2 object(s) valid against the default and ecosystem catalogs (flux-schema/0.16.0)
Free look before you install. Compose it into a cub stack, or run it as a cub app.3. See every field that differs
These are all the differences between the three builds.
| Field | dev | staging | prod | On |
|---|---|---|---|---|
metadata.labels.environment | dev | staging | prod | Service/checkout-cache, Deployment/checkout-cache |
metadata.namespace | storefront-dev | storefront-staging | storefront-prod | Service/checkout-cache, Deployment/checkout-cache |
spec.replicas | 1 | 2 | 3 | Deployment/checkout-cache |
spec.template.spec.containers[0].resources.limits.memory | 256Mi | 256Mi | 1Gi | Deployment/checkout-cache |
The namespace row is the one the overlays work for. Drop a patch, and that object lands in whatever namespace Argo CD is told to use.
4. Try it yourself, with no account
Install cub and the Workshop plugin, kustomize and helm first.
# fetch the example at the commit this page was built from
$ git clone https://github.com/confighub/examples.git && git -C examples checkout 7f1b8f2fc849bb6488bc2c58f1469172018fc9dd
$ cd examples/gitops/argo/expert-app-of-apps/apps/checkout-cache
# build each overlay flat; Kustomize calls Helm for the chart
$ for env in dev staging prod; do kustomize build --enable-helm overlays/$env > $env.yaml; done
$ cub config check prod.yaml
See it live in ConfigHub
Everything above runs on your own machine with no account. To see the same example in ConfigHub, load it into your own organization with the commands below.
With your own account
This app is one of the children of an Argo CD app of apps. Bring your Argo CD apps into ConfigHub loads the whole estate, and apply.sh builds each overlay as above before it saves it.
5. Technical notes and disclaimers
- The builds and checks ran on 2026-10-26 with kustomize v5.8.1, helm v4.1.4+g05fa379, cub v0.9.0 and Workshop plugin 0.6.61. The recorded files and their receipt hold every input and output.
- What a chart inflates can change with the helm version Kustomize calls, so the flat files are the ones to review, not the overlays.