Skip to content
Browse the site

Deep Dives

AI: Claude and Codex patterns

ConfigHub: Deploy and manage

Configs
Stacks
Apps
Plugins
Guides
Docs

Before and after

Redis, before and after

A Helm chart you can't read becomes objects you can.

Before and after

Before: the Helm chart
      dnsConfig: {{- include "common.tplvalues.render" (dict "value" .Values.replica.dnsConfig "context" $) | nindent 8 }}
      {{- end }}
      enableServiceLinks: {{ .Values.replica.enableServiceLinks }}
      terminationGracePeriodSeconds: {{ .Values.replica.terminationGracePeriodSeconds }}
      containers:
        - name: redis
          image: {{ template "redis.image" . }}
          imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
          {{- if not .Values.diagnosticMode.enabled }}
          {{- if .Values.replica.lifecycleHooks }}
          lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.replica.lifecycleHooks "context" $) | nindent 12 }}
          {{- end }}
          {{- end }}
          {{- if .Values.replica.containerSecurityContext.enabled }}
          securityContext: {{- include "common.compatibility.renderSecurityContext" (dict "secContext" .Values.replica.containerSecurityContext "context" $) | nindent 12 }}
          {{- end }}

16 lines of templates/replicas/application.yaml, around its image line. The chart has many files like this.

After: in ConfigHub
ConfigHub showing the redis-replicas StatefulSet, at its image line

The same image line in ConfigHub, as a plain value. Taken in the helm-catalog organization on 2026-10-25, showing the redis-replicas StatefulSet, at its image line.

ConfigHub holds this as 15 Units, one for each of the 14 objects the installer writes and one installer record.

In ConfigHub: one base, and a variant for each environment
ConfigHub showing the Redis base with its dev and prod variants, and the label, requests and limits prod sets on the Redis master

Prod's panel lists what prod changes from the base, here its label and the master's requests and limits. Taken in the helm-catalog organization on 2026-10-26, showing the Redis base with its dev and prod variants, and the label, requests and limits prod sets on the Redis master.

  • The template's image line becomes one plain value you can read, and so does every other field.
  • Your password stays put. The Helm chart makes a new one every time it runs, and here you create it once.
  • The image is pinned to exact bytes, so it can't change under you.

What Helm does that you never see, and what happens here instead

What Helm doesWhat happens here instead
Makes up a new Redis password every time it renders, so no two renders match.You create the Secret redis/redis-existing-secret once, and the chart reads the password from it.

ConfigHub keeps configuration as plain objects, with a history of every change. Loading puts this chart's objects in a Space, a folder in your ConfigHub organization.

Load it into your ConfigHub

Sign in with the first line, then paste the rest. It fetches the Redis package, writes its files, and saves them as a Space called redis-example in your organization. The rest makes a dev and a prod variant of it. Dev runs one read replica, and prod gives the Redis master its own requests and limits. It touches no cluster.

$ cub auth login

$ cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/bitnami-redis:25.5.3@sha256:a216ce212424e05b341ef5000f1798e6014b72b8bc3dce9f315285871037af2a --base reuse-existing-secret --work-dir ./redis-example --non-interactive --namespace redis && cub installer upload --work-dir ./redis-example --space redis-example && cub component create redis-example && cub space update --patch redis-example --component redis-example

$ cub variant create dev redis-example --change-desc "Clone the Redis base as dev"

$ cub variant create prod redis-example --change-desc "Clone the Redis base as prod"

$ cub function set --space redis-example-dev --change-desc "Label every object environment dev" set-label environment dev

$ cub function set --space redis-example-dev --unit statefulset-redis-redis-replicas --change-desc "Run one read replica in dev" set-replicas 1

$ cub function set --space redis-example-prod --change-desc "Label every object environment prod" set-label environment prod

$ cub function set --space redis-example-prod --unit statefulset-redis-redis-master --change-desc "Give the prod master its own requests and limits" set-container-resources redis all 500m 512Mi 2

You need a ConfigHub account and cub with its installer plugin and kustomize.

Try it on your laptop

No account needed. This fetches the Redis package and writes every object into a folder you can open. To check your own chart and values instead, see Is my configuration right?

$ cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/bitnami-redis:25.5.3@sha256:a216ce212424e05b341ef5000f1798e6014b72b8bc3dce9f315285871037af2a --base reuse-existing-secret --work-dir ./redis-example --non-interactive --namespace redis && ls ./redis-example/out/manifests

You need cub with its installer plugin and kustomize.

Show me the details (for experienced users)