About this scenario
Flux should install the api chart into the shop namespace from the k8wiz HelmRepository. The HelmRelease has been False since it was created and no Pod has ever started.
There is more than one fault, and each only shows once the one before it is fixed. Work down the chain: the chart source, the values Flux composes, then the Helm install itself.
The chart needs a Secret holding the database URL. The platform team created api-db in shop for that.
Objectives
- Read why the HelmRelease isn't Ready
- The HelmChart resolves to a chart version that exists
- Flux composes the values from the api-values ConfigMap
- The HelmRelease is Ready and api runs 2 replicas
What you'll practice
- A HelmRelease depends on three objects in a row: the HelmRepository, the HelmChart that helm-controller creates from
spec.chart.spec, and the release itself. The Ready message names the first one that failed. spec.chart.spec.version is a semver range. A range that matches nothing fails at the HelmChart, before any values are read.valuesFrom merges ConfigMaps and Secrets in order, with spec.values on top. It reads the key values.yaml unless valuesKey names another, and a missing key is an error unless the reference is optional.spec.timeout is how long Helm waits for the release's workloads. A failed install is uninstalled by default, so Pods that never start come and go until the cause is fixed.- The
flux command line works in flux-system unless you pass -n. flux reconcile helmrelease NAME -n NAMESPACE retries at once; without it Flux waits for the next interval or retry.
How the playground works
The cluster runs entirely in your browser: a simulated API server, scheduler, kubelets and controllers, with virtual nodes in three zones. kubectl output follows the real formats, errors use the real messages, and the add-ons (CSI storage, Traefik, Envoy Gateway, cert-manager, Helm, Flux, Argo CD, Kyverno, Cilium, Istio) behave like their real counterparts for the common paths. It's a simulation, so some behavior is simplified. Your progress is saved in this browser.