Skip to main content

Update a Component

A Racora release pins one image per component. Between releases you can move one component to another version without a new release: its image is one chart value, global.components.<name>, and the platform rolls exactly the workloads that run it. This is the path for a new gNB release, a CU-IP fix, or a newer O1 adapter on a deployment that otherwise stays as it is.

The Components​

global.components.<name>ImageRuns asWhat rolls when you change it
gnbCNS OCUDU, the gNBCU-CP, CU-UP and every DUthe controller (it carries the DU image), the CU-CP and the CU-UP; the controller then regenerates every DU Deployment, so every cell restarts: every cell is off air for the restart
cuipCU-IP, the Intelligence Planethe cuip DeploymentCU-IP; decisions pause
open5gsthe Open5GS core providerthe open5gs Deploymentthe core; UEs re-register
controllerracora-controllerthe NRCell reconcilerthe controller; nothing on air
coreControllerracora-core-controllerthe Subscriber reconcilerthe core controller; nothing on air
rannPthe RANN-P forwardera sidecar of the CU-CP podthe CU-CP pod: every cell restarts
o1Adapterthe O1 adapter, an O-RU's M-plane clientthe mplane sidecar of ofh DU podsthe controller; it regenerates the ofh DU Deployments, so those cells restart and their O-RUs are provisioned again
ettusPlugin, nvidiaPlugin, fronthaulAgentthe node pluginsDaemonSets in racora-systemthat DaemonSet; nothing on air
clickhouse, tempo, otelCollector, grafanathe monitoring stackDeployments in monitoringthat workload; telemetry on emptyDir is lost

Each key holds repository (the image name under the registry), tag (the version) and an optional registry. Only the field you set changes; the release's pins stay for the rest. What is running, with the effective image of every component after your overrides, is the release record:

kubectl -n racora-system get configmap racora-release -o yaml

Set the Version​

k3s platform: one line in the HelmChartConfig (Override Chart Values); helm-controller rolls the workloads that run the image.

apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: racora
namespace: kube-system
spec:
failurePolicy: retry
valuesContent: |-
global:
components:
gnb:
tag: v0.4.7

Apply it while no helm-install job pod is running (kubectl -n kube-system get pods -l helmcharts.helm.cattle.io/chart=racora), keep every other override you have in the same object, and keep failurePolicy: retry in it (Override Chart Values).

A cluster you run: the same keys in your values file, then the platform's command with -f my-values.yaml, as on every run.

# my-values.yaml
global:
components:
gnb:
tag: v0.4.7

A gNB update is service-affecting: plan it as you would an upgrade (Service Impact). A component whose workloads are off air rolls without one.

Where the Image May Live​

A release mirrors every pinned image into one registry namespace, global.systemDefaultRegistry; a version a release did not pin is not there. Point the component at the registry where its project publishes it:

global:
components:
gnb:
registry: registry.gitlab.com/cognitive-network-solutions/cns-ocudu/ocudu
tag: v0.4.7

The component's registry beats systemDefaultRegistry for that one image; every other image keeps the release's registry. Offline deployments import the image into the nodes' container runtime instead, under the name the release record then shows, as the install bundle does (Use Your Own Registry or Install Offline).

Which Versions​

Racora drives the interfaces the pinned component offers: for the gNB its configuration schema and the runtime commands the controller sends the CU-CP, for the O1 adapter its provisioning file, for the core its subscriber adapter. A version that keeps those interfaces and adds to them is a component update, and the deployment gets the improvement; Racora drives the new capabilities once a release adds that (Change What a Deployment Runs). A version that renames or removes an interface Racora drives waits for a Racora release that pins it. The next release re-pins every component: when it ships the version you set, remove the key from your HelmChartConfig or values file, or it keeps shadowing the release's pin.

Go Back​

Set the previous tag, or remove the key to return to the release's pin. Every tag is immutable, so the previous image is the one you ran before.