ntctl is the recommended way: it shows what
will change before it changes anything, refuses changes Kubernetes cannot make
in place, and restores the last working revision if the upgrade does not
become ready. Plain Helm works too, and the two can be mixed on one release.
Upgrade
- ntctl
- Helm
upgrade keeps the values you installed with and takes everything else,
image tags included, from the new chart’s defaults. -f files and flags are
layered on top. Before it changes anything it:- Runs the preflight checks against the upgrade.
- Shows the chart’s release notes between your version and the target, and
flags the releases to read before upgrading.
--release-notesprints every release in full. - Has the cluster render the upgrade in a dry run, then lists every image
version that changes and every resource that is added, changed or removed.
--show-diffprints the full diff. Secret values are compared but never shown. - In Hybrid, names the control plane the data plane connects to, and warns when the console you are signed in to belongs to a different one.
--yes skips it) and applies. If the upgrade
does not become ready, ntctl rolls back to the last working revision and
prints what ntctl doctor
finds wrong.What stops an upgrade
ntctl upgrade stops, changing nothing, when the upgrade needs something
Kubernetes cannot do in place:
- a new selector on a Deployment, DaemonSet or StatefulSet;
- a new StatefulSet service name or volume template;
- a new storage class or access mode on a volume;
- removing a Secret, a volume or a StatefulSet, unless it carries
helm.sh/resource-policy: keep. Helm leaves those in the cluster, and the diff lists them as kept but no longer managed; - removing a key from a Secret that a workload of the new release still reads.
--allow-breaking only when you accept that those resources are deleted
and recreated.
Upgrade order
Keep data planes at least as new as the control plane they connect to. In Hybrid, upgrade promptly when NeuralTrust announces a control-plane release. With a Central control plane, upgrade it and its data planes together, and with two clusters, one at a time. The reasons are in Hybrid → Upgrades.Change a setting without upgrading the chart
Pass the version you already run, whichntctl status prints, so only the
setting changes:
--domain, --platform and --gateway change the install the same way. The
deployment mode (--mode) cannot change in place.
Add or remove a product
ntctl install asks only which products to add and
their console tokens, keeps every other setting and the installed chart, and
shows what changes before it applies. Running it again when the product is
already there changes nothing. ntctl upgrade --products does the same without
questions.
--remove-products deletes the product’s workloads after listing them and
asking. Naming a product in --products never removes another.
Roll back
helm history and helm rollback do the same, without those
checks.
A failed or interrupted upgrade
ntctl doctor reports both as NT-DR-001.
- The upgrade did not become ready.
ntctl doctorsays why. Fix the cause, then runntctl upgradeagain: it re-applies the failed revision even when the values did not change. - It was interrupted (Ctrl+C, a lost connection). The release stays locked.
ntctl rollbackclears an interrupted upgrade, andntctl uninstallan interrupted install.
Secrets left by earlier charts
Upgrades keep Secrets that earlier chart versions created and nothing reads any more, on purpose.ntctl doctor lists them as NT-DR-024, with the command
that deletes them. Deleting them is optional. If you delete one, a rollback to
a revision that still reads it stops until it is restored.
When the install’s chart still renders its generated credentials itself,
ntctl upgrade says that the target chart can keep them with the secrets
generator instead. --secrets-generator makes that move and copies every value
in use, so nothing rotates. ntctl never makes it unasked.
Manage a Helm install with ntctl
An install made with plain Helm needs no migration:adopt re-renders the release’s own chart with the values it was installed
with, in a dry run, and compares the result with what is deployed. When they
match, it writes those values, without anything that looks like a secret, to
neuraltrust-values.yaml. It changes nothing in the cluster and adds no
Secrets. From then on ntctl upgrade keeps the release’s own values and
Secret names. For a cluster without access to the chart registry, pass the
release’s chart with --chart.
status, doctor and support-bundle work on a Helm install without
adopting it.
Uninstall
uninstall removes the release and every resource it manages. It works on a
release that failed or whose install was interrupted. By default it keeps:
With Helm,
helm uninstall removes the release and leaves the same kept
resources in place.