What it is. secrets-store-csi-driver/secrets-store-csi-driver 1.6.0, as 10 Kubernetes objects in its default preset. The Catalog holds 2 presets of this version.
Install it. curl -fsSL -o try-objects.sh https://confighub.github.io/helm-expt/site/sh/secrets-store-csi-driver-secrets-store-csi-driver-1-6-0/default/try-objects.sh && bash try-objects.sh
OCI bundle. oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/bundles/catalog-secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default:latest@sha256:85578cc75a0ef6398d4d2c7db3c65ac0cc70182607c62a608c69fc787ec0a336
Needs first. Lifecycle route for the CRD upgrade hook Job. Templates/crds-upgrade-hook.yaml runs a Job that installs and upgrades the driver CRDs.
How it works. How the model works, and Helm in the Catalog.
What this page gives you
Every chart page follows the same order. Choose a configuration, inspect its objects and setup work, then read the tests that have run. Open the worked examples.
The package fixes and checks almost everything at build time. What you set is small and typed.
Open the saved results for the Helm comparison, live install, and delivery checks.
The page names the work and says which delivery path has actually run.
What To Use
default configuration: 10 rendered objects · 3 images · 0 target prerequisites · 0 hook or setup steps · 6/6 checks passing. These counts come from the linked test records.
defaultRecommended first base variant
2Supported base variants
Recommended first pathFirst-configuration status
Ready for a target-specific production reviewProduction status
Use the public catalog entry, then check the exact configuration and its tests before making a production claim.
| Question | Answer |
| Catalog readiness | Ready to try |
| Chart version | 1.6.0 |
| Exact installer package | oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 |
| OCI publication status | publication receipt recorded |
| Publisher signature | publisher signature recorded and verified |
| Latest upstream seen | 1.6.0 |
| Supported base variants | default;sync-secret-rotation |
| Not yet available | No specific missing capability is recorded. The first configuration still needs review. |
| Namespace | kube-system |
Four Separate Questions
Inspecting a source, producing objects, checking a destination, and checking a live result are different jobs. A Catalog match is useful for comparison but is not required. A missing destination or deployment is shown as not run or blocked, not as a failed configuration.
| Question | Current answer | What it needs | Status |
| What do I have? | Inspect the helm source, choices, locks, and any existing output before selecting a destination. | Destination access: no Selected configuration deployed: no | Available to inspect evidence recorded |
| What will it produce? | Run the recorded Helm render step to produce the exact Kubernetes objects for this configuration. | Destination access: no Selected configuration deployed: no | Checked: passed evidence recorded |
| Can this destination accept it? | The destination has not been checked for this exact configuration. A recorded source or render result is not a destination pass. | Destination access: yes Selected configuration deployed: no | Not run no run recorded |
| Did it work? | No post-deployment result is recorded for this exact configuration. Publication, upload, or rendering is not proof that it ran correctly. | Destination access: yes Selected configuration deployed: yes | Not run no run recorded |
Open the complete assessment, source, lifecycle, and evidence record.
Where This Chart's Settings Come From
| Base variant | Helm values | ConfigHub changes | Install work |
| default | effective-values.yaml | None in the catalog base. Later edits appear in ConfigHub Unit revision history or a derived variant. | No separate install work is required. |
| sync-secret-rotation | effective-values-sync-secret-rotation.yaml | None in the catalog base. Later edits appear in ConfigHub Unit revision history or a derived variant. | No separate work is recorded; read the prerequisite and lifecycle status before assuming none is needed. |
Upgrade rule: if a new Helm render and a ConfigHub revision both change the same field, review the overlap before promotion. The values profile shows the Helm side; Unit revision history shows the ConfigHub side.
Read the full values-versus-ConfigHub rule. For the staging commands behind each prerequisite, open the prerequisite action packets.
What This Chart Contains
Shipping a chart as plain rendered YAML is faster and simpler, and it silently drops anything Helm was going to do afterwards. This section reports what a scan of the packaged chart found, across 20 files.
| Construct | Found | Why it matters when a chart ships as plain YAML |
| Helm hooks | 10 | Hook Jobs never fire, or fire under a different hook dialect. |
| Keep policy | 1 | A reconciler prunes what Helm promised to keep. |
| Capability branching | 8 | The chart chooses apiVersions from the cluster it renders against. |
| Custom resource definitions | 2 | Per-file delivery can race the definitions the resources depend on. |
A flattening-safety verdict has decided this version: default:flatten-with-routes; sync-secret-rotation:flatten-with-routes. The verdict records one disposition per construct and names any companion artifact a flattened bundle must ship. What the flattening verdict means.
A construct being present does not make a chart unflattenable. Most are switched on or off by values, and a verdict records which ones the base you choose actually reaches. Read the catalog-wide evidence for how common each one is.
What The Starting Configuration Records
A base variant is a starting configuration we have already rendered and checked. Pick the one whose trade-off you want; the table below shows what each one changes. How the values for each are chosen.
The default base-variant record connects those Helm inputs to the Kubernetes objects, remaining requirements, hooks, CRDs, checks, and OCI status. Open it when you need the complete starting record rather than only the rendered YAML.
Open the full rendered YAML to read the actual manifest output. The render record and setup section explain the inputs, tests, CRDs, hooks, and other work around it.
If new Helm values create a useful starting configuration, record another base variant with its own inputs and checks. If one environment changes a field after rendering, record that change in a ConfigHub variant.
| Key | Where to look first | What it means |
| Package users pull | oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 | The exact installer package for this chart version. The version tag is readable, and the manifest digest makes a published pull immutable. Public catalog package refs are published in Google Artifact Registry with anonymous read access. No ConfigHub account or Google registry login is needed for the local setup path. |
| Required before apply | None recorded for the recommended base variant. No separate setup command recorded. | External resources the recommended base variant expects, such as an existing Secret, namespace, CRD, or target fact. |
| Kubernetes objects | full rendered YAML | The full YAML captured from this base variant. It is the output of the render. |
| Render record | default render intent | The Helm inputs and evidence links that explain how the output was produced. |
| Complete starting record | default base-variant record | The record that connects the Helm inputs, Kubernetes objects, remaining requirements, setup work, checks, and OCI status. |
| Hooks, CRDs, and setup work | this page's setup section | Instructions and decisions for hooks, CRDs, generated Secrets, setup jobs, cluster requirements, or blockers. |
Choose base variant
Pick the supported Helm configuration for this chart: default, no-CRDs, existing Secret, HA, server-only, or another listed option.
Record inputs
Keep the values, namespace, release name, source lock, default render intent, full YAML output, package base, test results, and setup instructions together.
Handle chart extras
CRDs, hooks, setup jobs, external Secrets, target facts, and webhook certificates are recorded as chart-specific choices. Some are included in a base variant, some need a setup step, and some are blocked until there is a safe path.
How render intents work · All generated render intents · All base variant records
Try This Chart
Start with default. If a card says review or preparation is needed, treat that as a real limit rather than a ready install.
Package image
Exact package: oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791
publication receipt recorded · open the exact publication receipt
Readable version tag: oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0. The package is pinned so a republished tag cannot change what you get. The command below uses the exact manifest digest, so cub installer refuses different package bytes.
Check the package identity
cub installer inspect oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 --json
Read how each configuration was made
cub installer pull 'oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791' --work-dir ./package-review
less ./package-review/package/records/README.md
The package's records/ directory connects every base to its source choices, Helm render intent, Kubernetes objects, prerequisites, lifecycle work, and checks. These are supporting records, not Kubernetes objects.
Verify the package publisher
Run this command with cosign. It checks the expected publisher, the exact manifest digest, and the package annotations.
cosign verify --certificate-identity helm-expt-package-signer@nth-fort-499605-q5.iam.gserviceaccount.com --certificate-oidc-issuer https://accounts.google.com --annotations confighub.com/package-path=packages/secrets-store-csi-driver/secrets-store-csi-driver/1.6.0 --annotations confighub.com/package-sha256=4dccea39870a28820d34d59237c2cba25b1aefbe15650f5bd431e08d347e01d2 europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791
A valid signature identifies who signed these package bytes. It does not show that the configuration is suitable for your cluster; use this page's checks and setup instructions for that decision.
Signature receipt · Sigstore bundle · How signature verification works
Public catalog package refs are published in Google Artifact Registry with anonymous read access. No ConfigHub account or Google registry login is needed for the local setup path.
Recommended first command
cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 --base default --work-dir ./secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default --non-interactive --namespace kube-system
Advanced: apply it or upload it
Run the whole sequence as one script, prerequisites included: try.sh renders and applies to Kubernetes without an account; confighub.sh renders and uploads to your ConfigHub Space.
Before you run try.sh: it changes your current kubectl context. It runs the named prerequisites and applies the rendered objects. Read it first and use a disposable test cluster. confighub.sh does not apply anything to Kubernetes.
You should see something like this
Here is what the command does. cub installer is an open-source plugin for the cub CLI. cub installer setup pulls a catalog package and writes its Kubernetes files locally, leaving delivery to kubectl, Argo CD or Flux. The generated scripts stop before doing any work when the plugin or kustomize is missing.
cub installer setup ...
rendered manifests written under <work-dir>
use the chart option cards below to check pass, watch, blocked, and prerequisites
Current status: Available in the catalog · Reason: Promotion was tested and recorded in ConfigHub.
Use this entry in ConfigHub
Every Catalog entry page carries these five steps in this order. Each step says what the Catalog has run for this entry, and a step with a missing precondition gives no command.
Steps 1 and 2 need no account. Install the cub CLI before any cub command. Step 2 uses cub config diff, which cub plugin install confighub/cub-workshop@v0.6.61 adds. This page covers 2 entries, so open the one you want. A live walk on 2026-10-08 ran steps 3 to 5 for bitnami-nginx-24-0-2-http-clusterip and nvidia-gpu-operator-v26-3-3-default. These commands carry the changes that walk needed. It is a dated log and no receipt, so no state on this page rests on it.
Helm chart, base default, version 1.6.0
What is fixed, and what you supply
Fixed when this entry was built. These went into the build, so the objects already carry them. To change one, build the entry again from its source.
chart is secrets-store-csi-driver/secrets-store-csi-driverversion is 1.6.0base is defaultvaluesProfile is recipes/secrets-store-csi-driver/secrets-store-csi-driver/1.6.0/effective-values.yamlnamespace is kube-systemreleaseName is secrets-store-csi-drivercapabilityProfile is {"apiVersions":[],"kubeVersion":"1.30.0"}
Yours to supply or check. The listing records no input for the destination. The Catalog has not ruled one out for your cluster.
This entry's plan, and how to test it
These are the steps that plain objects cannot carry. ConfigHub stores them and does not carry them out. The words in italics say what the Catalog knows about each.
- Once the destination is known. Lifecycle route for the CRD upgrade hook Job. Templates/crds-upgrade-hook.yaml runs a Job that installs and upgrades the driver CRDs. Who: delivery runtime. Written down. Not run by the Catalog.
- Once the destination is known. Prune protection for the keep-annotated CRD hook objects. The CRD upgrade hook objects carry helm.sh/resource-policy keep. Who: selected destination actor. Written down. Not run by the Catalog.
- When you deliver. CRD ordering declaration. Who: selected destination actor. Written down. Not run by the Catalog.
Test the install steps yourself. This script carries them out with kubectl on a cluster you choose, with no account. Read it first and use a throwaway cluster. The Catalog has no recorded run of this script.
Test the plain objects. A second script tests the retained objects themselves with kubectl, and it needs no cub and no account. The Catalog has no recorded run of this script.
Compared with plain Helm. The Catalog installed this base beside plain Helm on two local clusters, and the two matched. Read the receipt.
Read what a plan is, and why some entries have one.
1. Get the exact objects Run for this entry
The Catalog rendered this entry and retains its 10 objects in one file.
An upload can create more Units than the objects counted here. The installer renders a Namespace, and the upload adds an installer-record Unit.
$ curl -fsSL -o secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/secrets-store-csi-driver/secrets-store-csi-driver/1.6.0/revisions/default/r001/rendered/release-objects.yaml
$ shasum -a 256 secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default.yaml
2490f14dd08f7e309f8f78cd1c2f1b05eb5b8995343b33ad6b3b243401a39ead secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default.yaml
$ cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 --base default --work-dir ./secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default --non-interactive --namespace kube-system
2. Compare with another version or base Not run for this entry
The listing records no comparison for this entry. The commands run on the retained files, with no account. This version has one other base in the Catalog, sync-secret-rotation.
$ curl -fsSL -o secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/secrets-store-csi-driver/secrets-store-csi-driver/1.6.0/revisions/sync-secret-rotation/r001/rendered/release-objects.yaml
$ cub config diff secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default.yaml secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation.yaml --summary
3. Upload it as a variant Run for this entry
The Catalog saved this entry in ConfigHub. The commands use its signed installer package. Read the log of the live walk on 2026-10-08 · Read the record that states this.
Replace each value in angle brackets with a name of your own. The entry id may already exist as a Space in your organization, and the package name as a Component.
In the live walk, a Space named for the nginx entry's id and a Component named bitnami-nginx already existed, so the walk chose its own names. The --component flag sets the Component label the upload writes on the Space, which is the package name when you omit it.
The cub installer plugin reads your organization from CUB_CONTEXT and ignores --context. If you use a context other than your default, export CUB_CONTEXT first, or the plugin works in your default organization.
$ cub auth login
$ cub installer upload --work-dir ./secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default --space <your-space> --component <your-component>
$ cub unit list --space <your-space>
4. Deploy it Not run for this entry
No delivery run is recorded for this entry. Argo CD has not run, Flux has not run, and kubectl has not run. The commands name the Target workshop/target, which cub cluster up --name workshop creates on a local kind cluster with Argo CD. Use your own Target for a real destination. The coverage lanes record a local Kubernetes run and a GitOps OCI run for this base. They are separate from the delivery record this step reads. Read the log of the live walk on 2026-10-08.
Use the Space name you chose in step 3. The delete command is needed because the cloned installer-record Unit carries the Target and Argo CD v3.5.4 cannot read it, a defect seen on cub v0.8.7 and server v0.8.9.
Without that line the walk deployed nothing and Argo CD showed Unknown, while every cub command exited 0. The walk ran the four commands in this order and did not try them without the first publish.
ConfigHub shows nothing when Argo CD fails to read a Release. Run kubectl -n argocd get applications.argoproj.io and read the Sync column, because Healthy alone is not a pass. Argo CD took between 18 seconds and about 5 minutes to read a Release on a cluster made without argobot.
The walk made its cluster with cub cluster up --no-argobot. That command creates two Spaces, a Worker, a Target and a Trigger, opens ports 30010 to 30019 on the machine, and installs Argo CD from an unpinned upstream manifest.
Removing the ConfigHub side does not remove the workload. In the walk, deleting the Application Unit and the Spaces left the Application and its pods running, because the root Application does not prune.
$ cub variant create dev <your-space> --target workshop/target --space-pattern "template:<your-space>-dev"
$ cub release publish <your-space>-dev
$ cub unit delete --space <your-space>-dev installer-record
$ cub release publish <your-space>-dev
5. Promote a change Partly run for this entry
A promotion ran for this entry. It ran the preview and the promote. The delete and the publish below have no recorded run for this entry. Promotion carries a change in the base to the dev variant. The base changes when you edit a Unit or upload a newer version into the same Space. Read the log of the live walk on 2026-10-08 · Read the record that states this.
The promotion changes the dev Space and publishes nothing. It also adds the installer-record Unit back with the Target. The change reaches the cluster only after the delete and the publish.
The preview lists the whole installer record as added. In the walk, the preview of a one-label change to gpu-operator ran to 405 lines, and about 400 of them were that record.
$ cub variant promote <your-space>-dev --dry-run -o mutations
$ cub variant promote <your-space>-dev --change-desc "Pull the reviewed base forward"
$ cub unit delete --space <your-space>-dev installer-record
$ cub release publish <your-space>-dev
Helm chart, base sync-secret-rotation, version 1.6.0
What is fixed, and what you supply
Fixed when this entry was built. These went into the build, so the objects already carry them. To change one, build the entry again from its source.
chart is secrets-store-csi-driver/secrets-store-csi-driverversion is 1.6.0base is sync-secret-rotationvaluesProfile is recipes/secrets-store-csi-driver/secrets-store-csi-driver/1.6.0/effective-values-sync-secret-rotation.yamlnamespace is kube-systemreleaseName is secrets-store-csi-drivercapabilityProfile is {"apiVersions":[],"kubeVersion":"1.30.0"}
Yours to supply or check. The listing records no input for the destination. The Catalog has not ruled one out for your cluster.
This entry's plan, and how to test it
These are the steps that plain objects cannot carry. ConfigHub stores them and does not carry them out. The words in italics say what the Catalog knows about each.
- When you deliver. CRD ordering declaration for the 2 CustomResourceDefinition(s) this base renders. Who: selected destination actor. Written down. Not run by the Catalog.
- Once the destination is known. Lifecycle route for the packaged chart's 10 non-test hook occurrence(s). The chart's hooks sit in two files named for CRD upgrades, and this repository does not hold what they run, so this step stays yours to settle. The listing gives the rest. Who: delivery runtime. Written down. Not run by the Catalog.
Test the install steps yourself. This script carries them out with kubectl on a cluster you choose, with no account. Read it first and use a throwaway cluster. The Catalog has no recorded run of this script.
Test the plain objects. A second script tests the retained objects themselves with kubectl, and it needs no cub and no account. The Catalog has no recorded run of this script.
Compared with plain Helm. The Catalog installed this base beside plain Helm on two local clusters, and the two matched. Read the receipt.
Read what a plan is, and why some entries have one.
1. Get the exact objects Run for this entry
The Catalog rendered this entry and retains its 12 objects in one file.
An upload can create more Units than the objects counted here. The installer renders a Namespace, and the upload adds an installer-record Unit.
$ curl -fsSL -o secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/secrets-store-csi-driver/secrets-store-csi-driver/1.6.0/revisions/sync-secret-rotation/r001/rendered/release-objects.yaml
$ shasum -a 256 secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation.yaml
3667c16d411f773ef20e51c9980d484eb770c1173092878f1b018f5b4377a182 secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation.yaml
$ cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 --base sync-secret-rotation --work-dir ./secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation --non-interactive --namespace kube-system
2. Compare with another version or base Not run for this entry
The listing records no comparison for this entry. The commands run on the retained files, with no account. This version has one other base in the Catalog, default.
$ curl -fsSL -o secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/secrets-store-csi-driver/secrets-store-csi-driver/1.6.0/revisions/default/r001/rendered/release-objects.yaml
$ cub config diff secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation.yaml secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default.yaml --summary
3. Upload it as a variant Run for this entry
The Catalog saved this entry in ConfigHub. The commands use its signed installer package. Read the log of the live walk on 2026-10-08 · Read the record that states this.
Replace each value in angle brackets with a name of your own. The entry id may already exist as a Space in your organization, and the package name as a Component.
In the live walk, a Space named for the nginx entry's id and a Component named bitnami-nginx already existed, so the walk chose its own names. The --component flag sets the Component label the upload writes on the Space, which is the package name when you omit it.
The cub installer plugin reads your organization from CUB_CONTEXT and ignores --context. If you use a context other than your default, export CUB_CONTEXT first, or the plugin works in your default organization.
$ cub auth login
$ cub installer upload --work-dir ./secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation --space <your-space> --component <your-component>
$ cub unit list --space <your-space>
4. Deploy it Not run for this entry
No delivery run is recorded for this entry. Argo CD has not run, Flux has not run, and kubectl has not run. The commands name the Target workshop/target, which cub cluster up --name workshop creates on a local kind cluster with Argo CD. Use your own Target for a real destination. The coverage lanes record a local Kubernetes run and a GitOps OCI run for this base. They are separate from the delivery record this step reads. Read the log of the live walk on 2026-10-08.
Use the Space name you chose in step 3. The delete command is needed because the cloned installer-record Unit carries the Target and Argo CD v3.5.4 cannot read it, a defect seen on cub v0.8.7 and server v0.8.9.
Without that line the walk deployed nothing and Argo CD showed Unknown, while every cub command exited 0. The walk ran the four commands in this order and did not try them without the first publish.
ConfigHub shows nothing when Argo CD fails to read a Release. Run kubectl -n argocd get applications.argoproj.io and read the Sync column, because Healthy alone is not a pass. Argo CD took between 18 seconds and about 5 minutes to read a Release on a cluster made without argobot.
The walk made its cluster with cub cluster up --no-argobot. That command creates two Spaces, a Worker, a Target and a Trigger, opens ports 30010 to 30019 on the machine, and installs Argo CD from an unpinned upstream manifest.
Removing the ConfigHub side does not remove the workload. In the walk, deleting the Application Unit and the Spaces left the Application and its pods running, because the root Application does not prune.
$ cub variant create dev <your-space> --target workshop/target --space-pattern "template:<your-space>-dev"
$ cub release publish <your-space>-dev
$ cub unit delete --space <your-space>-dev installer-record
$ cub release publish <your-space>-dev
5. Promote a change Partly run for this entry
A promotion ran for this entry. It ran the preview and the promote. The delete and the publish below have no recorded run for this entry. Promotion carries a change in the base to the dev variant. The base changes when you edit a Unit or upload a newer version into the same Space. Read the log of the live walk on 2026-10-08 · Read the record that states this.
The promotion changes the dev Space and publishes nothing. It also adds the installer-record Unit back with the Target. The change reaches the cluster only after the delete and the publish.
The preview lists the whole installer record as added. In the walk, the preview of a one-label change to gpu-operator ran to 405 lines, and about 400 of them were that record.
$ cub variant promote <your-space>-dev --dry-run -o mutations
$ cub variant promote <your-space>-dev --change-desc "Pull the reviewed base forward"
$ cub unit delete --space <your-space>-dev installer-record
$ cub release publish <your-space>-dev
After You Render It
The first command writes files and does not apply them. Read the objects and setup requirements, then choose the next job.
| Job | Next step |
| Render and inspect without applying | Run the recommended cub installer setup command above. |
| Run shared local configuration checks | cub plugin install confighub/homebrew-tap@cub-scan-v0.7.3 --name scan
cub check --format json --output cub-check.json <work-dir>/out/manifests. The check is advisory and does not apply anything. |
| Apply the rendered manifests with kubectl, or publish reviewed objects as OCI | Publish reviewed objects as OCI or apply the manifests with kubectl. |
| Save the reviewed result for a team | Save and upload the reviewed result to ConfigHub for shared history, exact diffs, and approvals. |
| Compare development and production, audit an exact diff, promote, or roll back | Build a promotion review or read the bounded rollback example. |
| Assign the configuration to clusters and operate a small fleet | Choose targets, preview a wave, and inspect every result. |
| Check delivery limits | Read the current limits before choosing kubectl, Argo CD, or Flux. |
| Handle CRDs on the first install | Read the CRD ordering risk and first-install guide, then check this chart's recorded owner and plan. |
| Fix placeholder or static credentials | Use an existing Secret or another reviewed credential path before production. |
Available Configurations
Each card is one available way to use this chart in the catalog. Some cards are runnable base variants. Others are candidate paths, derived variants, or review notes that explain what still has to be prepared.
Checks: Each card names what was checked and says whether it passed, needs review, was blocked, was not run, or was not needed.
3 matrix rows for secrets-store-csi-driver/secrets-store-csi-driver@1.6.0 · open the full matrix
F1 · Source chart
(source)
Source
Pinned upstream chart and version
- Status
- Available in the catalog
- How to run
- This is the upstream chart source. Choose a base card below before running the installer.
- Evidence
- Pinned chart source and dependency lock
- Hooks/actions
- No separate hook or action for this row.
- Who runs actions?
- No separate action runner for this row.
- Next
- Choose a chart configuration before rendering or deploying
- Reason
- This is the chart source. Choose a configuration before checking deployment or promotion
Helm outputNot neededSaved in ConfigHubNot neededLocal clusterNot neededSetup stepNot neededGitOps and OCINot neededLive Helm comparisonNot neededTwo clustersNot neededPromotionNot needed
catalog · source repo
F2a · Chart default
default
Base
Runnable base variant made from the chart defaults
- Status
- Available in the catalog
- Helm values
- effective-values.yaml
- ConfigHub changes
- None in this catalog base. After upload, read Unit revision history or the derived variant.
- How to run
cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 --base default --work-dir ./secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-default --non-interactive --namespace kube-system
- Scripts
- try.sh renders, settles the prerequisites in order, and applies with kubectl; confighub.sh renders and uploads to your ConfigHub Space.
- Evidence
- Live helm vs confighub parity
- Hooks/actions
- No separate hook or action for this row.
- Who runs actions?
- No separate action runner for this row.
- Lifecycle record
- The current review found no separate hook or setup step for this base. Open the full record.
- Prerequisites
- The support review found no separate target prerequisite for the supported default base for the recorded cub-lk-kind-vanilla test target in namespace kube-system, delivered from ConfigHub OCI through Argo CD. Evidence: Support decision · Target evidence.
- Next
- Choose the target ready base; Then record explicit security acceptance or create a hardened base before claiming a target run path
- Reason
- Promotion was tested and recorded in ConfigHub.
Helm outputPassedSaved in ConfigHubPassedLocal clusterPassedSetup stepNot neededGitOps and OCIPassedLive Helm comparisonPassedTwo clustersPassedPromotionPassed
catalog · variant · full YAML · render intent · base record · package base · receipt · source repo
F2b · Helm-rendered base
sync-secret-rotation
Base
Runnable base variant made with different Helm values
- Status
- Available in the catalog
- Helm values
- effective-values-sync-secret-rotation.yaml
- ConfigHub changes
- None in this catalog base. After upload, read Unit revision history or the derived variant.
- How to run
cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 --base sync-secret-rotation --work-dir ./secrets-store-csi-driver-secrets-store-csi-driver-1-6-0-sync-secret-rotation --non-interactive --namespace kube-system
- Scripts
- try.sh renders, settles the prerequisites in order, and applies with kubectl; confighub.sh renders and uploads to your ConfigHub Space.
- Evidence
- Live helm vs confighub parity
- Hooks/actions
- No separate hook or action for this row.
- Who runs actions?
- No separate action runner for this row.
- Lifecycle record
- The current review found no separate hook or setup step for this base. Open the full record.
- Prerequisites
- This base has not yet been reviewed for required Secrets, CRDs, namespaces, values, storage services, external APIs, or target topology. Record what it needs, or record that nothing extra is required.
- Next
- Choose the target ready base; Then record explicit security acceptance or create a hardened base before claiming a target run path
- Reason
- Promotion was tested and recorded in ConfigHub.
Helm outputPassedSaved in ConfigHubPassedLocal clusterPassedSetup stepNot neededGitOps and OCIPassedLive Helm comparisonPassedTwo clustersPassedPromotionPassed
catalog · variant · full YAML · render intent · base record · package base · receipt · source repo
Local Configuration Checks
We ran cub check v0.7.3 against the exact rendered objects for every configuration below. The result is advisory: read each finding and decide whether it matters for your target.
Scanner and ruleset identity
Pattern bundle: v0.7.3
Bundle manifest: sha256:0405f6ffe21e567adf5d6a732d181c7f228194920456d046b4338baeb14de1a8
Risk catalog: sha256:7ff79a126ad99bba2505fec8b2b7711c03f50eb362141128ec1c83e27a5036ba
| Configuration | Advisory result | Exact input | Checked | Evidence |
default | 2 advisory findings 1 critical, 1 warning DaemonSet container does not set runAsNonRoot DaemonSet does not disable automountServiceAccountToken | 10 objects
sha256:a48068d52a6a5760f66616469d1f18fdc1f4a4c18a15e08d8fa93c521546601f | 2026-09-16 | Full cub check result Exact YAML Separate Catalog review |
sync-secret-rotation | 3 advisory findings 2 critical, 1 warning DaemonSet container does not set runAsNonRoot ClusterRole grants secrets read permissions DaemonSet does not disable automountServiceAccountToken | 12 objects
sha256:4ceaa2baf99d2e743ef4df0e808384baf299325dcfe270f9ba70c6149390ffef | 2026-09-16 | Full cub check result Exact YAML Separate Catalog review |
What this does not check: hook execution, CRD readiness, target Secrets and cloud services, admission behavior, workload health, or rollback. The linked Catalog review covers chart-specific source and operating questions. ConfigHub validation and approval are separate managed controls.
Read all shared check results and the mapping to Catalog rules.
Images This Chart Pulls
Every reference below comes from the reviewed rendered output. What you see is what the cluster pulls. These references are data: you can change a registry or pin a digest with a recorded edit, and prove the change landed in every environment.
| Base variant | Images |
| default | registry.k8s.io/csi-secrets-store/driver:v1.6.0
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.16.0
registry.k8s.io/sig-storage/livenessprobe:v2.18.0 |
| sync-secret-rotation | registry.k8s.io/csi-secrets-store/driver:v1.6.0
registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.16.0
registry.k8s.io/sig-storage/livenessprobe:v2.18.0 |
First-Run Caveats
Some chart paths need a small preparation step before the cub path feels as smooth as Helm. We show those steps here so the first run does not surprise you.
| Caveat | What to do |
| Universal caveats | Use declared inputs or bases instead of Helm --set. For direct delivery, define pruning and field-conflict behavior. Use Argo CD or Flux when that controller path and its pruning settings are recorded for the selected preset. |
| Shared placeholder password | No shared placeholder password caveat recorded for this chart. |
| CRD first-ordering | Yes. 2 CRD object(s) are recorded. Follow the base's recorded plan: apply CRDs first and wait, use a controller-specific ordering rule, or choose the separable CRD base when one is available. |
Open the all-chart adoption caveats · Helm to cub migration · cub deployment path
Advice And Current Status
Use this section to see which chart-specific guides apply, what you must provide, and what work remains.
| Playbook | Why it applies |
| Live Parity | has live, GitOps/OCI, or two-cluster parity work |
| Question | Current answer |
| User status | Ready to try |
| Can I use it? | Use the public catalog entry, then check the exact configuration and its tests. |
| First base | default |
| Exact installer package | oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/secrets-store-csi-driver-secrets-store-csi-driver:1.6.0@sha256:82d30ba796f0dc7cee0fcc6e385fa42fb151d3de62604a1639160bbab4ee7791 |
| Tests completed | Catalog supported with live evidence (render parity 2/2; Local live 2/2; Live parity 2/2) |
| Coverage | Covered |
| You must provide | nothing beyond a cluster and namespace |
| What the tools record | exact rendered objects with render parity and receipts; optional chart inputs handled by reviewed base configurations |
| Next action | choose the supported production base, then record explicit security acceptance or create a hardened base before claiming production support |
The source data lives in chart skills and chart evidence router.
What Has Been Tested
Choose the question you care about. Not checked means this catalog has no version-specific result; it is not a pass.
How much is proven, and what more testing would add: Fully proven: Render parity, ConfigHub proof, Local live, GitOps/OCI live, Live Helm-vs-ConfigHub, Two-cluster kind.
| Base | Readiness | Render | ConfigHub | Local live | GitOps/OCI | Live parity | Two-cluster kind |
| default | start-here | pass | pass | pass | pass | pass | pass |
| sync-secret-rotation | start-here | pass | pass | pass | pass | pass | pass |
What You Must Provide
exact rendered objects with render parity and receipts; optional chart inputs handled by reviewed base configurations
| Field | Value |
| Known quirks | optional chart inputs |
| You must provide | nothing beyond a cluster and namespace |
| What ConfigHub records | exact rendered objects with render parity and receipts; optional chart inputs handled by reviewed base configurations |
| Optional chart inputs | Chart specific tpl/raw/config slots |
| How optional inputs are handled | Keep empty in supported bases; Or make a reviewed installer base when populated |
Hooks, CRDs, And Setup Work
Some Helm charts need work before, during, or after apply: CRDs, hooks, setup jobs, webhook certificates, migrations, generated Secrets, or checks. For each chart, the catalog should make the choice clear: include it in the base variant, split it into a separate base variant, run a setup step, use a GitOps action where evidence exists, require an existing target resource, or block it when there is no safe default.
If no plan is shown, that does not prove the upstream chart has no hooks. It means the public catalog has no chart-specific action to show yet; check the matrix or send a problem chart if hook behavior should be modeled. Direct apply, Argo CD, Flux, and upgrade implementations are tracked separately. One passing implementation does not prove the others.
Before Production
A green render or local live result is not a production support claim. Production support is target-scoped and uses the support-decision artifact when present.
| Field | Value |
| Production review status | Ready for a target-specific production review |
| Target-scoped support decision | supported |
| Supported base | default |
| Target scope | vanilla kind (historical receipt); namespace=kube-system; delivery=confighub-oci; controller=argo |
| Accepted limits | CRD lifecycle and upgrade policy; cluster RBAC review; optional input sources and scan policy; warning review and apply-gate policy |
| Open policy decisions | None recorded for this policy checklist |
| Next action | Keep the target-scoped evidence fresh before using this supported scope as a production-support example; create separate provider, sync-secret-rotation, IAM, node-policy, resource-hardened, or digest-pinned bases for real customer secret-store workloads. |
Source And Evidence Files
Technical notes and disclaimers
- The plain-objects script stops before it applies anything. One step of the plan is yours to do first, and it prints it. When you run it again it applies the objects and ends. It does not wait for the workloads to start. Neither script runs the steps the plan names for an upgrade or a delete.