Software Upgrades

F5OS-C System Controller Upgrades

The system controllers are fully redundant, however during software upgrades there can be outages of the entire chassis with the initial 1.1.x releases of F5OS. v1.2.x versions of F5OS-C have introduced a rolling upgrade capability for the system controller upgrade process, which minimizes disruption to the chassis. The chassis must be already running a version of F5OS 1.2.x or later to take advantage of this capability. Upgrades from 1.1.x versions to a 1.2.x version will not see rolling upgrade functionality.

This means that both system controllers will be updated at the same time thus causing an outage for all services within that chassis when running v1.1.x F5OS versions. For this reason, it is recommended you upgrade the system controllers during outage window and fail over all services to the other chassis that is paired with the one you’re upgrading. For 1.2.x and later upgrades of F5OS-C on the system controllers a rolling upgrade occurs where the standby controllers is upgraded first, and when completed thit will go to an acitve state, and the remaining controller will be upgraded.

When upgrading the system controllers, you will have a choice of upgrading either a bundled release meaning OS and Services are bundled together in an ISO image or unbundled where you can upgrade service and/or OS independently. F5 recommends using the bundled / ISO option for upgrades at this time. In the future, unbundled options may be utilized for some upgrades.

_images/image138.png _images/image227.png

The outage for a service only upgrade on the system controller is smaller than if the entire OS was upgraded. A service upgrade will not cause a reboot of the controllers, where an OS upgrade will. If the OS does not need to be upgraded to address an issue, then you can choose to only upgrade the services. The OS is more of the container/OS layer, where most of the F5 specific code is in the service layer. Most upgrades currently require both service and OS to be upgraded, but in the future this service vs. OS upgrades may become available. Upgrades are easily accomplished via the system controller UI. First you would upload F5OS images for both the controllers as well as the partitions into the system controllers.

Uploading Controller and Partition Images via the webUI

You can do this from the Software Management -> Partitions Image and Controller Images pages.

_images/image322.png _images/image419.png

Click Add and you will be prompted to provide the configuration details for a remote HTTPS server where the images can be downloaded from. You will need to have a remote HTTPS server that allows downloads in order to import images into the system via the webUI. You can alternatively use the Upload option to upload an F5OS-C system controller or partition ISO file form a client machine through the browser.

You can also upload or import F5OS-C images for both the system controllers and the chassis partitions using the System Settings > File Utilities page.

_images/image510.png

Alternatively, you may also upload images to the controller through the System Settings -> File Utilities page. You can select the images/staging option form the drop-down menu to import new controller or partition images. Once uploaded into the staging area they will be imported and made available for upgrades after a brief delay.

_images/image610.png

After the upload completes, it will take some time for it to be replicated to the standby system controller. At that point it should show up in the CLI and webUI. If you don’t see it immediately, be patient and wait a few minutes for it to show up, as it will not appear until the internal replication is completed.

Uploading Controller and Partition Images via the CLI

The current implementation of file import in the CLI relies on either a remote HTTPS, SCP, or SFTP server hosting the image files to be imported. The files should be imported into the images/staging directory. Once the file import is initiated, you can check its status using the file transfer-status command.

syscon-2-active# file import remote-host 10.255.0.142 remote-file /upload/F5OS-C-1.2.1-10781.CONTROLLER.iso local-file images/staging/F5OS-C-1.2.1-10781.CONTROLLER.iso username corpuser insecure

syscon-2-active# file transfer-status
result
S.No.|Operation  |Protocol|Local File Path                                             |Remote Host         |Remote File Path                                            |Status            |Time
1    |Import file|HTTPS   |images/staging/F5OS-C-1.2.1-10781.CONTROLLER.iso            |10.255.0.142        |/upload/F5OS-C-1.2.1-10781.CONTROLLER.iso                   |In Progress (5.0%)|Thu Sep 16 17:11:51 2021
2    |Import file|HTTPS   |images/import/iso/F5OS-C-1.2.1-10781.CONTROLLER.iso         |10.255.0.142        |uploads/F5OS-C-1.2.1-10781.CONTROLLER.iso                   |File Not Found, HTTP Error 404|Thu Sep 16 16:18:27 2021

You can alternatively copy the controller and partition images into the floating IP address of the system controllers. You would use the root account and the target directory should be /var/import/staging/.

root@xubuntu-vm# scp F5OS-C-1.2.1-10781.CONTROLLER.iso root@10.255.0.147:/var/import/staging/.

root@xubuntu-vm# scp F5OS-C-1.2.1-10781.PARTITION.iso root@10.255.0.147:/var/import/staging/.

Uploading Controller and Partition Images via the API

As with the webUI, the current implementation of file import in the API relies on either a remote HTTPS, SCP, or SFTP server hosting the image files to be imported. The files should be imported into the images/staging directory. Once the file import is initiated you can check its status using the file transfer-status API calls.

List the current system controller and partitions images in the images/staging directory via API calls:

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/f5-utils-file-transfer:file/list

The following JSON should be in the payload of the API call above.

{
"f5-utils-file-transfer:path": "images/staging"
}

Below is an example output:

{
    "f5-utils-file-transfer:output": {
        "entries": [
            {
                "name": "\nBIGIP-14.1.4.2-0.0.5.ALL-VELOS.qcow2.zip.bundle\nF5OS-C-1.1.2-6101.PARTITION.iso\nF5OS-C-1.2.0-10357.CONTROLLER.iso\nF5OS-C-1.2.0-10357.PARTITION.iso\nF5OS-C-1.2.0-6345.PARTITION.DEV.iso\nF5OS-C-1.2.0-6433.CONTROLLER.DEV.iso\nF5OS-C-1.2.0-6435.CONTROLLER.DEV.iso\nF5OS-C-1.2.0-7091.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.0-7091.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.0-7451.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.0-7451.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.0-8813.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.0-9003.PARTITION.iso\nF5OS-C-1.2.0-9496.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.0-9496.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.1-10692.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.1-10692.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.1-10781.PARTITION.iso\ncontroller.1.1.2-6101.iso"
            }
        ]
    }
}

You can then query the images/import directory for various image types like ISO, Service, or OS:

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/f5-utils-file-transfer:file/list
{
"f5-utils-file-transfer:path": "images/import/iso"
}

Below is an example output:

{
    "f5-utils-file-transfer:output": {
        "entries": [
            {
                "name": "\nBIGIP-14.1.4.2-0.0.5.ALL-VELOS.qcow2.zip.bundle\nF5OS-C-1.1.2-6101.PARTITION.iso\nF5OS-C-1.2.0-10357.CONTROLLER.iso\nF5OS-C-1.2.0-10357.PARTITION.iso\nF5OS-C-1.2.0-6345.PARTITION.DEV.iso\nF5OS-C-1.2.0-6433.CONTROLLER.DEV.iso\nF5OS-C-1.2.0-6435.CONTROLLER.DEV.iso\nF5OS-C-1.2.0-7091.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.0-7091.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.0-7451.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.0-7451.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.0-8813.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.0-9003.PARTITION.iso\nF5OS-C-1.2.0-9496.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.0-9496.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.1-10692.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.1-10692.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.1-10781.PARTITION.iso\ncontroller.1.1.2-6101.iso"
            }
        ]
    }
}

To import images, use the following API examples for controller and partition images. To import the controller image:

POST https://{{velos_chassis1_system_controller_ip}}:8888/api/data/f5-utils-file-transfer:file/import
{
    "input": [
        {
            "remote-host": "10.255.0.142",
            "remote-file": "/upload/{{Controller_ISO_Image_Full}}",
            "local-file": "images/staging/",
            "insecure": "",
            "f5-utils-file-transfer:username": "corpuser",
            "f5-utils-file-transfer:password": "Passw0rd!!"
        }
    ]
}

To import the partition image:

POST https://{{velos_chassis1_system_controller_ip}}:8888/api/data/f5-utils-file-transfer:file/import
{
    "input": [
        {
            "remote-host": "10.255.0.142",
            "remote-file": "/upload/{{Partition_ISO_Image_Full}}",
            "local-file": "images/staging/",
            "insecure": "",
            "f5-utils-file-transfer:username": "corpuser",
            "f5-utils-file-transfer:password": "password"
        }
    ]
}

You can then check on the file transfer status with the following API call:

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/f5-utils-file-transfer:file/transfer-status

A response like the one below will provide the status of the transfer:

{
    "f5-utils-file-transfer:output": {
        "result": "\nS.No.|Operation  |Protocol|Local File Path  |Remote Host |Remote File Path                                        |Status            |Time                \n1    |
Import file|HTTPS   |images/staging/F5OS-C-1.2.1-10781.PARTITION.iso |10.255.0.142 |/upload/F5OS-C-1.2.1-10781.PARTITION.iso                    |File Not Found, HTTP Error 404|Thu Sep 16 20:27:23 2021\n2
|Import file|HTTPS   |images/staging/F5OS-C-1.2.1-10781.CONTROLLER.iso            |10.255.0.142        |F5OS-C-1.2.1-10781.CONTROLLER.iso                           |File Not Found, HTTP Error 404|Thu Sep 16 20:19:56 2021\n3
|Import file|HTTPS   |images/import/iso/F5OS-C-1.2.1-10781.CONTROLLER.iso         |10.255.0.142        |uploads/F5OS-C-1.2.1-10781.CONTROLLER.iso                   |File Not Found, HTTP Error 404|Thu Sep 16 16:18:27 2021\n4
|Import file|HTTPS   |images/staging/F5OS-C-1.2.1-10781.CONTROLLER.iso            |10.255.0.142        |/upload/F5OS-C-1.2.1-10781.CONTROLLER.iso                   |         Completed|Thu Sep 16 20:24:26 2021\n"
    }
}

After transferring the file you can view the contents of the images/staging directory. The file will then go through an import process before it is ready for use.

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/f5-utils-file-transfer:file/list
{
"f5-utils-file-transfer:path": "images/staging"
}

You will see all the files in the images/staging directory:

{
    "f5-utils-file-transfer:output": {
        "entries": [
            {
                "name": "\nF5OS-C-1.2.0-10357.CONTROLLER.iso\nF5OS-C-1.2.0-10357.PARTITION.iso\nF5OS-C-1.2.1-10692.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.1-10692.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.1-10781.CONTROLLER.iso\ncontroller.1.1.2-6101.iso"
            }
        ]
    }
}

You can then monitor the images/import/iso directory to see when the file is ready to use for upgrade:

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/f5-utils-file-transfer:file/list
{
"f5-utils-file-transfer:path": "images/import/iso"
}

You’ll see output similar to the example below. Once the file shows up here you are ready to upgrade.

{
    "f5-utils-file-transfer:output": {
        "entries": [
            {
                "name": "\nF5OS-C-1.2.0-10357.CONTROLLER.iso\nF5OS-C-1.2.0-10357.PARTITION.iso\nF5OS-C-1.2.1-10692.CONTROLLER.CANDIDATE.iso\nF5OS-C-1.2.1-10692.PARTITION.CANDIDATE.iso\nF5OS-C-1.2.1-10781.CONTROLLER.iso\ncontroller.1.1.2-6101.iso"
            }
        ]
    }
}

Upgrading the System Controllers via webUI

Once the new images are loaded, you can perform the upgrade from the System Settings > Controller Management screen. Currently it is recommended you use the Bundled option to upgrade using the ISO. In the future, there may be cases where Unbundled (separate OS or Service upgrades) are recommended. Once you click Save the upgrade process will begin. For F5OS versions 1.1.x there is no rolling upgrade support and both controllers will reboot immediately taking the entire chassis offline. For F5OSv1.2 rolling upgrade support has been added, but you must be on a v1.2.x release or later to take advantage of this new functionality. With rolling upgrade support traffic disruption should be minimal during the upgrade process.

_images/image710.png

Upgrading the System Controllers via CLI

In the system controller CLI you can use the show image command to see the currently installed software versions for each system controller.

syscon-1-active# show image
VERSION OS                                   IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.2-6101   1           ready               false
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  false
1.2.1-10781  1           ready   2021-09-01  true

VERSION
SERVICE                                      IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.0-6101   1           ready   2021-05-09  false
1.1.2-6101   1           ready   2021-05-09  false
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  false
1.2.1-10781  1           ready   2021-09-01  true

VERSION ISO                                  IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.2-6101   1           ready   2021-05-09  false
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  false
1.2.1-10781  1           ready   2021-09-01  false

VERSION OS                                   IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.2-6101   2           ready   2021-05-09  false
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  false
1.2.1-10781  2           ready   2021-09-01  true

VERSION
SERVICE                                      IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.0-6101   2           ready   2021-05-09  false
1.1.2-6101   2           ready   2021-05-09  false
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  false
1.2.1-10781  2           ready   2021-09-01  true

VERSION ISO                                  IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.2-6101   2           ready   2021-05-09  false
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  false
1.2.1-10781  2           ready   2021-09-01  false

VERSION OS                                   IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME  ID
--------------------------------------------------------------
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  false

VERSION
SERVICE                                      IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME     ID
-----------------------------------------------------------------
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  true   default  1

VERSION ISO                                  IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME            ID
------------------------------------------------------------------------
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  true   Production    2
                                                    default         1
                                                    smallpartition  3

VERSION OS                                   IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME  ID
--------------------------------------------------------------
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  false

VERSION
SERVICE                                      IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME     ID
-----------------------------------------------------------------
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  true   default  1

VERSION ISO                                  IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME            ID
------------------------------------------------------------------------
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  true   Production    2
                                                    default         1
                                                    smallpartition  3

syscon-1-active#

The command show running-config image will show the current configuration for software images. You can enter config mode and change the configuration using the system image set-version command and then commit to initiate an upgrade.

syscon-1-active# show running-config image
image controller config os os 1.1.2-6101
!
image controller config os os 1.2.0-10357
!
image controller config os os 1.2.1-10692
!
image controller config os os 1.2.1-10781
!
image controller config services service 1.1.0-6101
!
image controller config services service 1.1.2-6101
!
image controller config services service 1.2.0-10357
!
image controller config services service 1.2.1-10692
!
image controller config services service 1.2.1-10781
!
image controller config iso iso 1.1.2-6101
service 1.1.2-6101
os      1.1.2-6101
!
image controller config iso iso 1.2.0-10357
service 1.2.0-10357
os      1.2.0-10357
!
image controller config iso iso 1.2.1-10692
service 1.2.1-10692
os      1.2.1-10692
!
image controller config iso iso 1.2.1-10781
service 1.2.1-10781
os      1.2.1-10781
!
image partition config os os 1.2.0-10357
!
image partition config os os 1.2.1-10692
!
image partition config services service 1.2.0-10357
!
image partition config services service 1.2.1-10692
!
image partition config iso iso 1.2.0-10357
service 1.2.0-10357
os      1.2.0-10357
!
image partition config iso iso 1.2.1-10692
service 1.2.1-10692
os      1.2.1-10692
!
syscon-1-active#
syscon-1-active(config)# system image set-version iso-version 1.2.1-10781
response Controller iso version has been set
syscon-1-active(config)#

An upgrade of the system controllers should automatically start after the above command is entered. You can follow the upgrade progress by issuing the command show system image:

syscon-2-active# show system image
                    SERVICE      ISO      INSTALL
NUMBER  OS VERSION   VERSION      VERSION  STATUS
--------------------------------------------------------
1       1.2.1-10692  1.2.1-10692  -        in-progress
2       1.2.1-10692  1.2.1-10692  -        pending

syscon-2-active#

Upgrading the System Controllers via API

To upgrade the system controllers via the API you must first run the check version API call with the version you want to update to:

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/openconfig-system:system/f5-system-controller-image:image/f5-system-controller-image:check-version
{
    "f5-system-controller-image:iso-version": "{{Controller_ISO_Image_Full}}"
}

If the compatability check passes then you will get a message like the one below, and it is safe to install the new image via the set-version API call:

{
    "f5-system-controller-image:output": {
        "response": "Compatibility verification succeeded."
    }
}

This is the Set Version API call that will initiate the upgrade:

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/openconfig-system:system/f5-system-controller-image:image/f5-system-controller-image:set-version
{
    "f5-system-controller-image:iso-version": "{{Controller_ISO_Image_Full}}"
}

If the upgrade is successful, you will get notification like the message below:

{
    "f5-system-controller-image:output": {
        "response": "Controller iso version has been set"
    }
}

Chassis Partition Upgrades

Upgrading a Chassis Partition via the webUI

Upgrade of chassis partitions is performed from the system controller webUI Partition Management screen. You must first click the checkmark next to the chassis partition you wish to upgrade and then click Edit. You’ll now be able perform either a bundled or unbundled software upgrade of the chassis partition. At this time a bundled upgrade using the ISO image is recommended. Once you click Save, the partition will be brought offline and back online after the upgrade. All tenants will be suspended during this time so an outage will occur for this chassis partition only.

_images/image810.png

Upgrading a Chassis Partition via the CLI

In the system controller CLI you can use the show image command to see the currently installed software versions for each chassis partition.

syscon-1-active# show image
VERSION OS                                   IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.2-6101   1           ready               false
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  false
1.2.1-10781  1           ready   2021-09-01  true

VERSION
SERVICE                                      IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.0-6101   1           ready   2021-05-09  false
1.1.2-6101   1           ready   2021-05-09  false
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  false
1.2.1-10781  1           ready   2021-09-01  true

VERSION ISO                                  IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.2-6101   1           ready   2021-05-09  false
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  false
1.2.1-10781  1           ready   2021-09-01  false

VERSION OS                                   IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.2-6101   2           ready   2021-05-09  false
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  false
1.2.1-10781  2           ready   2021-09-01  true

VERSION
SERVICE                                      IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.0-6101   2           ready   2021-05-09  false
1.1.2-6101   2           ready   2021-05-09  false
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  false
1.2.1-10781  2           ready   2021-09-01  true

VERSION ISO                                  IN
CONTROLLER   CONTROLLER  STATUS  DATE        USE
----------------------------------------------------
1.1.2-6101   2           ready   2021-05-09  false
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  false
1.2.1-10781  2           ready   2021-09-01  false

VERSION OS                                   IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME  ID
--------------------------------------------------------------
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  false

VERSION
SERVICE                                      IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME     ID
-----------------------------------------------------------------
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  true   default  1

VERSION ISO                                  IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME            ID
------------------------------------------------------------------------
1.2.0-10357  1           ready   2021-08-21  false
1.2.1-10692  1           ready   2021-08-30  true   Production    2
                                                    default         1
                                                    smallpartition  3

VERSION OS                                   IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME  ID
--------------------------------------------------------------
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  false

VERSION
SERVICE                                      IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME     ID
-----------------------------------------------------------------
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  true   default  1

VERSION ISO                                  IN
PARTITION    CONTROLLER  STATUS  DATE        USE    NAME            ID
------------------------------------------------------------------------
1.2.0-10357  2           ready   2021-08-21  false
1.2.1-10692  2           ready   2021-08-30  true   Production    2
                                                    default         1
                                                    smallpartition  3

syscon-1-active#

The command show running-config image will show the current configuration for software images. You can enter config mode and change the configuration using the system image set-version command and then commit to initiate an upgrade.

Upgrading a Chassis Partition via the API

To upgrade a chassis partition via the API you must first run the check version API call with the version you want to update to:

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/f5-system-partition:partitions/partition=Production/check-version
{
    "input": {
        "iso-version": "{{Partition_ISO_Image}}"
    }
}

If the compatability check then you will get a message like the one below, and it is safe to install the new image via the set-version API call:

{
    "f5-system-partition:output": {
        "result": "Partition upgrade compatibility check succeeded."
    }
}

This is the Set Version API call that will initiate the upgrade:

POST https://{{velos_chassis1_system_controller_ip}}:8888/restconf/data/f5-system-partition:partitions/partition=Production/set-version
{
    "input": {
        "iso-version": "{{Partition_ISO_Image}}"
    }
}

If the upgrade is successful, you will get notification like the message below:

{
    "f5-system-partition:output": {
        "result": "Version update successful."
    }
}

Tenant Images and Upgrades

Tenant software images are loaded directly into each chassis partition. If you have more than one chassis partition, you’ll need to load tenant images for each one independently. The first release of VELOS only supported TMOS v14.1.4, and 15.1.4 support has been added with the release of F5OS v1.2.1. No other TMOS versions are supported other than hotfixes or rollups based on those versions of software.

Before deploying any tenant, you must ensure you have a proper tenant software release loaded into the chassis partition. Under Tenant Management there is a page for uploading tenant software images. There are TMOS images specifically for VELOS. Only supported VELOS TMOS releases should be loaded into this system. Do not attempt to load older or even newer images unless there are officially supported on VELOS.

There is an option to Add new releases which will open a pop-up window that will ask for remote host, path and optional authentication parameters. You may only upload from a remote HTTPS server using the webUI in the current VELOS release. The Tenant Images page will also indicate of an image is in use by a tenant, and if it is replicated to other blades in the chassis partition.

_images/image910.png _images/image109.png

If an HTTPS server is not available, you may upload a tenant image using scp directly to the chassis partition. Simply scp an image to the chassis partitions out-of-band management IP address using the admin account and a path of IMAGES.

scp BIGIP-bigip14.1.x-tmos-bugfix-14.1.3.1-0.0.586.ALL-VELOS.qcow2.zip.bundle admin@10.255.0.148:IMAGES

You may also import the tenant image file from the chassis partition CLI. Use the file import command to get the tenant image file from a remote HTTPS server. You must do this for each chassis partition:

Production# file import remote-host 10.255.0.142 remote-file /upload/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle local-file images/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle username corpuser insecure

Repeat for other chassis partitions:

smallpartition# file import remote-host 10.255.0.142 remote-file /upload/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle local-file images/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle username corpuser insecure

The command file transfer-status will provide details of the transfer progress and any errors:

Production-1# file import remote-host 10.255.0.142 remote-file /upload/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle local-file images/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle username corpuser insecure
Value for 'password' (<string>): ********
result File transfer is initiated.(images/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle)



Production-1# file transfer-status
result
S.No.|Operation  |Protocol|Local File Path                                             |Remote Host         |Remote File Path                                            |Status            |Time
1    |Import file|HTTPS   |images/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle       |10.255.0.142        |/upload/BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle      |In Progress (15.0%)|Fri Sep 17 15:36:29 2021

You can view the current tenant images and their status in the chassis partition CLI:

Production-1# show images
                                                                        IN
NAME                                                                       USE    STATUS
----------------------------------------------------------------------------------------------
BIGIP-14.1.3-0.0.7.ALL-VELOS.qcow2.zip.bundle                              false  replicated
BIGIP-14.1.4-0.0.619.ALL-VELOS.qcow2.zip.bundle                            true   replicated
BIGIP-bigip14.1.x-tmos-bugfix-14.1.3.1-0.0.586.ALL-VELOS.qcow2.zip.bundle  false  replicated

To copy a tenant image into a chassis partition, use the following API call to the chassis partition IP address:

POST https://{{velos_chassis1_chassis_partition1_ip}}:8888/api/data/f5-utils-file-transfer:file/import
{
    "input": [
        {
            "remote-host": "10.255.0.142",
            "remote-file": "upload/{{Tenant_Image}}",
            "local-file": "images/{{Tenant_Image}}",
            "insecure": "",
            "f5-utils-file-transfer:username": "corpuser",
            "f5-utils-file-transfer:password": "Passw0rd!!"
        }
    ]
}

To list the current tenant images available on the chassis partition use the following API Call:

GET https://{{velos_chassis1_chassis_partition1_ip}}:8888/restconf/data/f5-tenant-images:images

Below is output generated from the previous command:

{
    "f5-tenant-images:images": {
        "image": [
            {
                "name": "BIGIP-15.1.4-0.0.46.ALL-VELOS.qcow2.zip.bundle",
                "in-use": true,
                "status": "replicated"
            },
            {
                "name": "BIGIP-15.1.4-0.0.47.ALL-VELOS.qcow2.zip.bundle",
                "in-use": false,
                "status": "replicated"
            }
        ]
    }
}

Tenants are upgraded via the normal TMOS upgrade process. Find the proper ISO image and ensure it is of a supported VELOS release, and upload it into the TMOS tenant. Once uploaded you can upgrade and boot into the new version. Currently VELOS does not allow an upgrade of the tenant from inside the F5OS layer, you must perform the upgrade from inside the tenant.

NOTE: Currently VELOS does not provide a shared image repository for all tenants to upgrade from. With vCMP guests, VIPRION allowed for an image to be loaded once into the host layer, and all tenants had access to that repository to use to upgrade.