Orchestrated Combined Host Software Deployment and Kubernetes Upgrade

Overview

Host Software deployment orchestration can optionally include a Kubernetes version upgrade as part of the same strategy. This eliminates the need to run a separate kube-upgrade-strategy command after the host software deployment completes.

When the --kube-upgrade option is specified on the sw-manager sw-deploy-strategy create command, the system orchestrates both the software deployment and the Kubernetes upgrade in the correct order for the system type.

Note

The orchestrated combined host software deployment and kubernetes upgrade is only supported for AIO-SX systems, for AIO-DX and standard systems the legacy serial host software deployment and kubernetes upgrade will be performed by the orchestration/strategy.

On AIO-SX systems, the Kubernetes control-plane upgrade runs before the software deployment. The kubelet upgrade happens automatically during the host unlock as part of the new software load.

On AIO-DX and standard systems, the full software deployment runs first on all hosts, and then the Kubernetes upgrade proceeds sequentially after the system stabilizes.

Note

The rollback option is only available for AIO-SX systems. For AIO-DX and standard (multi-node) systems, rollback of the Kubernetes upgrade is not supported, so the combined software deployment and Kubernetes upgrade cannot be rolled back once applied. If --delete is not specified on an AIO-SX system, you retain the option of rolling back after the strategy completes; otherwise, clean up afterward by creating a separate strategy with the --cleanup option.

Note

For orchestrating the combined software deployment and Kubernetes upgrade of subclouds in a Distributed Cloud system, see Deploy a Combined Software and Kubernetes Upgrade Across Subclouds.

After the software is deployed and the Kubernetes upgrade completes on all hosts, the strategy will optionally complete and delete the Kubernetes upgrade, the software deployment, and the system-deploy record if the --delete option was specified.

Note

If --delete is not specified, after the strategy completes, you still have the option of rolling back, otherwise you can clean up afterward by creating a separate strategy with the --cleanup option.

The following table summarizes what the combined strategy supports by system type.

System type

Combined (host + K8s) orchestration

LVM snapshot

Rollback

AIO-SX

Parallel (control-plane before software deployment)

Supported

Supported

AIO-DX

Legacy serial (software deployment, then K8s upgrade)

Not supported

Not supported

Standard (multi-node)

Legacy serial (software deployment, then K8s upgrade)

Not supported

Not supported

Prerequisites

  • No other orchestration strategy exists. A combined software deployment and Kubernetes upgrade cannot be orchestrated while another orchestration is in progress.

  • You have the administrator role privileges.

  • The system is clear of alarms (except alarm 900.023 indicating the software deployment in progress and alarm 900.007 indicating the Kubernetes upgrade in progress, in case of a previous strategy execution).

  • All the hosts are unlocked, enabled, and available.

  • For duplex systems, the system should be fully redundant. There should be two controller nodes available, at least one complete storage replication group available for systems with Ceph backend.

  • The target software release has been uploaded.

    ~(keystone_admin)]$ software list
    +--------------------------+-------+-----------+
    | Release                  | RR    |   State   |
    +--------------------------+-------+-----------+
    | starlingx-12.0.0         | True  | deployed  |
    | <new-release-id>         | True  | available |
    +--------------------------+-------+-----------+
    
  • The target Kubernetes version is available on the system.

    ~(keystone_admin)]$ system kube-version-list
    +----------+--------+-------------+
    | version  | target | state       |
    +----------+--------+-------------+
    | v1.29.2  | False  | unavailable |
    | v1.30.6  | False  | unavailable |
    | v1.31.5  | False  | unavailable |
    | v1.32.2  | False  | unavailable |
    | v1.32.13 | True   | active      |
    | v1.33.0  | False  | available   |
    | v1.34.1  | False  | available   |
    | v1.35.2  | False  | available   |
    +----------+--------+-------------+
    
  • No existing Kubernetes upgrade is in progress past the control-plane phase. If a previous Kubernetes upgrade was aborted, it will be cleaned up automatically during the build phase.

Procedure

  1. Create a combined software deployment and Kubernetes upgrade orchestration strategy.

    ~(keystone_admin)]$ sw-manager sw-deploy-strategy create <release> \
        --kube-upgrade <kube-version> \
        [--controller-apply-type {serial,ignore}] \
        [--storage-apply-type {serial,parallel,ignore}] \
        [--worker-apply-type {serial,parallel,ignore}] \
        [--max-parallel-worker-hosts {2,3,4,5,6,7,8,9,10}] \
        [--instance-action {stop-start,migrate}] \
        [--alarm-restrictions {strict,relaxed}] \
        [--delete]
        [--rollback]
        [--snapshot]
    

    where,

    <release>

    Specifies the target major software release to deploy.

    --kube-upgrade <kube-version>

    Specifies the target Kubernetes version to upgrade to.

    [--delete]

    (Optional) When specified, the strategy will finalize and delete the Kubernetes upgrade, the software deployment, and the system-deploy record after successful completion. When not specified for purposes of keeping the option to rollback available, these must be cleaned up manually or using the --cleanup option.

    All other options behave the same as described in Orchestrated Deployment Host Software Deployment.

  2. Wait for the build phase to complete.

    ~(keystone_admin)]$ sw-manager sw-deploy-strategy show
    Strategy Software Deploy Strategy:
      strategy-uuid:                          a1b2c3d4-e5f6-7890-abcd-ef1234567890
      release-id:                             <software-release-id>
      kube-version:                           <kube-version>
      controller-apply-type:                  serial
      storage-apply-type:                     serial
      worker-apply-type:                      serial
      default-instance-action:                stop-start
      alarm-restrictions:                     strict
      current-phase:                          build
      current-phase-completion:               100%
      state:                                  ready-to-apply
      build-result:                           success
      build-reason:
    

    Note

    If the build phase fails (build-result:  failed that will appear in the show command), determine the issue from the build error reason (build-reason: <Error information> that will appear in the show command) and/or in /var/log/nfv-vim*.log on the active controller, address the issues, delete the strategy, and retry the create.

  3. Apply the strategy.

    ~(keystone_admin)]$ sw-manager sw-deploy-strategy apply
    Strategy Software Deploy Strategy:
      strategy-uuid:                          a1b2c3d4-e5f6-7890-abcd-ef1234567890
      release-id:                             <software-release-id>
      kube-version:                           <kube-version>
      controller-apply-type:                  serial
      storage-apply-type:                     serial
      worker-apply-type:                      serial
      default-instance-action:                stop-start
      alarm-restrictions:                     strict
      current-phase:                          apply
      current-phase-completion:               0%
      state:                                  applying
      inprogress:                             true
    
  4. Monitor the strategy progress.

    ~(keystone_admin)]$ sw-manager sw-deploy-strategy show
    Strategy Software Deploy Strategy:
      strategy-uuid:                          a1b2c3d4-e5f6-7890-abcd-ef1234567890
      release-id:                             <software-release-id>
      kube-version:                           <kube-version>
      controller-apply-type:                  serial
      storage-apply-type:                     serial
      worker-apply-type:                      serial
      default-instance-action:                stop-start
      alarm-restrictions:                     strict
      current-phase:                          apply
      current-phase-completion:               7%
      state:                                  applying
      inprogress:                             true
    

    To see the active stage and step:

    ~(keystone_admin)]$ sw-manager sw-deploy-strategy show --active
    Strategy Software Deploy Strategy:
      strategy-uuid:                          a1b2c3d4-e5f6-7890-abcd-ef1234567890
      release-id:                             <software-release-id>
      kube-version:                           <kube-version>
      controller-apply-type:                  serial
      storage-apply-type:                     serial
      worker-apply-type:                      serial
      default-instance-action:                stop-start
      alarm-restrictions:                     strict
      current-phase:                          apply
      current-phase-completion:               7%
      state:                                  applying
      apply-phase:
        total-stages:                         3
        current-stage:                        0
        stop-at-stage:                        3
        timeout:                              12019 seconds
        completion-percentage:                7%
        start-date-time:                      2026-09-23 12:19:51
        inprogress:                           true
        stages:
            stage-id:                         0
            stage-name:                       sw-upgrade-start
            total-steps:                      3
            current-step:                     1
            timeout:                          1321 seconds
            start-date-time:                  2026-09-23 12:19:51
            inprogress:                       true
            steps:
                step-id:                      1
                step-name:                    start-upgrade
                timeout:                      1200 seconds
                start-date-time:              2026-09-23 12:19:51
                result:                       wait
                reason:
    
  5. Wait for the strategy to complete.

    ~(keystone_admin)]$ sw-manager sw-deploy-strategy show
    Strategy Software Deploy Strategy:
      strategy-uuid:                          a1b2c3d4-e5f6-7890-abcd-ef1234567890
      release-id:                             <software-release-id>
      kube-version:                           <kube-version>
      controller-apply-type:                  serial
      storage-apply-type:                     serial
      worker-apply-type:                      serial
      default-instance-action:                stop-start
      alarm-restrictions:                     strict
      current-phase:                          apply
      current-phase-completion:               100%
      state:                                  applied
      apply-result:                           success
      apply-reason:
    

    If the strategy fails, address the issue that caused the failure, then delete and re-create the strategy before attempting to apply it again.

    ~(keystone_admin)]$ sw-manager sw-deploy-strategy show --error-details
    
  6. Delete the completed strategy.

    ~(keystone_admin)]$ sw-manager sw-deploy-strategy delete
    Strategy deleted
    

Postrequisites

After a successful combined software deployment and Kubernetes upgrade:

  • Validate that the system and hosted applications are healthy.

  • Verify that Kubernetes is at the target version:

    ~(keystone_admin)]$ system kube-version-list
    

Strategy Cleanup Option

When the combined strategy is applied without the --delete option, the software deployment is not removed once the strategy completes. This leaves the rollback path available so that you can evaluate the system before committing to the upgrade.

After the strategy completes, perform a short evaluation to confirm the system is healthy. Based on that evaluation, you can either:

  • Roll back the deployment if issues are found, or

  • Complete (clean up) the deployment to finalize the upgrade once the system is confirmed healthy.

The --cleanup option creates a strategy that finalizes the Kubernetes upgrade, deletes the software deployment, and removes the system-deploy record. Use it when the combined strategy was applied without --delete and you have verified that the system is healthy and no rollback is needed.

The cleanup strategy can also be used to delete an aborted kube-upgrade, system-deploy, or software deployment when the strategy failed or was aborted before locking the hosts, and you do not want to continue with the upgrade and want to clear the system of upgrade-related alarms.

~(keystone_admin)]$ sw-manager sw-deploy-strategy create --cleanup