Deploy a Combined Software and Kubernetes Upgrade Across Subclouds¶
After a software release has been deployed on the System Controller, you can orchestrate a combined software deployment and Kubernetes upgrade across the subclouds. This applies both operations to each subcloud in a single orchestration pass, eliminating the need for a separate Kubernetes upgrade orchestration afterward.
For a DCManager combined software deployment and Kubernetes upgrade across subclouds:
for AIO-SX subclouds, ‘combined’ upgrade will be done. For details on how the combined strategy works on standalone systems, see Orchestrated Combined Host Software Deployment and Kubernetes Upgrade.
for all other duplex subclouds, legacy serial software platform upgrade deployment followed by kubernetes upgrade will be done (as ‘combined’ upgrade is not supported for multi-node subcloud types).
Note
The --with-delete option has been renamed to --delete and
--delete-only has been renamed to --cleanup. The old option names
are deprecated and will be removed in a future release.
Prerequisites
The following conditions must be met for the orchestrated combined software deployment and Kubernetes upgrade across the subclouds to be successful.
All target subclouds are managed, online and healthy. The Kubernetes cluster on each subcloud is fully operational and there are no management affecting alarms.
The target software release has been uploaded and deployed on the System Controller.
The target Kubernetes version is available on the subclouds. This version is included with the target software release, but it must be available on each subcloud before the target software release is deployed.
Note
For upgrades to StarlingX r13, the target Kubernetes version is made available by deploying the FROM-side patch required for software upgrades to r13.
You can confirm availability on a subcloud with system kube-version-list command.
Subcloud certificates are up-to-date and will not expire during the deployment.
Prestage the new software release and container images to subclouds before the maintenance window to reduce software deployment time. See Orchestrate Subcloud Prestage Using the CLI.
By default, the dcmanager sw-deploy-strategy create command assumes subclouds have been prestaged beforehand and will fail the new software deployment otherwise.
Specify
--with-prestageoption with the sw-deploy-strategy create command to include prestaging in the same strategy along with the sw-deploy operation.
Ensure that controller-0 is the active controller on each subcloud.
Note
The combined software deployment and Kubernetes upgrade strategy is only supported for major release upgrades.
Procedure
Review software sync status of the subclouds.
After the new software release has been deployed on the System Controller, wait for approximately 60 seconds for the
software_sync_statusof all subclouds to be updated.~(keystone_admin)]$ dcmanager subcloud list
To create a combined sw-deploy and Kubernetes upgrade strategy, use the dcmanager sw-deploy-strategy create command with the
--kube-upgradeoption.~(keystone_admin)]$ dcmanager sw-deploy-strategy create \ [--subcloud-apply-type <type>] \ [--max-parallel-subclouds <i>] \ [--stop-on-failure <level>] \ [--group group] \ [--with-prestage] \ [--sysadmin-password] \ --release-id RELEASE_ID \ [--kube-upgrade KUBE_VERSION] \ [--snapshot] \ [--delete] \ [--rollback] \ [--cleanup] \ [<subcloud>]
where:
- subcloud-apply-type
parallel or serial — determines whether the subclouds will be processed in parallel or serially.
If this is not specified using the CLI, the values for subcloud_update_type defined for each subcloud group will be used by default.
- max-parallel-subclouds
Sets the maximum number of subclouds that can be upgraded in parallel (default 2).
If this is not specified using the CLI, the values for max_parallel_subclouds defined for each subcloud group will be used by default.
- stop-on-failure
true (default) or false — determines whether orchestration failure for a subcloud prevents application to subsequent subclouds.
- group
Optionally pass the name or ID of a subcloud group. This results in a strategy that is only applied to all subclouds in the specified group.
- with-prestage
Enables orchestration to prestage and then deploy the new software on subclouds that lack the required software and container images.
- sysadmin-password
Pass the sysadmin password (optional). Required when using
--with-prestage.- release-id
Specifies the target software release to deploy.
- kube-upgrade
Specifies the target Kubernetes version to upgrade to.
- snapshot
Creates a snapshot of the main logical volumes so that, in the case of a rollback, the snapshots can be restored in order to speed up the overall rollback procedure.
- delete
Specifies that the software deployment and the Kubernetes upgrade should be finalized and deleted at the end of a successful subcloud deployment. With this option, the subclouds’ deployments cannot be rolled back.
- rollback
Specifies that sw-deploy-strategy should run a rollback of the existing (un-deleted) software deployment on the subclouds.
This is valid after a failed sw-deploy-strategy on a subcloud or after a successful sw-deploy-strategy on a subcloud that did not delete the software deployment using –delete or –cleanup.
- cleanup
Specifies that sw-deploy-strategy should only finalize the kubernetes upgrade and run the software deployment cleanup operation on subclouds. This command is used to clean up a previous default sw-deploy-strategy where the subclouds’ software deployments were not deleted.
For example:
~(keystone_admin)]$ dcmanager sw-deploy-strategy create --release-id RELEASE_ID --kube-upgrade KUBE_VERSION +------------------------+----------------------------+ | Field | Value | +------------------------+----------------------------+ | strategy type | sw-deploy | | subcloud apply type | None | | max parallel subclouds | 2 | | stop on failure | False | | release_id | <RELEASE_ID> | | snapshot | True | | rollback | False | | delete_option | delete | | with_prestage | None | | kube_upgrade | <KUBE_VERSION> | | state | initial | | created_at | 2026-07-02T21:24:39.650531 | | updated_at | None | +------------------------+----------------------------+
To show the settings for the strategy, use the dcmanager sw-deploy-strategy show command.
For example:
~(keystone_admin)]$ dcmanager sw-deploy-strategy show +------------------------+----------------------------+ | Field | Value | +------------------------+----------------------------+ | strategy type | sw-deploy | | subcloud apply type | None | | max parallel subclouds | 2 | | stop on failure | False | | release_id | <RELEASE_ID> | | snapshot | True | | rollback | False | | delete_option | delete | | with_prestage | None | | kube_upgrade | <KUBE_VERSION> | | state | initial | | created_at | 2026-07-02T21:24:39.650531 | | updated_at | None | +------------------------+----------------------------+
Review the strategy steps for the subclouds.
To show the subclouds that will be processed when the strategy is applied, use the dcmanager strategy-step list command. For example:
~(keystone_admin)]$ dcmanager strategy-step list +----------------------+-------+---------+---------+------------+-------------+ | cloud | stage | state | details | started_at | finished_at | +----------------------+-------+---------+---------+------------+-------------+ | subcloud-1 | 1 | initial | | None | None | | subcloud-2 | 1 | initial | | None | None | +----------------------+-------+---------+---------+------------+-------------+
Note
All the subclouds that are included in the same stage will be deployed in parallel.
To apply the strategy, use the dcmanager sw-deploy-strategy apply command.
~(keystone_admin)]$ dcmanager sw-deploy-strategy apply +------------------------+----------------------------+ | Field | Value | +------------------------+----------------------------+ | strategy type | sw-deploy | | subcloud apply type | None | | max parallel subclouds | 2 | | stop on failure | False | | release_id | <RELEASE_ID> | | snapshot | True | | rollback | False | | delete_option | delete | | with_prestage | None | | kube_upgrade | <KUBE_VERSION> | | state | applying | | created_at | 2026-07-02T21:24:39.650531 | | updated_at | None | +------------------------+----------------------------+
To show the step currently being performed on each of the subclouds, use the dcmanager strategy-step list command.
For example:
~(keystone_admin)]$ dcmanager strategy-step list +------------------+-------+-----------------------+---------+----------------------------+----------------------------+ | cloud | stage | state | details | started_at | finished_at | +------------------+-------+-----------------------+---------+----------------------------+----------------------------+ | subcloud-1 | 1 | complete | | 2026-07-02 21:25:10.342429 | 2026-07-02 22:10:41.054664 | | subcloud-2 | 1 | apply VIM sw-deploy | | 2026-07-02 21:25:10.342429 | None | +------------------+-------+-----------------------+---------+----------------------------+----------------------------+
To show the step currently being performed on a specific subcloud, use the dcmanager strategy-step show command.
~(keystone_admin)]$ dcmanager strategy-step show <subcloud>
When all the subclouds indicate they have entered either the complete or failed state, delete the strategy using the dcmanager sw-deploy-strategy delete command.
~(keystone_admin)]$ dcmanager sw-deploy-strategy delete +------------------------+----------------------------+ | Field | Value | +------------------------+----------------------------+ | strategy type | sw-deploy | | subcloud apply type | None | | max parallel subclouds | 2 | | stop on failure | False | | release_id | <RELEASE_ID> | | snapshot | True | | rollback | False | | delete_option | delete | | with_prestage | None | | kube_upgrade | <KUBE_VERSION> | | state | deleting | | created_at | 2026-07-02T21:24:39.650531 | | updated_at | None | +------------------------+----------------------------+
Postrequisites
After a successful combined software deployment and Kubernetes upgrade:
Validate that subclouds are online and in sync. This will only happen if the
--deleteoption was specified.If
--deletewas not specified during strategy creation, clean up the deployment artifacts by creating a cleanup strategy:~(keystone_admin)]$ dcmanager sw-deploy-strategy create --cleanup
Then apply and delete the cleanup strategy as described in the steps above.
Note
The
--cleanupoption cannot be combined with--release-id,--kube-upgrade, or--rollback.
Error Handling During an Orchestrated Combined Deployment¶
If a failure occurs, follow the general steps below:
Allow the failed strategy to complete on its own.
Check the output using dcmanager strategy-step list command.
To see the cause of failure for a subcloud, use the dcmanager subcloud errors <subcloud-name/subcloud-id> command.
Resolve the condition that caused the failure.
Retry the orchestration by deleting the failed strategy and creating a new one for the failed subcloud(s).