Choose Your Path
Start with the configuration you already have. Each path first gives you exact Kubernetes objects to inspect.
What do you have?
| Starting point | What you can do first |
|---|---|
| Helm chart and values | Choose a checked public configuration, or render your own chart and values without applying them. Browse public charts · Review your own values |
| AICR recipe or bundle | Inspect the selected components and the exact Argo CD Applications before saving or promoting them. Open the AICR example |
| Existing OCI package | Pull an OCI package, inspect or test its objects, and decide whether to build a checked replacement. Inspect an OCI package · Change a literal configuration OCI |
| Kubernetes YAML | Start read-only, identify the objects that belong together, and decide what ConfigHub should manage. Start from existing YAML |
What do you want to do next?
| Job | Where to continue |
|---|---|
| Inspect and verify | Inspect exact objects and inputs · Check the evidence |
| Try a catalog package | Render one reviewed Redis configuration |
| Learn ConfigHub | Follow the official tutorial |
| Upload and save | Record reviewed objects in ConfigHub |
| Customize | Change one field in an OCI without signing in · Choose a ConfigHub base or derived variant |
| Promote | Move a reviewed change through environments |
| Deliver | Publish OCI for Argo CD, Flux, or direct apply |
| Operate | Track changes and live results across a fleet |
| Build an App | Use saved configuration for a repeated operational job |
Choose where the work runs
| Choice | What it means | Status |
|---|---|---|
| Local, no server | Run tools on your machine or in CI. Public package pulls need no sign-in. | Available |
| Hosted, no sign-in | Inspect and test public configuration through an anonymous service. | Planned |
| ConfigHub | Record, change, release, and promote the result. Continue with the official tutorial. | Available; account required |
These choices apply before configuration is saved. Public package and registry paths work now. The hosted anonymous service does not. Managed variants, promotions, Apps, gates, and fleet examples use ConfigHub Server.
Bring your own chart and values
Start with the exact chart version, values files, namespace, release name, and Kubernetes version your team intends to use. This works for values written by your team or proposed by an AI. Render them to files without applying them:
helm template <release> <chart> --version <version> --namespace <namespace> --values <values.yaml> > rendered.yaml
Read the Kubernetes objects, then compare them with the chart defaults and any matching base variants in the catalog. Check image changes, placeholder or embedded credentials, broad RBAC, privileged settings, CRDs, hooks, webhooks, storage, and required target resources before applying anything.
Worked example: a supplied NGINX values file asks for three replicas. It also embeds an API key, selects an unpinned image, and exposes a public LoadBalancer. Three container security settings are also weaker than the catalog baseline. The review keeps the three replicas, restores the security settings, and makes the Deployment use an existing Secret. Open the plain-English review, the supplied values, the reviewed values, and the five reviewed Kubernetes objects.
The proof renders the locked chart and verifies that its baseline matches the catalog. It finds the six intended problems and packages the reviewed objects as OCI. Run it with HELM_EXPT_ALLOW_BYO_HELM_VALUES_PROOF=1 npm run byo-helm-values:run. The public OCI and ConfigHub record shows which follow-on steps have run.
| Then what? | Recorded result |
|---|---|
| Deploy the reviewed result | Argo CD synced the ConfigHub release and NGINX reached 3/3 ready replicas. |
| Change development | The saved base stayed at three replicas while development changed to four. |
| Promote to staging | ConfigHub promoted the four-replica change and preserved the staging namespace. |
| Deploy staging | Argo CD synced the promoted ConfigHub release and NGINX reached 4/4 ready replicas. |
The target still has to provide the ai-provider-credentials Secret. Both live runs supplied a fake value separately and did not record it. This exact example has not run through Flux, rollback, a chart upgrade, or a fleet rollout. It also does not claim that one check can judge every private chart or arbitrary values file.
Start with an AICR platform package
AICR selected 15 versioned components for an EKS H100 training platform and generated an Argo CD source package. We published that package and a second OCI containing the 17 exact Argo CD Applications. Both are public and passed anonymous pull checks at their recorded digests.
ConfigHub imported the 17 Applications as one unchanged base. Development changes only the kube-prometheus-stack Application so Grafana reads its administrator credentials from a Secret owned by the target. A dry run named that Application and changed nothing. Staging then received the same reviewed configuration, while the other 16 Applications stayed unchanged.
| Open | What it answers |
|---|---|
| AICR guide | How the recipe became two public OCI artifacts and three ConfigHub Spaces. |
| Public OCI receipt | Which references and digests passed anonymous pulls. |
| Promotion receipt | Which Application changed, what the dry runs checked, and what reached staging. |
| Live Space guides | Base · development · staging. |
All three Spaces keep the catalog checks and required approval. The target must provide the Grafana Secret. This example has not run the Applications through Argo CD or proved an EKS GPU workload.
Start with an existing OCI package
Inspect the OCI first so you know whether it contains a source chart, a cub installer package, or exact Kubernetes objects. A source package must be rendered before it can become a deployable configuration. A literal configuration can be changed directly.
npm run oci:transform -- oci://REGISTRY/REPOSITORY@sha256:DIGEST --object Deployment/example --namespace example --field spec.replicas --value 4 --output oci-layout:./changed-example:reviewed
The command changes only the field you name. It records the input digest, the old and new values, and every check result inside the new OCI. It then pulls the new image back and compares the files. Existing companion records are kept if you change the output again.
The public NGINX proof pulls five objects without credentials and changes only the replica count. It names the required external Secret and verifies the output digest and object set. The command first writes a local OCI. The reviewed result was then published deliberately as oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/nginx-replicas-4@sha256:aa58e2a9d120d09f029fdef80596225f8c44d0aa629b18766fe8b6694659f518.
The publication and import record proves an anonymous pull of that digest and checks its three companion records. It also shows that ConfigHub stored the same five Kubernetes objects without rerendering Helm.
Start with plain Kubernetes YAML
The plain YAML fixture contains one Namespace, ConfigMap, Deployment, and Service. There is no chart and no render step.
New to cub? Install the cub CLI first. You can pull and render public catalog packages without an account. Commands that save or change ConfigHub data require you to sign in.
cub variant upload --component plain-yaml-acme-web --variant base --space plain-yaml-acme-web-base --granularity per-resource examples/plain-yaml/acme-web
The focused receipt reads the four ConfigHub Units back and compares them with the four files. The object-set hashes match. Open the plain YAML and OCI summary or the README used inside the demo Space.
This receipt stops after import. It does not claim a Kubernetes deployment or replace the official ConfigHub tutorial for variants, releases, and promotion.
Can source-to-OCI be automated?
Yes, for catalog packages and other recorded paths. The public CI example pulls a pinned installer package and renders one base. It tests the result and builds a literal configuration OCI. It then pulls the OCI back and verifies its objects against the reviewed files. The run needs no ConfigHub credentials.
The NGINX example follows the same pattern for supplied Helm values: render, review, build OCI, pull it back, and compare the exact object set. Open its OCI and ConfigHub record.
The reviewed OCI change is also kept as a permanent public package rather than only a temporary proof artifact. Open its publication and ConfigHub import record.
The AICR example publishes two artifacts because they have different jobs: Argo CD reads the generated source chart; ConfigHub imports the literal 17-Application configuration. Open the public OCI receipt.
Read the CI source-to-OCI proof, the anonymous OCI-to-OCI change proof, and the local OCI-to-Flux proof. Each receipt records the input and output digests and the steps that ran.
The same building blocks work for a private chart. We do not yet provide one public service that performs the complete analysis and publication path. Target-specific Secrets, cloud accounts, storage, and lifecycle work still need explicit inputs and decisions.
Most choices are made and checked before you install
A reviewed package fixes most settings at build time. What remains should be small, typed, and recorded. Fewer variables means fewer ways to be wrong and less to test at deployment time. The Helm catalog is moving toward that shape. The AICR example records its remaining inputs, publishes both OCI artifacts for anonymous pull, imports the literal configuration into ConfigHub, and promotes one reviewed change. Controller delivery and a live GPU-cluster result remain open.
You can read the proof before you ship
Each catalog entry links to the evidence that exists for it: render checks, object inventories, scans, local installs, delivery receipts, and live observations. Not every entry passes every lane, so the chart page reports pass, watch, blocked, or not run separately. Bad configuration can also be caught as data before apply, using schema, placeholder, diff, and target checks.
Hooks, CRDs, and setup work are listed
Hooks, CRDs, ordering, and generated Secrets do not disappear. The catalog records each chart-specific decision and who must perform the work. It also records the result for each delivery path. The public Kube Prometheus Stack package includes its lifecycle files. Receipts cover anonymous pull, direct fresh install, and the no-CRDs upgrade from 85.3.3 to 86.1.0 through Argo CD and Flux. ConfigHub does not yet select that route automatically, and a missing receipt remains visible.
You can reverse a change, not only keep it
ConfigHub keeps every revision as data, so you can restore a prior state without rebuilding it by hand. Each base variant records the exact objects it produced, so the state you return to is known and reproducible. Changing configuration is safe when going back is this cheap.
You do not need to learn cub installer first
cub installer is how you pull a package and write its files locally. It is one open source tool alongside Helm and OCI, and you can read everything above without it. When you want to run a package, it is there. When you only want to know whether a package is safe, the evidence stands on its own.
The checks follow the configuration
After Helm, AICR, Sveltos, or existing YAML becomes ConfigHub data, one apply-policy profile can protect it. Schema, placeholder, and lifecycle-route checks block incomplete configuration. Image digest and workload probe checks warn. Production releases and system configuration keep those checks and add one approval.