What it is. prometheus-community/kube-prometheus-stack 84.4.0, as 126 Kubernetes objects in its default preset. The Catalog holds 3 presets of this version.
Install it. curl -fsSL -o try-objects.sh https://confighub.github.io/helm-expt/site/sh/prometheus-community-kube-prometheus-stack-84-4-0/default/try-objects.sh && bash try-objects.sh
Needs first. The package runs the chart's certificate creation Job before applying the admission webhooks. The direct runner applies CRDs, creates the certificate, applies the workload, and patches the webhooks in that order. The plan below lists 1 more.
How it works. How the model works, and Helm in the Catalog.
What this page gives you
This is a human-readable detail page for one retained package version. It keeps the package, base names, exact OCI identity, and publication receipt reachable without pretending this retained-only version has the richer readiness evidence attached to the bold version in the component row.
Where its settings and observations live
Each packaged configuration records Helm-derived files and installer metadata. Later ConfigHub changes belong in governed variants. Target prerequisites and live observations remain separate facts; this publication receipt does not turn them into passes.
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? | The other versions of this chart in the Catalog carry a packaged admission-webhook setup route with the hook image pinned by digest, and this version's hook image digest was not looked up, so should 84.4.0 get that route or keep its hooks as recorded lifecycle actions? | Destination access: no Selected configuration deployed: no | Checked: review the limit evidence recorded |
| Can this destination accept it? | No destination answer is available yet because target facts or lifecycle handling are incomplete. | Destination access: yes Selected configuration deployed: no | Answer pending evidence pending |
| 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.
Try This Chart
Inspect the exact package first, then choose one of the packaged configurations. The version remains readable in the reference, and the manifest digest prevents the registry from returning different package bytes. The setup command renders files locally; it does not apply them to Kubernetes.
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 inspect oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0@sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8 --json
cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0@sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8 --base default --work-dir ./prometheus-community-kube-prometheus-stack-84-4-0-default --non-interactive
Run shared local configuration checks after the package has written its Kubernetes YAML:
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.
Version tag: oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0
Exact package: oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0@sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8
The manifest digest comes from the committed publication receipt. cub installer refuses the pull if that exact manifest is not available.
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/prometheus-community/kube-prometheus-stack/84.4.0 --annotations confighub.com/package-sha256=1b53563ba1e4eda376ff8b49093d1fe49855d6f94c76b1c346636ad1abdaf2f4 europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0@sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8
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
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 3 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 84.4.0
This entry is flagged for review. The other versions of this chart in the Catalog carry a packaged admission-webhook setup route with the hook image pinned by digest, and this version's hook image digest was not looked up, so should 84.4.0 get that route or keep its hooks as recorded lifecycle actions?
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.
chartisprometheus-community/kube-prometheus-stackversionis84.4.0baseisdefaultvaluesProfileisrecipes/prometheus-community/kube-prometheus-stack/84.4.0/effective-values.yamlnamespaceismonitoringreleaseNameiskube-prometheus-stackcapabilityProfileis{"apiVersions":[],"kubeVersion":"1.30.0"}
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.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator CRD included in this base; it must be established before Kubernetes accepts the rendered Prometheus, Alertmanager, PrometheusRule and ServiceMonitor objects Declared. Not checked on any destination.
- Prometheus Operator admission webhook TLS material. The chart's pre-install hook Job creates it; the operator Deployment mounts it and cannot start without it. package://prerequisites/kube-prometheus-stack-lifecycle/default/pre-install-pre-upgrade.yaml Declared. Not checked on any destination.
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.
- Before you deliver. The package applies the locked CRDs before the chart objects that use them. Who: operator. Recorded as routed.
- After you deliver. The run removes both completed Jobs and their temporary RBAC objects. Who: delivery workflow. Recorded as routed.
- After you deliver. The package runs the chart's webhook patch Job after the webhook objects exist. Who: delivery workflow. Recorded as routed.
- Before you deliver. The package runs the chart's certificate creation Job before applying the admission webhooks. Who: delivery workflow. Recorded as routed.
- Around an upgrade. The direct package route upgraded the default preset from 85.3.3 to 86.1.0, established the updated CRDs, retained the admission Secret, reran the webhook step, checked six workloads, and and more. The listing gives the rest. Who: delivery workflow. Recorded as routed.
- Before you deliver. The direct runner applies CRDs, creates the certificate, applies the workload, and patches the webhooks in that order. Who: delivery workflow. Recorded as routed.
- Before you deliver. The certificate Job creates the required admission Secret with ca, cert, and key. Who: operator. Recorded as routed.
- After you deliver. The run checks three CA bundles, the operator endpoint, a server dry-run, and six workloads. Who: delivery workflow. Recorded as routed.
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.
1. Get the exact objects Run for this entry
The Catalog rendered this entry and retains its 126 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.
# fetch the retained objects for this entry
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-84-4-0-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/84.4.0/revisions/default/r001/rendered/release-objects.yaml
# check the bytes against the listing
$ shasum -a 256 prometheus-community-kube-prometheus-stack-84-4-0-default.yaml
c5dc2d69b5f9d0163166cd07485ee067e96702856fbdb5e0af3de88df0a348db prometheus-community-kube-prometheus-stack-84-4-0-default.yaml
# render this base from the signed package; step 3 uploads this directory
$ cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0@sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8 --base default --work-dir ./prometheus-community-kube-prometheus-stack-84-4-0-default --non-interactive --namespace monitoring
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 2 other bases in the Catalog, aicr-eks-training-v0-20-0 and aicr-eks-training-v1-0-0. The Catalog holds 5 other versions, 85.3.3, 86.1.0, 87.15.1, 87.19.2 and 88.6.3.
# fetch the aicr-eks-training-v0-20-0 base of the same version
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/84.4.0/revisions/aicr-eks-training-v0-20-0/r001/rendered/release-objects.yaml
# list what differs between the two bases
$ cub config diff prometheus-community-kube-prometheus-stack-84-4-0-default.yaml prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0.yaml --summary
# fetch the default base at version 85.3.3
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-85-3-3-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/85.3.3/revisions/default/r001/rendered/release-objects.yaml
# list what changes from 84.4.0 to 85.3.3
$ cub config diff prometheus-community-kube-prometheus-stack-84-4-0-default.yaml prometheus-community-kube-prometheus-stack-85-3-3-default.yaml --summary
3. Upload it as a variant Not run for this entry
The Catalog has not uploaded this entry. The commands use its signed installer package. Read the log of the live walk on 2026-10-08.
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.
# sign in; steps 3 to 5 write to your ConfigHub organization
$ cub auth login
# upload step 1's directory as a Space of Units, under names you choose
$ cub installer upload --work-dir ./prometheus-community-kube-prometheus-stack-84-4-0-default --space <your-space> --component <your-component>
# list the Units the upload created
$ 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 listing records one input that the destination must supply, so read it before you deploy. The base carries 10 CRDs it needs, so the destination does not supply them. The coverage lanes record 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.
# clone the base onto a Target as a dev variant
$ cub variant create dev <your-space> --target workshop/target --space-pattern "template:<your-space>-dev"
# publish the Release that the cluster's Argo CD pulls
$ cub release publish <your-space>-dev
# delete the installer record, which Argo CD cannot read
$ cub unit delete --space <your-space>-dev installer-record
# publish again without it
$ cub release publish <your-space>-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. Read the log of the live walk on 2026-10-08.
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.
# preview what the dev variant would take from the base
$ cub variant promote <your-space>-dev --dry-run -o mutations
# promote once you have read the preview
$ cub variant promote <your-space>-dev --change-desc "Pull the reviewed base forward"
# delete the installer record that the promotion adds back
$ cub unit delete --space <your-space>-dev installer-record
# publish the Release that carries the change
$ cub release publish <your-space>-dev
Helm chart, base aicr-eks-training-v0-20-0, version 84.4.0
This entry is flagged for review. The other versions of this chart in the Catalog carry a packaged admission-webhook setup route with the hook image pinned by digest, and this version's hook image digest was not looked up, so should 84.4.0 get that route or keep its hooks as recorded lifecycle actions? The AICR values set the Grafana admin password to the literal value admin, and this base carries it in a Secret byte for byte: should a Catalog base ship a well-known credential?
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.
chartisprometheus-community/kube-prometheus-stackversionis84.4.0baseisaicr-eks-training-v0-20-0valuesProfileisrecipes/prometheus-community/kube-prometheus-stack/84.4.0/effective-values-aicr-eks-training-v0-20-0.yamlnamespaceismonitoringreleaseNameiskube-prometheus-stackcapabilityProfileis{"apiVersions":[],"kubeVersion":"1.30.0"}
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.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator admission webhook TLS material. The chart's pre-install hook Job creates it; the operator Deployment mounts it and cannot start without it. package://prerequisites/kube-prometheus-stack-lifecycle/aicr-eks-training-v0-20-0/pre-install-pre-upgrade.yaml Declared. Not checked on any destination.
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.
- After you deliver. Your cluster - at uninstall, automatically Who: Kubernetes. Seen in a recorded run.
- After you deliver. Your delivery - a post-apply check (receipted) Who: delivery workflow. Seen in a recorded run.
- Before you deliver. kubectl apply -f <preflight-job>; kubectl wait --for=condition=complete job/<name> Who: delivery workflow. Seen in a recorded run.
- Around an upgrade. kubectl apply -f <action-job>; kubectl wait --for=condition=complete job/<name> Who: delivery workflow. Seen in a recorded run.
- Before you deliver. Your applier - must apply CRDs before dependent objects Who: whatever applies the objects. Seen in a recorded run.
- Before you deliver. # create the required target facts (Secret/StorageClass/etc.) before apply Who: operator. Seen in a recorded run.
- After you deliver. kubectl get validatingwebhookconfigurations,mutatingwebhookconfigurations Who: delivery workflow. Seen in a recorded run.
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.
1. Get the exact objects Run for this entry
The Catalog rendered this entry and retains its 116 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.
# fetch the retained objects for this entry
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/84.4.0/revisions/aicr-eks-training-v0-20-0/r001/rendered/release-objects.yaml
# check the bytes against the listing
$ shasum -a 256 prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0.yaml
6852e478443ab96b48fa472a206e98265592ce85f8997e82f9d58b94406a7dfc prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0.yaml
# render this base from the signed package; step 3 uploads this directory
$ cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0@sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8 --base aicr-eks-training-v0-20-0 --work-dir ./prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0 --non-interactive --namespace monitoring
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 2 other bases in the Catalog, aicr-eks-training-v1-0-0 and default. The Catalog holds 5 other versions, 85.3.3, 86.1.0, 87.15.1, 87.19.2 and 88.6.3.
# fetch the default base of the same version
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-84-4-0-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/84.4.0/revisions/default/r001/rendered/release-objects.yaml
# list what differs between the two bases
$ cub config diff prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0.yaml prometheus-community-kube-prometheus-stack-84-4-0-default.yaml --summary
# fetch the default base at version 85.3.3
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-85-3-3-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/85.3.3/revisions/default/r001/rendered/release-objects.yaml
# list what changes from 84.4.0 to 85.3.3
$ cub config diff prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0.yaml prometheus-community-kube-prometheus-stack-85-3-3-default.yaml --summary
3. Upload it as a variant Not run for this entry
The Catalog has not uploaded this entry. The commands use its signed installer package. Read the log of the live walk on 2026-10-08.
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.
# sign in; steps 3 to 5 write to your ConfigHub organization
$ cub auth login
# upload step 1's directory as a Space of Units, under names you choose
$ cub installer upload --work-dir ./prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0 --space <your-space> --component <your-component>
# list the Units the upload created
$ 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 listing records 11 inputs that the destination must supply, so read them before you deploy. 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.
# clone the base onto a Target as a dev variant
$ cub variant create dev <your-space> --target workshop/target --space-pattern "template:<your-space>-dev"
# publish the Release that the cluster's Argo CD pulls
$ cub release publish <your-space>-dev
# delete the installer record, which Argo CD cannot read
$ cub unit delete --space <your-space>-dev installer-record
# publish again without it
$ cub release publish <your-space>-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. Read the log of the live walk on 2026-10-08.
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.
# preview what the dev variant would take from the base
$ cub variant promote <your-space>-dev --dry-run -o mutations
# promote once you have read the preview
$ cub variant promote <your-space>-dev --change-desc "Pull the reviewed base forward"
# delete the installer record that the promotion adds back
$ cub unit delete --space <your-space>-dev installer-record
# publish the Release that carries the change
$ cub release publish <your-space>-dev
Helm chart, base aicr-eks-training-v1-0-0, version 84.4.0
This entry is flagged for review. The other versions of this chart in the Catalog carry a packaged admission-webhook setup route with the hook image pinned by digest, and this version's hook image digest was not looked up, so should 84.4.0 get that route or keep its hooks as recorded lifecycle actions? The AICR values set the Grafana admin password to the literal value admin, and this base carries it in a Secret byte for byte: should a Catalog base ship a well-known credential?
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.
chartisprometheus-community/kube-prometheus-stackversionis84.4.0baseisaicr-eks-training-v1-0-0valuesProfileisrecipes/prometheus-community/kube-prometheus-stack/84.4.0/effective-values-aicr-eks-training-v1-0-0.yamlnamespaceismonitoringreleaseNameiskube-prometheus-stackcapabilityProfileis{"apiVersions":[],"kubeVersion":"1.30.0"}
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.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator CRD this base does not hold, because the AICR values set crds.enabled false. The listing gives the rest. Declared. Not checked on any destination.
- Prometheus Operator admission webhook TLS material. The chart's pre-install hook Job creates it; the operator Deployment mounts it and cannot start without it. package://prerequisites/kube-prometheus-stack-lifecycle/aicr-eks-training-v1-0-0/pre-install-pre-upgrade.yaml Declared. Not checked on any destination.
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.
- After you deliver. Your cluster - at uninstall, automatically Who: Kubernetes. Seen in a recorded run.
- After you deliver. Your delivery - a post-apply check (receipted) Who: delivery workflow. Seen in a recorded run.
- Before you deliver. kubectl apply -f <preflight-job>; kubectl wait --for=condition=complete job/<name> Who: delivery workflow. Seen in a recorded run.
- Around an upgrade. kubectl apply -f <action-job>; kubectl wait --for=condition=complete job/<name> Who: delivery workflow. Seen in a recorded run.
- Before you deliver. Your applier - must apply CRDs before dependent objects Who: whatever applies the objects. Seen in a recorded run.
- Before you deliver. # create the required target facts (Secret/StorageClass/etc.) before apply Who: operator. Seen in a recorded run.
- After you deliver. kubectl get validatingwebhookconfigurations,mutatingwebhookconfigurations Who: delivery workflow. Seen in a recorded run.
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.
1. Get the exact objects Run for this entry
The Catalog rendered this entry and retains its 116 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.
# fetch the retained objects for this entry
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v1-0-0.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/84.4.0/revisions/aicr-eks-training-v1-0-0/r001/rendered/release-objects.yaml
# check the bytes against the listing
$ shasum -a 256 prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v1-0-0.yaml
55c31cf72066a59e0c7f1e67c453e9487160ab7683b7320ce4ea280b00cd194a prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v1-0-0.yaml
# render this base from the signed package; step 3 uploads this directory
$ cub installer setup --pull oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0@sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8 --base aicr-eks-training-v1-0-0 --work-dir ./prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v1-0-0 --non-interactive --namespace monitoring
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 2 other bases in the Catalog, aicr-eks-training-v0-20-0 and default. The Catalog holds 5 other versions, 85.3.3, 86.1.0, 87.15.1, 87.19.2 and 88.6.3.
# fetch the default base of the same version
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-84-4-0-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/84.4.0/revisions/default/r001/rendered/release-objects.yaml
# list what differs between the two bases
$ cub config diff prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v1-0-0.yaml prometheus-community-kube-prometheus-stack-84-4-0-default.yaml --summary
# fetch the default base at version 85.3.3
$ curl -fsSL -o prometheus-community-kube-prometheus-stack-85-3-3-default.yaml https://raw.githubusercontent.com/confighub/helm-expt/main/recipes/prometheus-community/kube-prometheus-stack/85.3.3/revisions/default/r001/rendered/release-objects.yaml
# list what changes from 84.4.0 to 85.3.3
$ cub config diff prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v1-0-0.yaml prometheus-community-kube-prometheus-stack-85-3-3-default.yaml --summary
3. Upload it as a variant Not run for this entry
The Catalog has not uploaded this entry. The commands use its signed installer package. Read the log of the live walk on 2026-10-08.
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.
# sign in; steps 3 to 5 write to your ConfigHub organization
$ cub auth login
# upload step 1's directory as a Space of Units, under names you choose
$ cub installer upload --work-dir ./prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v1-0-0 --space <your-space> --component <your-component>
# list the Units the upload created
$ 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 listing records 11 inputs that the destination must supply, so read them before you deploy. 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.
# clone the base onto a Target as a dev variant
$ cub variant create dev <your-space> --target workshop/target --space-pattern "template:<your-space>-dev"
# publish the Release that the cluster's Argo CD pulls
$ cub release publish <your-space>-dev
# delete the installer record, which Argo CD cannot read
$ cub unit delete --space <your-space>-dev installer-record
# publish again without it
$ cub release publish <your-space>-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. Read the log of the live walk on 2026-10-08.
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.
# preview what the dev variant would take from the base
$ cub variant promote <your-space>-dev --dry-run -o mutations
# promote once you have read the preview
$ cub variant promote <your-space>-dev --change-desc "Pull the reviewed base forward"
# delete the installer record that the promotion adds back
$ cub unit delete --space <your-space>-dev installer-record
# publish the Release that carries the change
$ cub release publish <your-space>-dev
Available Configurations
default- package defaultaicr-eks-training-v0-20-0aicr-eks-training-v1-0-0
The section below says what these configurations expect you to provide.
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 |
|---|---|---|---|---|
aicr-eks-training-v0-20-0 | 23 advisory findings 5 critical, 14 warning, 4 info ClusterRole grants secrets read permissions Thanos sidecar not uploading blocks Deployment does not disable automountServiceAccountToken | 116 objectssha256:d8fec67a455a33b3eb6af50823cdf61034168f21a8564cabc331f5941528df63 | 2026-10-08 | Full cub check resultExact YAML Separate Catalog review |
aicr-eks-training-v1-0-0 | 23 advisory findings 5 critical, 14 warning, 4 info ClusterRole grants secrets read permissions Thanos sidecar not uploading blocks Deployment does not disable automountServiceAccountToken | 116 objectssha256:242693640e564d83d905060e03e416f5e9d308169746fe3470a3f164e79ae451 | 2026-10-08 | Full cub check resultExact YAML Separate Catalog review |
default | 25 advisory findings 5 critical, 16 warning, 4 info ClusterRole grants secrets read permissions Thanos sidecar not uploading blocks Deployment containers omit resource limits | 126 objectssha256:21a35769979c6ae94694d6c021906502d2cd5a26c5bbfb0c00e258b8d9957dd5 | 2026-10-08 | Full cub check resultExact 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.
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 283 files.
| Construct | Found | Why it matters when a chart ships as plain YAML |
|---|---|---|
| Helm hooks | 16 | Hook Jobs never fire, or fire under a different hook dialect. |
| Cluster lookups | 4 | The chart reads the cluster while rendering, so a render without one is valid but wrong. |
| Webhook configuration | 2 | An empty certificate bundle makes admission fail closed. |
| Capability branching | 86 | The chart chooses apiVersions from the cluster it renders against. |
| Generated credentials | 2 | Every render mints new values, and a shared artifact would freeze one draw. |
| Custom resource definitions | 18 | Per-file delivery can race the definitions the resources depend on. |
| Condition-gated subcharts | 5 | What renders depends on which conditions the values switch on. |
A flattening-safety verdict has decided this version: aicr-eks-training-v0-20-0:flatten-with-routes; aicr-eks-training-v1-0-0:flatten-with-routes; default: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.
Images This Chart Pulls
Every reference below is read from the committed package bases, so what you see is what the packaged manifests name.
| Packaged base | Image references |
|---|---|
| default | description: image defines Thanos container image URL.description: |-docker.io/grafana/grafana:13.0.1quay.io/kiwigrid/k8s-sidecar:2.7.1quay.io/prometheus-operator/prometheus-operator:v0.90.1quay.io/prometheus/alertmanager:v0.32.0quay.io/prometheus/node-exporter:v1.11.1quay.io/prometheus/prometheus:v3.11.3registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.18.0 |
| aicr-eks-training-v0-20-0 | docker.io/grafana/grafana:13.0.1quay.io/kiwigrid/k8s-sidecar:2.7.1quay.io/prometheus-operator/prometheus-operator:v0.90.1quay.io/prometheus/alertmanager:v0.32.0quay.io/prometheus/node-exporter:v1.11.1quay.io/prometheus/prometheus:v3.11.3registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.18.0 |
| aicr-eks-training-v1-0-0 | docker.io/grafana/grafana:13.0.1quay.io/kiwigrid/k8s-sidecar:2.7.1quay.io/prometheus-operator/prometheus-operator:v0.90.1quay.io/prometheus/alertmanager:v0.32.0quay.io/prometheus/node-exporter:v1.11.1quay.io/prometheus/prometheus:v3.11.3registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.18.0 |
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.
| Question | Status | Evidence |
|---|---|---|
| Can I pull these exact package bytes again? | Checked | Package receipt |
| What does this chart contain? | Not checked | No linked result |
| Does the recorded render match Helm? | Not checked | No linked result |
| Did the supplied values change the render? | Not checked | No linked result |
| Were hooks, CRDs, or setup steps checked? | Not checked | No linked result |
| Did this version run on a local Kubernetes cluster? | Not checked | No linked result |
| Did an OCI delivery through GitOps run? | Not checked | No linked result |
| Did Helm and ConfigHub reach the same live result? | Not checked | No linked result |
| Was the result compared on separate clusters? | Not checked | No linked result |
| Was a ConfigHub promotion tested? | Not checked | No linked result |
| Did this version string point at changed upstream bytes? | Not checked | No linked result |
The committed publication receipt binds this package path and OCI ref to layer sha256:1b53563ba1e4eda376ff8b49093d1fe49855d6f94c76b1c346636ad1abdaf2f4 and manifest sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8, and records an inspect-result digest.
You can check a pull yourself: the inspect command under Try This Chart prints the package's manifest and layer digests, and they must equal the receipted values above. If they differ, do not use the pulled package.
No version-specific runtime result is claimed here. The component row's readiness, caveats, and live evidence describe only its bold version. For that separate evidence, open the 85.3.3 evidence page.
What You Must Provide
The installer metadata records 33 external-requirement references across these configurations. Inspect the package before choosing a base.
Choose a namespace and target deliberately, supply any listed Secret, CRD, storage, API, or cloud prerequisite, and inspect the rendered YAML before delivery.
Before Production
Run target-specific policy, lifecycle, upgrade, and workload checks. A successful package publication and inspect result does not establish production support or live convergence.
Source And Evidence Files
| Record | Open |
|---|---|
| Retained package source | packages/prometheus-community/kube-prometheus-stack/84.4.0 |
| Machine-readable listing (default) | site/listings/prometheus-community-kube-prometheus-stack-84-4-0-default.json |
| Machine-readable listing (aicr-eks-training-v0-20-0) | site/listings/prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v0-20-0.json |
| Machine-readable listing (aicr-eks-training-v1-0-0) | site/listings/prometheus-community-kube-prometheus-stack-84-4-0-aicr-eks-training-v1-0-0.json |
| Installer metadata | packages/prometheus-community/kube-prometheus-stack/84.4.0/installer.yaml |
| Publication receipt | runs/installer-oci/prometheus-community-kube-prometheus-stack/84.4.0/installer-package-publication-receipt.yaml |
| Publisher signature | runs/installer-oci-signatures/prometheus-community-kube-prometheus-stack/84.4.0/signature-receipt.yaml |
| Sigstore bundle | runs/installer-oci-signatures/prometheus-community-kube-prometheus-stack/84.4.0/signature.sigstore.json |
| Version tag | oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0 |
| Exact OCI ref | oci://europe-west1-docker.pkg.dev/nth-fort-499605-q5/helm-expt/prometheus-community-kube-prometheus-stack:84.4.0@sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8 |
| Layer digest | sha256:1b53563ba1e4eda376ff8b49093d1fe49855d6f94c76b1c346636ad1abdaf2f4 |
| Manifest digest | sha256:e466955464cf236106ed17b445bc7e918386b508ab3a5bd9bfa578e5546468c8 |
Technical notes and disclaimers
- default. The plain-objects script stops before it applies anything. 3 steps of the plan are yours to do first, and it prints them. When you run it again it applies the objects and ends. It does not wait for the workloads to start. The script does not run the steps the plan names for an upgrade or a delete.
- aicr-eks-training-v0-20-0, aicr-eks-training-v1-0-0. The plain-objects script stops before it applies anything. 3 steps of the plan are yours to do first, and it prints them. When you run it again it applies the objects and ends. It does not wait for the workloads to start. The file uses 4 kinds that it does not define. The script stops when the cluster does not serve them. The script does not run the steps the plan names for an upgrade or a delete.