helm upgrade you run in the cluster — it’s uncommon, and when it comes up the UI shows the exact command to run (see Operator chart upgrades).
Upgrading also unlocks newer support: once an executor is on a newer release, any chains, clients, or versions it now declares become available in the deploy wizard.
Prerequisites
- A role that can manage executors: owner or admin.
- An upgrade target offered for your executor (see How upgrades are offered).
How upgrades are offered
In the sidebar, open Executors, pick your row, and find the Version & Updates panel on the Overview tab. It shows the Current version and, when there is one, the Available upgrade — the nearest newer release — with its release date. Only releases one major version away can be applied directly. If you’re more than one major behind, the upgrade happens in two hops: upgrade to the next reachable major first, then to your target. Releases that are too far ahead still appear in the picker, but they’re disabled and labelledneeds major N first.
Upgrade from the UI
1
Open the executor
In the sidebar, open Executors and pick your row. The Version & Updates panel lists the current version and what you can move to.
2
Choose a release
Click Upgrade… in the panel header. The Upgrade executor dialog preselects the nearest newer release you can reach directly; pick a later one under Target version if you want. A target that’s too far ahead is disabled and labelled
needs major N first.3
Request the upgrade
Click Request upgrade. Novacula queues the upgrade on the executor, and the panel shows Upgrade to N in progress while the job is in flight.
4
Wait for the executor to apply
On its next check-in the executor downloads and applies the new version, then reports back; the panel shows the new version. If the new version fails to start, the executor rolls back automatically to the version it was running.
Cancel an upgrade
While an upgrade is pending, the panel offers Cancel upgrade. Cancelling is a request to the executor, not an instant stop, and what happens depends on how far the executor has got:- Not yet applying — the executor abandons the upgrade and stays on its current version. For an Agent that means it is still downloading, verifying, or unpacking the new release into a staging area; for an Operator, it hasn’t yet written its new configuration or
Deployment, or started a HelmJob. - Already applying — the upgrade finishes. Nothing is rolled back.
Automatic updates
Instead of requesting each upgrade by hand, you can let the Hub upgrade the executor for you. The Automatic updates card sits on the executor’s Overview tab, below Version & Updates, for both Agents and Operators. Its badge reads Enabled, Disabled, or Unavailable. With automatic updates enabled, the Hub moves the executor to the latest release when it becomes available. Only one executor per organization is upgraded at a time, and the Hub waits up to 6 hours for the executor to report the new version.- Enable updates turns them on after a confirmation. An upgrade can restart the executor and affect the nodes it manages; node updates that follow can need a full resync.
- Once enabled, the card shows the maintenance window — for example
02:00–05:00 · Europe/London— or Any time. Its info tooltip gives the next time the window permits a start; that’s not a scheduled update, since an upgrade starts only when a newer release is available and no other executor in your organization is in an automatic upgrade. - Edit schedule opens the window inline: switch on Maintenance window, then set a Start time, an End time, and a Time zone (an IANA name such as
Europe/London), and Save. A window may cross midnight; equal start and end times permit no upgrades. With the window off, an upgrade may start at any time. - Pause turns automatic updates off and keeps the window for next time. Pausing doesn’t stop an upgrade the executor is already applying; one that hasn’t got that far is cancelled, as with Cancel upgrade.
executor.upgrade_policy.changed.
Operator chart upgrades
Most Operator upgrades are just a new container image, applied in-cluster with nothing for you to run. Some releases also change the Operator’s Helm chart — new RBAC, CRDs, or wiring the running image can’t grant itself. Release 0.1.18, for example, needs chart 0.1.13, which runs each pool’s gateway as aDeployment of its own and adds the RBAC for it — see Provision on Kubernetes.
When you request such an upgrade by hand, the upgrade dialog shows a Helm chart upgrade required panel instead of the Request upgrade button:
- It gives you the exact command to run with Helm 4.0+, in that executor’s Kubernetes cluster. The command applies the release’s chart version and pins the Operator and Gateway images to it, so running it completes the upgrade (the Helm release is
nvcl-operatorin thenvcl-systemnamespace by default — adjust both if you installed under your own names). - If the release catalog is missing the chart reference or exact version, the panel instead reports the upgrade is blocked until the release catalog is corrected — there’s nothing to run until that’s fixed.
selfUpdate.enabled: true (the default), the Operator runs helm upgrade in a Kubernetes Job, using the Helm image in selfUpdate.helmImage (alpine/helm:4.2.3). With selfUpdate.enabled: false the Operator doesn’t update itself at all — not even an image-only release — so run the chart command yourself. A self-updating Operator that has no Helm image (a hand-written [self_update] section, for example) fails a release that needs a newer chart with an error such as operator cannot upgrade chart: Helm image is not configured instead of quietly updating only the image. An Operator that doesn’t know its installed chart version updates only its image and logs a warning, and automatic updates never pick a chart-changing release for such an Operator — they need it to report its installed chart version.
Agent upgrades never need this — an Agent is a single binary the executor swaps itself.