Manual Metapackage Host Software Deployment¶
StarlingX software releases are composed of one or more metapackage releases. Each metapackage groups a set of packages related to a specific platform competence (e.g., infrastructure, distributed cloud, Kubernetes). Some patch releases support independent deployment of these metapackages. This topic describes how to deploy, roll back, and remove individual metapackages, or a subset of metapackages, rather than a full product release.
This topic provides the low-level software commands for deploying individual metapackages across all hosts of the local cloud.
Alternatively, you can use sw-manager sw-deploy-strategy-create/apply/delete to orchestrate the low-level software commands across all hosts of the local cloud. See Orchestrated Deployment Host Software Deployment.
In a DC environment, for deploying software to subclouds, you can use dcmanager sw-deploy-strategy-create/apply/delete on the System Controller to orchestrate the running of sw-manager sw-deploy-strategy-create/apply/delete across all subclouds managed by the System Controller. See Deploy Software Releases using the CLI.
Note
To abort and roll back a metapackage software deployment, follow the same general procedure as described in Manual Rollback Host Software Deployment. Note that the rollback applies to the entire deployment; all selected metapackages are rolled back together. Individual metapackage rollback is not supported.
To remove a metapackage deployment and return to a previously deployed full product release, follow the same general procedure as described in Manual Removal Host Software Deployment.
Prerequisites
A recent full backup is recommended before performing major changes to the system.
No active alarms are present on the system. Upgrades will not proceed if alarms are present.
If you are using a private container image registry for installs/updates/upgrades:
The private registry must be populated with any new container images required for the new software release.
The list of container images required by the new software release can be found in your software distribution site.
Note
For upgrades from StarlingX Release r11 to StarlingX Release r13 only:
The sysadmin and admin passwords must be set to the same value before starting the upgrade.
Before upgrading on multinode systems (AIO-DX, AIO-DX with worker node, and Standard), resize the Docker filesystem on all controllers to at least 50GB to prevent filesystem threshold alarms during the upgrade:
~(keystone_admin)]$ system host-fs-modify <controller-name> docker=50
The FEC operator stays in a
CrashLoopBackstate during reboot, unlock, and restore. Before the upgrade, remove themetrics_timer_config_wa_10212024.shscript to prevent this:~(keystone_admin)]$ metrics_timer_config_wa_10212024.sh -r
Pre-Upgrade Deploy¶
Note
The pre-upgrade-deploy feature is intended for future functionality and will be fully documented in the next release, where it will be used for upgrading to that release.
Metapackage Deployment¶
You can select individual metapackages for deployment rather than deploying a full product release.
In the example output tables:
<current-release>represents the StarlingX active release version.nn.nnrepresents the StarlingX future release version.
Procedure
For a duplex (dual controller) system, switch the activity from controller-1 such that controller-0 becomes active.
Note
This step is not required for an AIO-SX system.
~(keystone_admin)]$ system host-swact controller-1
Wait for the activity to switch to controller-0. This may take up to a minute depending on the hardware.
Reconnect to the system using the floating OAM IP address, as the active controller has changed.
Transfer the new software release files to the active controller-0.
For a major release, it includes the major release install ISO, software signature file, and license file.
For a patch release, it includes the patch release .patch archive file.
Upload the new software release into the system.
For a patch release:
~(keystone_admin)]$ software upload <filename>.patch <release-id> is now uploaded
Ensure that the new software release was successfully uploaded.
~(keystone_admin)]$ software list
The output lists all software releases on the system. Confirm that the current release is in the
deployedstate and that the newly uploaded release is in theavailablestate.To list the available metapackages and their states, use:
~(keystone_admin)]$ software metapackage list --all +---------------------------------+-------+-----------+ | Release | RR | State | +---------------------------------+-------+-----------+ | base_<current-release> | True | deployed | | distcloud_<current-release> | True | deployed | | infra_<current-release> | True | deployed | | k8s-common_<current-release> | True | deployed | | k8s-v1.32.2_<current-release> | True | deployed | | k8s-v1.33.0_<current-release> | True | deployed | | k8s-v1.34.1_<current-release> | True | deployed | | k8s-v1.35.2_<current-release> | True | deployed | | swmgmt_<current-release> | True | deployed | | infra_nn.nn | True | deployed | | base_nn.nn | True | available | | distcloud_nn.nn | True | available | | infra_nn.nn | True | available | | k8s-common_nn.nn | True | available | | k8s-v1.32.2_nn.nn | True | available | | k8s-v1.33.0_nn.nn | True | available | | k8s-v1.34.1_nn.nn | True | available | | k8s-v1.35.2_nn.nn | True | available | | swmgmt_nn.nn | True | available | +---------------------------------+-------+-----------+
Where:
nn.nnrepresents the target future release version.Without the
--allflag, only metapackages from the highest deployed release are shown:~(keystone_admin)]$ software metapackage list +--------------------------------+-------+----------+ | Release | RR | State | +--------------------------------+-------+----------+ | base_<current-release> | True | deployed | | distcloud_<current-release> | True | deployed | | k8s-common_<current-release> | True | deployed | | k8s-v1.32.2_<current-release> | True | deployed | | k8s-v1.33.0_<current-release> | True | deployed | | k8s-v1.34.1_<current-release> | True | deployed | | k8s-v1.35.2_<current-release> | True | deployed | | swmgmt_<current-release> | True | deployed | | infra_<current-release> | True | deployed | +--------------------------------+-------+----------+
(Optional) Select metapackages for deployment.
This step allows you to select which metapackages to deploy before running prechecks or starting the deployment. You can select one or more metapackages.
If you skip this step, pass the release IDs directly to the software deploy precheck and software deploy start commands instead.
To select individual metapackages:
~(keystone_admin)]$ software deploy select <metapackage-release-1> <metapackage-release-2> Selected <metapackage-release-1> metapackage for deployment Selected <metapackage-release-2> metapackage for deployment
To unselect previously selected metapackages:
~(keystone_admin)]$ software deploy unselect StarlingX-nn.nn Unselected metapackage infra_nn.nn for deployment Unselected metapackage k8s-v1.34.1_nn.nn for deployment Unselected metapackage k8s-v1.35.2_nn.nn for deployment Unselected metapackage swmgmt_nn.nn for deployment Unselected metapackage distcloud_nn.nn for deployment Unselected metapackage base_nn.nn for deployment Unselected metapackage k8s-v1.33.0_nn.nn for deployment Unselected metapackage k8s-v1.32.2_nn.nn for deployment Unselected metapackage k8s-common_nn.nn for deployment
You can also unselect all selected metapackages at once:
~(keystone_admin)]$ software deploy unselect --all
Note
Selection validation rules:
All selected metapackages must belong to the same product release version.
Certain metapackages can only be deployed as part of a full product release selection and cannot be selected individually.
The current running release cannot be selected for deployment.
Removing a previous release is only supported by selecting the full product release (individual metapackage removal is not supported).
Run software deployment prechecks and confirm that the system is healthy.
If no metapackages are specified in the software deploy precheck command, the precheck runs against the previously selected metapackages (selected in the previous step). If metapackages are specified in the software deploy precheck command, the metapackage selection is reset to those specified metapackages and the precheck runs against them.
For previously selected metapackages, run the following command:
~(keystone_admin)]$ software deploy precheck [-f|--force]
To specify metapackages directly and reset the current selection, run the following command:
~(keystone_admin)]$ software deploy precheck infra_nn.nn
The following metapackage release(s) will be deployed: infra_nn.nn
Note
Each metapackage can implement its own
deploy-precheckscript. The detailed health checks shown in the failed precheck example below are from theswmgmtmetapackage’sdeploy-precheckscript. Metapackages that do not implement custom checks, such asinfra, only produce the genericRunning .../deploy-precheck script...andFinished script executionmessages.Example output for a product release precheck (success):
~(keystone_admin)]$ software deploy precheck starlingx-nn.nn infra_nn.nn: Running /var/rootdirs/opt/software/releases/nn.nn/infra/support-scripts/deploy-precheck script... Finished script execution k8s-v1.34.1_nn.nn: Running /var/rootdirs/opt/software/releases/nn.nn/k8s-v1.34.1/support-scripts/deploy-precheck script... Finished script execution k8s-v1.35.2_nn.nn: Running /var/rootdirs/opt/software/releases/nn.nn/k8s-v1.35.2/support-scripts/deploy-precheck script... Finished script execution swmgmt_nn.nn.0: Kubernetes upgrade does not block deployment: [OK] System Health: All hosts are provisioned: [OK] All hosts are unlocked/enabled: [OK] All hosts have vim enabled: [OK] All hosts have current configurations: [OK] Ceph Storage Healthy: [OK] No alarms: [OK] All kubernetes nodes are ready: [OK] All kubernetes control plane pods are ready: [OK] All kubernetes applications are in a valid state: [OK] All hosts are patch current: [OK] Active kubernetes version [v1.35.2] is a valid supported version: [OK] Active controller is controller-0: [OK] Installed license is valid: [OK] Valid upgrade path from release 26.10 to nn.nn: [OK] Required patches are applied: [OK] Docker filesystem in controllers satisfies the required size of 40GB: [OK] distcloud_nn.nn: Running /var/rootdirs/opt/software/releases/nn.nn/distcloud/support-scripts/deploy-precheck script... Finished script execution base_nn.nn: Running /var/rootdirs/opt/software/releases/nn.nn/base/support-scripts/deploy-precheck script... Finished script execution k8s-v1.33.0_nn.nn: Running /var/rootdirs/opt/software/releases/nn.nn/k8s-v1.33.0/support-scripts/deploy-precheck script... Finished script execution k8s-v1.32.2_nn.nn: Running /var/rootdirs/opt/software/releases/nn.nn/k8s-v1.32.2/support-scripts/deploy-precheck script... Finished script execution k8s-common_nn.nn: Running /var/rootdirs/opt/software/releases/nn.nn/k8s-common/support-scripts/deploy-precheck script... Finished script execution The following metapackage release(s) will be deployed: infra_nn.nn, k8s-v1.34.1_nn.nn, k8s-v1.35.2_nn.nn, swmgmt_nn.nn, distcloud_nn.nn, base_nn.nn, k8s-v1.33.0_nn.nn, k8s-v1.32.2_nn.nn, k8s-common_nn.nn
Example output when a precheck fails (only the unhealthy metapackage details are shown):
~(keystone_admin)]$ software deploy precheck StarlingX-nn.nn Error: swmgmt_nn.nn: The following issues have been detected, which prevents deploying the release. Kubernetes upgrade does not block deployment: [OK] System Health: All hosts are provisioned: [OK] All hosts are unlocked/enabled: [OK] All hosts have vim enabled: [OK] All hosts have current configurations: [OK] Ceph Storage Healthy: [OK] No alarms: [OK] All kubernetes nodes are ready: [OK] All kubernetes control plane pods are ready: [OK] All kubernetes applications are in a valid state: [OK] All hosts are patch current: [OK] Active kubernetes version [v1.35.2] is a valid supported version: [OK] Active controller is controller-0: [OK] Installed license is valid: [OK] Platform Issuer: [Fail] -> Platform Issuer (system-local-ca) TLS private key is not valid. Only RSA keys are supported. Please perform the 'Update system-local-ca or Migrate Platform Certificates to use Cert Manager' procedure to update the Platform Issuer, providing a valid RSA cert/key to be used by the issuer. Valid upgrade path from release 26.10 to nn.nn: [OK] Required patches are applied: [OK] Docker filesystem in controllers satisfies the required size of 40GB: [OK] The following metapackage release(s) are unhealthy: swmgmt_nn.nn
Where:
--force|-fwill ignore non-management affecting alarms.--options|-o snapshot=truewill enable health checks for the LVM snapshot feature.Note
The LVM snapshot option on software deploys will result in 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. By default, the rollback procedure does not use snapshots. Instead, it rolls back the individual file changes on the main logical volumes.
Resolve any checks that are not OK and re-run the software deploy precheck command. Use the
-foption to ignore non-management affecting alarms.Note
The failed prechecks must be cleared before software deployment is allowed to proceed.
Start the software deployment procedure.
Note
The software deploy start command will automatically run the prechecks of previous steps if the prechecks have not been run or have not passed.
The failed prechecks must be cleared before software deployment is allowed to proceed.
Configuration cannot be changed during the software deployment process.
By default, the software deployment procedure cannot be started unless prechecks pass.
The start command can target a set of metapackages (partial product release) or a full product release. In both cases, the specified metapackages reset any previous selection. If no metapackages are specified, the previously selected metapackages are used:
For individual or multiple metapackages (resets previous selection):
~(keystone_admin)]$ software deploy start [-f|--force] <metapackage-release-1> <metapackage-release-2>
Or, if no metapackages are specified (uses previously selected metapackages):
~(keystone_admin)]$ software deploy start [-f|--force]
Example for a patch release with a single metapackage:
~(keystone_admin)]$ software deploy start StarlingX-nn.nn.n Selected infra_nn.nn.0 metapackage for deployment infra_nn.nn.0 is now starting, await for the states: [deploy-start-done | deploy-start-failed] in 'software deploy show'
Then, monitor the progress of software deploy start using the following commands:
For a partial metapackage deployment (nested table format):
~(keystone_admin)]$ software deploy show +-------------------------------------------------------+-------+-------------+-------------------+ | Releases | RR | Pre-Upgrade | State | +-------------------------------------------------------+-------+-------------+-------------------+ | Metapackage From Release To Release | True | False | deploy-start-done | | ------------- -------------- ---------- | | | | | infra <current-release> nn.nn | | | | +-------------------------------------------------------+-------+-------------+-------------------+
Note
When deploying all metapackages from a product release, the output uses the simple “From Release / To Release” format. The nested table format is only shown for partial metapackage deployments (a subset of the product release).
The software deploy start command may take 5-10 mins to reach the
deploy-start-donestate depending on hardware.Note
If software deploy start fails, that is, if the state is deploy-start-failed, review
/var/log/software.logon the active controller for failure details, address the issues, and run thesoftware deploy deletecommand to delete the deploy and re-execute the software deploy start command.If LVM snapshot feature is enabled on deploy start (AIO-SX support only), the system will take snapshots of the main logical volumes so that these can be used to speed up the rollback by restoring the snapshots, if needed.
Deploy the new software release to all hosts.
For an AIO-SX system:
Deploy the new software release to controller-0.
Only if the software deployment is
RR=True(reboot required), lock controller-0.~(keystone_admin)]$ system host-lock controller-0
Deploy the new software release to controller-0.
~(keystone_admin)]$ software deploy host controller-0 Host installation request sent to controller-0. Host installation was successful on controller-0.
After this command completes:
If
RR=True, the host is still running the old software release, however boot parameters have been updated to boot into the new software release on the next host reboot, which will occur in the next step which unlocks the host.If
RR=False, the host is running the new software release.
Only if the software deployment is
RR=True, unlock controller-0.~(keystone_admin)]$ system host-unlock controller-0
The host will now reboot into the new software release. Wait for the host to finish rebooting and become enabled. This may take 3-5 mins depending on hardware.
Proceed to step Activate the software deployment (software deploy activate).
For an AIO-DX system or standard system:
Deploy the new software release to controller-1 (standby controller).
Only if the software deployment is
RR=True, lock controller-1.~(keystone_admin)]$ system host-lock controller-1
Deploy the new software release to controller-1.
~(keystone_admin)]$ software deploy host controller-1 Host installation request sent to controller-1. Host installation was successful on controller-1.
After this command completes:
If
RR=True, the host is still running the old software release, however boot parameters have been updated to boot into the new software release on the next host reboot, which will occur in the next step which unlocks the host.If
RR=False, the host is running the new software release.
Only if the software deployment is
RR=True, unlock controller-1.~(keystone_admin)]$ system host-unlock controller-1
The host will now reboot into the new software release. Wait for the host to finish rebooting and become enabled.
This may take 3-5 mins depending on hardware.
Display state of software deployment.
Note
When deploying all metapackages from a product release, the output uses the simple “From Release / To Release” format. When deploying a subset of metapackages, a nested table is shown listing only the metapackages being deployed.
For a full product release deployment:
~(keystone_admin)]$ software deploy show
Verify that the deployment is transitioning from
|prod|-<current-release>to|prod|-nn.nn, thatRRis set toTrue, and that the deployment state isdeploy-host.~(keystone_admin)]$ software deploy host-list
Verify that
controller-1has reached thedeploy-host-deployedstate, whilecontroller-0,storage-0,storage-1,worker-0, andworker-1remain in thedeploy-host-pendingstate.For a partial metapackage deployment:
~(keystone_admin)]$ software deploy show +------------------------------------------------------+-------+-------------+------------------+ | Releases | RR | Pre-Upgrade | State | +------------------------------------------------------+-------+-------------+------------------+ | Metapackage From Release To Release | False | False | deploy-host | | ------------- -------------- ------------ | | | | | base <current-release> nn.nn | | | | | infra <current-release> nn.nn | | | | +------------------------------------------------------+-------+-------------+------------------+
~(keystone_admin)]$ software deploy host-list +--------------+---------------------+-------------------+-------+-------------+---------------------+ | Host | From Release | To Release | RR | Pre-Upgrade | State | +--------------+---------------------+-------------------+-------+-------------+---------------------+ | controller-0 | <current-release> | nn.nn | False | False | deploy-host-pending | | controller-1 | <current-release> | nn.nn | False | False | deploy-host-pending | +--------------+---------------------+-------------------+-------+-------------+---------------------+
Switch the activity from controller-0 such that controller-1 becomes active.
~(keystone_admin)]$ system host-swact controller-0
Wait for the activity to switch to controller-1. This may take up to a minute depending on hardware.
Reconnect to the system using the floating OAM IP address, as the active controller has changed.
Deploy the new software release to controller-0 (now the standby controller).
Only if the software deployment is
RR=True, lock controller-0.~(keystone_admin)]$ system host-lock controller-0
Deploy the new software release to controller-0.
~(keystone_admin)]$ software deploy host controller-0 Host installation request sent to controller-0. Host installation was successful on controller-0.
After this command completes:
If
RR=True, the host is still running the old software release, however boot parameters have been updated to boot into the new software release on the next host reboot, which will occur in the next step which unlocks the host.If
RR=False, the host is running the new software release.
Only if the software deployment is
RR=True, unlock controller-0.~(keystone_admin)]$ system host-unlock controller-0
The host will now reboot into the new software release. Wait for the host to finish rebooting and become enabled. This may take 3-5 mins depending on hardware.
Verify the deployment state for both controllers.
For a full product release deployment:
~(keystone_admin)]$ software deploy show
Verify that the deployment is transitioning from
|prod|-<current-release>to|prod|-nn.nn, thatRRis set toTrue, and that the deployment state isdeploy-host.~(keystone_admin)]$ software deploy host-list
Verify that
controller-0andcontroller-1have reached thedeploy-host-deployedstate, and thatstorage-0,storage-1,worker-0, andworker-1remain in thedeploy-host-pendingstate.For a partial metapackage deployment:
~(keystone_admin)]$ software deploy show +----------------------------------------------------+-------+-------------+------------------+ | Releases | RR | Pre-Upgrade | State | +----------------------------------------------------+-------+-------------+------------------+ | Metapackage From Release To Release | False | False | deploy-host | | ------------- -------------- ---------- | | | | | base <current-release> nn.nn | | | | | infra <current-release> nn.nn | | | | +----------------------------------------------------+-------+-------------+------------------+
~(keystone_admin)]$ software deploy host-list +--------------+-------------------------+------------------+-------+-------------+----------------------+ | Host | From Release | To Release | RR | Pre-Upgrade | State | +--------------+-------------------------+------------------+-------+-------------+----------------------+ | controller-0 | <current-release> | nn.nn | False | False | deploy-host-deployed | | controller-1 | <current-release> | nn.nn | False | False | deploy-host-deployed | +--------------+-------------------------+------------------+-------+-------------+----------------------+
Check the system health to ensure that there are no unexpected alarms.
~(keystone_admin)]$ fm alarm-list
Clear all the alarms unrelated to the upgrade process.
If storage hosts are present, deploy the new software release to the storage hosts one at a time.
Deploy the new software release to storage-0.
Only if the software deployment is
RR=True, lock storage-0.~(keystone_admin)]$ system host-lock storage-0
Deploy the new software release to storage-0.
~(keystone_admin)]$ software deploy host storage-0 Host installation request sent to storage-0. Host installation was successful on storage-0.
After this command completes:
If
RR=True, the host is still running the old software release, however boot parameters have been updated to boot into the new software release on the next host reboot, which will occur in the next step which unlocks the host.If
RR=False, the host is running the new software release.
Only if the software deployment is
RR=True, unlock storage-0.~(keystone_admin)]$ system host-unlock storage-0
The host will now reboot into the new software release. Wait for the host to finish rebooting and become enabled. Wait for all alarms to clear after the unlock before proceeding to the next storage host. This may take 3-5 mins depending on hardware.
Display state of software deployment.
For a full product release deployment:
~(keystone_admin)]$ software deploy show
Verify that the deployment is transitioning from
|prod|-<current-release>to|prod|-nn.nn, thatRRis set toTrue, and that the deployment state isdeploy-host.~(keystone_admin)]$ software deploy host-list
Verify that
controller-0,controller-1, andstorage-0have reached thedeploy-host-deployedstate, and thatstorage-1,worker-0, andworker-1remain in thedeploy-host-pendingstate.For a partial metapackage deployment:
~(keystone_admin)]$ software deploy show +-------------------------------------------------------+-------+-------------+------------------+ | Releases | RR | Pre-Upgrade | State | +-------------------------------------------------------+-------+-------------+------------------+ | Metapackage From Release To Release | False | False | deploy-host | | ------------- -------------- ---------- | | | | | base <current-release> nn.nn | | | | | infra <current-release> nn.nn | | | | +-------------------------------------------------------+-------+-------------+------------------+
~(keystone_admin)]$ software deploy host-list +--------------+-------------------------+------------------+-------+-------------+----------------------+ | Host | From Release | To Release | RR | Pre-Upgrade | State | +--------------+-------------------------+------------------+-------+-------------+----------------------+ | controller-0 | <current-release> | nn.nn | False | False | deploy-host-deployed | | storage-0 | <current-release> | nn.nn | False | False | deploy-host-pending | +--------------+-------------------------+------------------+-------+-------------+----------------------+
Repeat the above steps for each storage host.
Note
After upgrading the first storage host, you can expect alarm 800.003. The alarm is cleared after all the storage hosts are upgraded.
If worker hosts are present, deploy the new software release to worker hosts one at a time.
Deploy the new software release to worker-0.
Only if the software deployment is
RR=True, lock worker-0.~(keystone_admin)]$ system host-lock worker-0
Deploy the new software release to worker-0.
~(keystone_admin)]$ software deploy host worker-0 Host installation request sent to worker-0. Host installation was successful on worker-0.
After this command completes:
If
RR=True, the host is still running the old software release, however boot parameters have been updated to boot into the new software release on the next host reboot, which will occur in the next step which unlocks the host.If
RR=False, the host is running the new software release.
Only if the software deployment is
RR=True, unlock worker-0.~(keystone_admin)]$ system host-unlock worker-0
The host will now reboot into the new software release. Wait for the host to finish rebooting and become enabled. Wait for all alarms to clear after the unlock before proceeding to the next worker host. This may take 3-5 mins depending on hardware.
Display state of software deployment.
For a full product release deployment:
~(keystone_admin)]$ software deploy show
Verify that the deployment is transitioning from
|prod|-<current-release>to|prod|-nn.nn, thatRRis set toTrue, and that the deployment state isdeploy-host.~(keystone_admin)]$ software deploy host-list
Verify that
controller-0,controller-1,storage-0,storage-1, andworker-0have reached thedeploy-host-deployedstate, and thatworker-1remains in thedeploy-host-pendingstate.For a partial metapackage deployment:
~(keystone_admin)]$ software deploy show +-----------------------------------------------------+-------+-------------+------------------+ | Releases | RR | Pre-Upgrade | State | +-----------------------------------------------------+-------+-------------+------------------+ | Metapackage From Release To Release | False | False | deploy-host | | ------------- -------------- ------------ | | | | | base <current-release> nn.nn | | | | | infra <current-release> nn.nn | | | | +-----------------------------------------------------+-------+-------------+------------------+
~(keystone_admin)]$ software deploy host-list +--------------+---------------------------+--------------+-------+-------------+-----------------------+ | Host | From Release | To Release | RR | Pre-Upgrade | State | +--------------+---------------------------+--------------+-------+-------------+-----------------------+ | controller-0 | <current-release> | nn.nn | False | False | deploy-host-deployed | | worker-0 | <current-release> | nn.nn | False | False | deploy-host-pending | +--------------+---------------------------+--------------+-------+-------------+-----------------------+
Repeat the above steps for each worker host until the deployment state is
deploy-host-done.For a full product release deployment:
~(keystone_admin)]$ software deploy show
Verify that the deployment is transitioning from
|prod|-<current-release>to|prod|-nn.nn, thatRRis set toTrue, and that the deployment state isdeploy-host-done.~(keystone_admin)]$ software deploy host-list
Verify that
controller-0,controller-1,storage-0,storage-1,worker-0, andworker-1all have reached thedeploy-host-deployedstate.For a partial metapackage deployment:
~(keystone_admin)]$ software deploy show +-----------------------------------------------------+-------+-------------+------------------+ | Releases | RR | Pre-Upgrade | State | +-----------------------------------------------------+-------+-------------+------------------+ | Metapackage From Release To Release | False | False | deploy-host-done | | ------------- -------------- ------------ | | | | | base <current-release> nn.nn | | | | | infra <current-release> nn.nn | | | | +-----------------------------------------------------+-------+-------------+------------------+
~(keystone_admin)]$ software deploy host-list +--------------+--------------------------+------------+-------+-------------+----------------------+ | Host | From Release | To Release | RR | Pre-Upgrade | State | +--------------+--------------------------+------------+-------+-------------+----------------------+ | controller-0 | <current-release> | nn.nn | False | False | deploy-host-deployed | | controller-1 | <current-release> | nn.nn | False | False | deploy-host-deployed | | worker-0 | <current-release> | nn.nn | False | False | deploy-host-deployed | | worker-1 | <current-release> | nn.nn | False | False | deploy-host-deployed | +--------------+--------------------------+------------+-------+-------------+----------------------+
Switch the activity from controller-1 such that controller-0 becomes active.
~(keystone_admin)]$ system host-swact controller-1
Wait for the activity to switch to controller-0. This may take up to a minute depending on hardware.
Reconnect to the system using the floating OAM IP address, as the active controller has changed.
Activate the software deployment.
~(keystone_admin)]$ software deploy activate Deploy activate has started
When running the software deploy activate command, new configurations are applied to the controller. The 250.001 (Configuration is out-of-date) alarms are raised and are cleared as the configurations are applied.
The software deployment state goes from
deploy-activatetodeploy-activate-doneonce deployment is activated. For a major release software deployment, this may take up to 15-30 mins to complete depending on system configuration and hardware.For a full product release deployment:
~(keystone_admin)]$ software deploy show
Verify that the output shows the deployment transitioning from StarlingX-<current-release> to StarlingX-nn.nn with
RR=Trueand a state ofdeploy-activate-done.For a partial metapackage deployment:
~(keystone_admin)]$ software deploy show +--------------------------------------------------------+-------+-------------+----------------------+ | Releases | RR | Pre-Upgrade | State | +--------------------------------------------------------+-------+-------------+----------------------+ | Metapackage From Release To Release | False | False | deploy-activate-done | | ------------- -------------- ------------ | | | | | base <current-release> nn.nn | | | | | infra <current-release> nn.nn | | | | +--------------------------------------------------------+-------+-------------+----------------------+
Note
If software deploy activate fails, that is, if the state is
deploy-activate-failed, review/var/log/software.logon the active controller for failure details, address the issues, and re-execute thesoftware deploy activatecommand.Complete the software deployment.
~(keystone_admin)]$ software deploy complete Deployment has been completed
For a full product release deployment:
~(keystone_admin)]$ software deploy show
Verify that the output shows the deployment transitioning from StarlingX-<current-release> to StarlingX-nn.nn with
RR=Trueand a state ofdeploy-completed.For a partial metapackage deployment:
~(keystone_admin)]$ software deploy show +----------------------------------------------------------+-------+-------------+------------------+ | Releases | RR | Pre-Upgrade | State | +----------------------------------------------------------+-------+-------------+------------------+ | Metapackage From Release To Release | False | False | deploy-completed | | ------------- -------------- ------------ | | | | | base <current-release> nn.nn | | | | | infra <current-release> nn.nn | | | | +----------------------------------------------------------+-------+-------------+------------------+
Note
After this command is executed, you can run the Kubernetes version upgrade procedure, if desired to upversion to new Kubernetes versions available in the new software release.
Delete the software deployment.
Note
For a major release deployment, after this command is executed, the major release software deployment cannot be rolled back.
~(keystone_admin)]$ software deploy delete Deployment has been deleted
~(keystone_admin)]$ software deploy show No deploy in progress
Results
The software deployment is complete. All hosts are running the new software
release and the deployment state shows no deploy in progress. The software
list confirms the new release is in the deployed state.
Note
After the deploy delete, if there are previous release entries in the
unavailable state, the alarm 900.024 Obsolete release in system is
raised.
Postrequisites
Note
Do not delete any previous release(s) from the System Controller while there are subclouds running those release(s).
In the case of software deployment of a new major release, you should remove the old major release to reclaim disk space.
~(keystone_admin)]$ software list
The output of software list shows StarlingX-<current-release> in the
unavailable state and StarlingX-nn.nn in the deployed state.
~(keystone_admin)]$ software delete StarlingX-<current-release> StarlingX-<current-release> has been deleted. ~(keystone_admin)]$ software list
After deletion, the output of software list shows only
StarlingX-nn.nn in the deployed state.