Skip to content
StrongLinux

Documentation

Updating the cloud (strongctl upgrade)

strongctl upgrade applies bug-fix updates to a StrongLinux cloud: new package versions within the same OpenStack series (2026.1). The cloud stays up during the update: VMs keep running and the APIs keep answering.

Changing series (for example 2026.1 → 2027.1, the SLURP path) is not covered: the command refuses when the major version of any OpenStack service changes.

Channels

Packages come from the StrongLinux apt repository:

ChannelContents
stronglinux-1.0release versions
stronglinux-1.0-updatesapproved fixes (passed the M3 test and Tempest in the pipeline)
stronglinux-1.0-securitysecurity fixes
stronglinux-1.0-proposedcandidates, for testing only

The channels a cloud uses are listed in stronglinux_apt_suites in /etc/strongctl/globals.yml. To test candidates, add stronglinux-1.0-proposed to the list.

Step by step

  1. Update strongctl itself first, because new roles and templates ship with it (strongctl upgrade refuses to run if a newer strongctl is available):
    apt update && apt install --only-upgrade strongctl
  1. See what changes on each node (changes nothing):
    strongctl upgrade --listar
  1. Update:
    strongctl upgrade

What the command does

  1. Pre-check: runs verify; the cloud must be healthy. Use --sem-verificar only if you know what you are doing.
  2. apt sources on every node (common role). Then lists, per node, the stronglinux-* packages with a new version, and refuses a series change.
  3. Controllers, one at a time. For each one:
  1. Other nodes (compute, network and storage), in batches. The batch size is set with --serial; the default is 25% of the nodes.
  2. Deploy: writes the new configuration, runs the schema migrations (db sync, once per cloud) and restarts what changed.
  3. Online data migrations for nova and cinder (online_data_migrations, until done).
  4. Final verify.

Running strongctl upgrade again with no new packages changes nothing (changed=0).

Ubuntu packages

strongctl upgrade takes care of the StrongLinux packages. Ubuntu packages (OVS/OVN, MariaDB, RabbitMQ, libvirt, kernel) follow the system update policy. For updates that restart OVS, libvirt or the kernel, update one node at a time and, on compute nodes, migrate the VMs first.

Validation

The tests/lxd/run-smoke.sh strongctl-upgrade test runs a full cycle:

  1. Deploys an all-in-one cloud from the stable channel.
  2. Creates a VM with a floating IP and a volume.
  3. Adds the proposed channel and runs strongctl upgrade, measuring throughout:
  1. Checks after the upgrade: