Skip to main content

Override Chart Values

Everything Racora deploys is set by chart values: the network identity, the registry, placement, image tags, the settings of every component. The installer sets the ones it owns; the rest you override. On the k3s platform your overrides live in one HelmChartConfig; on a cluster you run they live in your values file, passed on every run (Install onto an Existing Kubernetes Cluster). Every value, with its default, is in the chart values reference.

One HelmChartConfig​

On the k3s platform every value you override goes into one object: the HelmChartConfig named racora in kube-system, whose valuesContent k3s's helm-controller layers over the release's values. There is exactly one. Applying a second manifest with that name replaces the first one's valuesContent, so keep everything you override in one file and apply that file: the network identity (Configure the 5G Core), the registry (Use Your Own Registry or Install Offline), a component you updated (Update a Component). Apply it while no helm-install job pod is running (kubectl -n kube-system get pods -l helmcharts.helm.cattle.io/chart=racora): helm-controller deletes a running job on every change, and an upgrade killed mid-apply records a failed revision that the next job has to retry (If an Upgrade Fails).

Always keep failurePolicy: retry under spec. helm-controller takes the failure policy of its job from the HelmChartConfig when one exists, over the HelmChart's, and the HelmChartConfig CRD fills an omitted field with reinstall, the policy that uninstalls and reinstalls the whole release when an upgrade fails. The installer sets an existing object to retry on every in-place run and says so, but an apply of a manifest without the field brings reinstall back until the next run.

apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: racora
namespace: kube-system
spec:
failurePolicy: retry # always: the CRD defaults an omitted field to reinstall
valuesContent: |-
global:
network: # only when yours is not the default
plmn: "90170"
tacs: [7]
slices:
- sst: 1
systemDefaultRegistry: registry.example.com/racora
components:
cuip:
tag: v0.3.1 # one component updated, until the next release pins it

When a release ships the pin you set, remove that key from valuesContent and re-apply the file. Never delete the object while it carries your identity or registry: a deleted identity falls back to the default PLMN, and every cell on another PLMN goes PlmnNotServed.

One Component's Image​

Every component image is one key, global.components.<name> (repository, tag, and an optional registry), on both platforms; the image keys that used to sit under a subchart (racora-cu.cuCp.image.tag, racora-controller.gnbImage, ...) are refused by the render with the key that replaced them. Updating a component between releases, where its image may live, what rolls and how to go back are on Update a Component.