Skip to content
Browse Docs

Deep Dives

AI: Claude and Codex patterns

ConfigHub: Deploy and manage

Docs
Configs
Stacks
Apps
Plugins
Guides

Timoni Redis 8.10.1

A repository document, rendered for the site. You can also view this as a markdown file.

Use this entry in ConfigHub in five steps, from fetching its exact objects to promoting a change.

Generated at: 2026-10-06T13:45:42.258Z UTC · source: committed helm-expt evidence for this rendered repository document.

What it is. Timoni module redis 8.10.1, as 7 Kubernetes objects.

Install it. curl -fsSL -o try-objects.sh https://confighub.github.io/helm-expt/site/sh/entries/timoni-redis-8-10-1-default/try-objects.sh && bash try-objects.sh

OCI bundle. oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/timoni-redis-config@sha256:375bc7dee05f4629d3b297f05628ee52c104d7a6ced03a2c16b198c819b7ae65

Needs first. Nothing. The script applies any CRDs first.

This is the first Timoni source retained in the ConfigHub Workshop Catalog. It exists so a user can compare a typed Timoni module with the Helm Redis configurations already in the Catalog without pretending that the two sources have the same inputs or lifecycle.

What was selected

  • Module version: 8.10.1
  • Immutable module digest: sha256:7f24e8f7e49132c90789464dcf5b82eb137e378c97735eec36efbe0d1caeb872
  • Instance and namespace: redis
  • Values: the module defaults, recorded in selected-values.cue
  • Typed options and defaults: config-schema.cue

What it produced

The local, cluster-free build produced 7 Kubernetes objects: ConfigMap x1, Deployment x2, PersistentVolumeClaim x1, Service x2, ServiceAccount x1. The Redis image is pinned by digest. The default includes an 8 Gi persistent volume claim using the standard StorageClass, one read-only replica, health probes, and hardened pod and container security settings.

Read the exact YAML, object inventory, and generation receipt.

The same seven objects are also available in a public configuration OCI. An anonymous pull reproduced the exact object set. ConfigHub retains those objects in timoni-redis-8-10-1-base and links them into timoni-redis-8-10-1-dev without changing a Kubernetes field. The source and helper records remain on the base instead of being copied into every environment.

Compare local environments

The development values select one read-only replica; the production values select two. The separate local receipt binds both inputs and exact outputs to the same immutable module and Timoni client. Only Deployment redis-replica spec.replicas changes. Development reproduces the historical default YAML byte for byte. The production label is an example selection, not a support or availability guarantee. These new selections have not been published, retained in ConfigHub, admitted or deployed.

Run from the repository root with Timoni 0.33.0; these commands build YAML locally and do not apply it:

timoni -n redis build redis oci://ghcr.io/stefanprodan/modules/redis -v 8.10.1 -d sha256:7f24e8f7e49132c90789464dcf5b82eb137e378c97735eec36efbe0d1caeb872 -f examples/timoni/redis-8-10-1/environments/development.cue --mask-secrets > development.yaml
timoni -n redis build redis oci://ghcr.io/stefanprodan/modules/redis -v 8.10.1 -d sha256:7f24e8f7e49132c90789464dcf5b82eb137e378c97735eec36efbe0d1caeb872 -f examples/timoni/redis-8-10-1/environments/production.cue --mask-secrets > production.yaml

What plain YAML would miss

The source workflow applies the master objects first, waits for the master, and then applies the read-only replica. It can also run a Redis PING Job when tests are enabled. Those steps are not represented by the seven default Kubernetes objects alone. The lifecycle route intent keeps that work beside the objects, and the flattening verdict requires those routes if the objects are retained as literal configuration.

The selected destination must provide the redis namespace, Kubernetes 1.20 or newer, and a standard StorageClass. Route resolution and live execution have not been run for this entry.

Current status

This entry proves immutable source selection, local materialization, public OCI publication and anonymous pull, and exact ConfigHub retention as a base and linked development variant. It does not prove Kubernetes admission, lifecycle execution, workload health, upgrade, rollback, or GitOps delivery. The output labels say 0.0.0-devel; use the recorded source version and digest above as the source identity.

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. A live run on 2026-10-08 used these cub variant commands on other configuration, with no Target. It is not a run for this entry.

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.

  • module is oci://ghcr.io/stefanprodan/modules/redis@sha256:7f24e8f7e49132c90789464dcf5b82eb137e378c97735eec36efbe0d1caeb872
  • moduleVersion is 8.10.1
  • instance is redis
  • namespace is redis
  • values is examples/timoni/redis-8-10-1/selected-values.cue
  • schema is examples/timoni/redis-8-10-1/config-schema.cue

Yours to supply or check. The destination must have these before the objects are applied. The words in italics say what the Catalog knows about each.

  • redis Required. Not checked in a live run.
  • 1.20.0 or newer Required. Not checked in a live run.
  • standard Required. Not checked in a live run.
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. Apply the ServiceAccount, ConfigMap, master Service, persistent volume claim, and master Deployment first; wait for the master to become ready before continuing. Who: selected destination actor. Recorded as recorded-source-behavior.
  • When you deliver. Apply the read-only replica Deployment and Service after the master is ready. Who: selected destination actor. Recorded as recorded-source-behavior.
  • After you deliver. Run the generated redis-cli PING Job after apply. The default Catalog selection leaves this test disabled. Who: selected destination actor. Recorded as disabled-by-default.

Test the plain objects yourself. This script tests the retained objects themselves with kubectl, and it needs no cub and no account. Read it first and use a throwaway cluster. The Catalog has no recorded run of this script.

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 7 objects in one file.

# fetch the retained objects for this entry
$ curl -fsSL -o timoni-redis-8-10-1-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/examples/timoni/redis-8-10-1/rendered/release-objects.yaml

# check the bytes against the listing
$ shasum -a 256 timoni-redis-8-10-1-default.yaml
91059402bdbb37011f40c711297fd3d665f7ffa8eb05fe35487fde252163476b  timoni-redis-8-10-1-default.yaml

2. Compare with another version or base Not available yet

The Catalog holds no other version or base of this entry's source in the same format. A second entry for redis in this format would give this step a sibling.

3. Upload it as a variant Run for this entry

The Catalog saved this entry in ConfigHub. The commands use its published literal configuration bundle. Read the receipt.

# sign in; steps 3 to 5 write to your ConfigHub organization
$ cub auth login

# preview the upload of the published bundle; nothing is written
$ cub variant upload --dry-run --component redis --variant default --space timoni-redis-8-10-1-default oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/timoni-redis-config@sha256:375bc7dee05f4629d3b297f05628ee52c104d7a6ced03a2c16b198c819b7ae65

# upload the bundle as a base Space of Units
$ cub variant upload --component redis --variant default --space timoni-redis-8-10-1-default oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/timoni-redis-config@sha256:375bc7dee05f4629d3b297f05628ee52c104d7a6ced03a2c16b198c819b7ae65

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 listing records 3 inputs that the destination must supply, so read them before you deploy.

# clone the base onto a Target as a dev variant
$ cub variant create dev timoni-redis-8-10-1-default --target workshop/target --space-pattern "template:timoni-redis-8-10-1-default-dev"

# publish the Release that Argo CD or Flux pulls
$ cub release publish timoni-redis-8-10-1-default-dev

5. Promote a change Not run for this entry

No promotion is recorded 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.

# preview what the dev variant would take from the base
$ cub variant promote timoni-redis-8-10-1-default-dev --dry-run -o mutations

# promote once you have read the preview
$ cub variant promote timoni-redis-8-10-1-default-dev --change-desc "Pull the reviewed base forward"

Technical notes and disclaimers

  • The plain-objects script applies the objects and ends. It does not wait for the workloads to start. The plan names an order for the objects in 2 steps. The script applies them all at once and does not follow it. The script does not run the steps the plan names for an upgrade or a delete.

Generated from the committed markdown file examples/timoni/redis-8-10-1/README.md. The source file is the authoritative version.