How to: Create a BIG-IP Next instance on VELOS system from Central Manager

Overview

You can easily create a BIG-IP Next instance on a VELOS system from BIG-IP Next Central Manager using a VELOS template.

Prerequisites

Before you create an instance from BIG-IP Next Central Manager, you must have:

Limitations

The BIG-IP Next Central Manager is unable to add VELOS systems as a virtualization provider, thus preventing the creation of new BIG-IP Next instances on VELOS systems. Refer to the following link for information regarding the workaround in Known issue.

Procedures

Download the bundle file

  1. Log in to MyF5

  2. From the top menu, click Resources and click Downloads.

  3. Read the end user license agreement and program terms and select the checkbox to agree to the terms.

  4. Click the Next button.

  5. From the Group list, select BIG-IP Next.

  6. From the Product Line select Central Manager and then select the version number from the Product Version list.

  7. Select the BIG-IP-Next-(version).tar.bundle.

  8. From the Download locations select the geographical location closest to you.

  9. Select an option to download the file, or copy the download link, to a location on your local system.

Update the VELOS system controller software

Update the system controller software (F5OS) to the required controller version.

  1. Log in to the system controller webUI using an account with admin access.

  2. On the left, click SYSTEM SETTINGS > Controller Management.

  3. For Update Software, select Bundled.

  4. For the ISO Image, select the full version release ISO image.

  5. Click Save.

The software on the system controllers is updated.

Create a VELOS chassis partition

  1. Log in to the system controller webUI using an account with admin access.

  2. On the left, click CHASSIS PARTITIONS.
    The Chassis Partitions screen opens with a graphical view of the VELOS chassis.

  3. On the chassis graphic, select the available blade where you want to create a partition.

  4. Click Create.

  5. For Name, type a name for the chassis partition.

  6. In the IPv4 section, type the values for IP Address, Prefix Length, and Gateway.

  7. In the IPv6 section, click Bundled. For the ISO image, select the previously uploaded software image to run on the chassis partition.

  8. Click Save.
    In the chassis partition list, for the new partition, the Operational State goes from Starting to Running.

You can now log into the chassis partition using its management IP address to access the partition webUI.

Log in to the VELOS chassis partition WebUI and upload the tenant image

  1. First-time login after creating a chassis partition requires using default credentials: for both the Username and Password, type admin, and click Login.

  2. When prompted, type a New Password, Confirm New Password, and then click Save.

  3. Login with the new Username and Password, and click Login. The F5OS|VELOS DASHBOARD opens.

Upload a tenant image onto the chassis partition

  1. With the DASHBOARD open, on the left, click TENANT MANAGEMENT > Tenant Images.

  2. Click Upload. The Tenant Images window opens.

  3. Select the bundle file.

  4. Click Open. The upload process starts.

After the upload to the VELOS partition is complete, the bundle file is unbundled into 1) an image file, and 2) a .yaml deployment file, and replicated across the blades assigned to the partition.

Create VLANs in the VELOS partition

  1. On the left, click NETWORK SETTINGS > VLANs. The screen displays VLANs configured for the chassis partition.

  2. Click Add.

  3. In the Name field, type a name for the VLAN.

  4. In the VLAN ID, type a number between 0-4096 for the VLAN. The VLAN ID identifies the traffic from hosts in the associated VLAN for an associated interface or LAG.

  5. Click Add VLAN to create the VLAN. The VLAN is created and displays in the VLAN list. You can use the VLANs when configuring interfaces and creating LAGs.

You can now deploy a tenant using the same chassis partition webUI.

Create the BIG-IP Next instance on BIG-IP Next Central Manager from the VELOS template

  1. Log in to BIG-IP Next Central Manager as admin, click the Workspace icon next to the F5 icon, and click Infrastructure.

  2. If you have not added any BIG-IP Next instances previously, click the + Start Adding Instances button.

  3. Click the Create a New Instance button. Review the requirements.

  4. Enter a hostname and an optional description to identify this instance.

  5. From the Instance Template list, select the VELOS Standalone template.

  6. Click the Start Creating button.

  7. Choose the VE/VELOS/rSeries Providers from the dropdown and then click Next.

  8. In VELOS Properties, enter the below details:

    1. Specify the Disk Size within a range of 10 GB and 30 GB.

    2. Specify the CPU Cores.

    3. Select the Tenant Image Name and Tenant Deployment File from the dropdown. The tenant image and deployment file are pre-configured in the VELOS Partition.

    4. Select the Slot IDs from the dropdown.

    5. Select the VLAN IDs from the dropdown.

  9. Click Next.

  10. In BIG-IP Next Instance Properties, provide the Management IP Address, Management Network Prefix Width, and the Gateway IP Address (Optional) for the instance and click the Next button.

  11. Click Networking, to configure the L1 Networks, VLANs and IP Addresses.

    1. Click L1 Networks

      • By default, one L1 Network is pre-configured in server settings with the Interface Name set as 1.1. You can modify the L1 Network Name and Interface Name, if required.

      • Click + Create, to create one or more L1 Networks, if required.

    2. Click VLANs

      • The VLANs are pre-configured from the VELOS Partition.

      • Choose the L1 Network from the dropdown.

    3. Click IP Addresses to configure IP Addresses then click + Create.

      • In Address, specify the IP address.

      • In Device Name, no need to specify the name.

      • Choose the VLAN from the dropdown.

  12. Provide the username and password for administration for this BIG-IP Next instance, confirm the password, and click Next.

  13. Review the summary of the configuration you created and if you’re ready to create this BIG-IP Next instance, click the Deploy button. Deployment can take up to 15 minutes.

Result

You can now manage this BIG-IP Next instance from BIG-IP Next Central Manager.

Prerequisites

Authenticate with the BIG-IP Next Central Manager API. For details refer to How to: Authenticate with the BIG-IP Next Central Manager API.

The request payload for creating an instance requires specific values for Templates, Images and .yaml files, Slot IDs, and VLANs.

  1. Use the following GET requests to get the list of available Templates, Images and .yaml files, Slot IDs, and VLANs using the respective endpoints.

    a. Get the available templates by sending a GET request to /api/v1/spaces/default/instances/initialization/templates endpoint.

    GET https://{{bigip_next_cm_mgmt_ip}}/api/v1/spaces/default/instances/initialization/templates
    

    The default template will be VELOS.

    b. Get the available Images and Deployment file by sending a GET request to /api/v1/spaces/default/providers/f5os/{{provider_id}}/images endpoint.

    GET https://{{bigip_next_cm_mgmt_ip}}/api/v1/spaces/default/providers/f5os/{{provider_id}}/images
    

    c. Get the slot_ids by sending a GET request to /api/v1/spaces/default/providers/f5os/{{provider_id}}/nodes endpoint.

    GET https://{{bigip_next_cm_mgmt_ip}}/api/v1/spaces/default/providers/f5os/{{provider_id}}/nodes
    

    d. Get the VLAN ids by sending a GET request to /api/v1/spaces/default/providers/f5os/{{provider_id}}/vlans endpoint.

    GET https://{{bigip_next_cm_mgmt_ip}}/api/v1/spaces/default/providers/f5os/{{provider_id}}/vlans
    
  2. Create instance by sending a POST request to /api/v1/spaces/default/instances/initialization endpoint.

    POST https://{{bigip_next_cm_mgmt_ip}}/api/v1/spaces/default/instances/initialization
    

    For the request payload, use the following example, modifying the values as required.

    Management Address is referred to as the IP Address of the instance. Instance_one_time_password is generated randomly.

    Click for payload ▶
    {
        "template_name": "default-standalone-velos",
        "parameters": {
            "instantiation_provider": [
                {
                    "id": "{{provider_id}}",
                    "name": "myvelos",
                    "type": "velos"
                }
            ],
            "velos_properties": [
                {
                    "tenant_image_name": "BIG-IP-Next-20.3.0-2.435.1",
                    "tenant_deployment_file": "BIG-IP-Next-20.3.0-2.435.1.yaml",
                    "vlan_ids": [
                        3651,
                        3652
                    ],
                    "slot_ids": [
                        1
                    ],
                    "disk_size": 16,
                    "cpu_cores": 4
                }
            ],
            "default_gateway": "xxx.xxx.xxx.xxx",
            "management_address": "xxx.xxx.xxx.xxx",
            "management_network_width": 24,
            "l1Networks": [
                {
                    "vlans": [
                        {
                            "selfIps": [
                                {
                                    "address": "1.2.3.4/24"
                                }
                            ],
                            "name": "ext-vlan-3651",
                            "tag": 3651
                        },
                        {
                            "selfIps": [
                                {
                                    "address": "5.6.7.8/24"
                                }
                            ],
                            "name": "int-vlan-3652",
                            "tag": 3652
                        }
                    ],
                    "l1Link": {
                        "linkType": "Interface",
                        "name": "1.1"
                    },
                    "name": "DefaultL1Network"
                }
            ],
            "management_credentials_username": "admin-cm",
            "management_credentials_password": "******",
            "instance_one_time_password": "********",
            "hostname": "myvelosinstance"
        }
    }
    
  3. Check the status of the instance creation task by sending a GET request to /api/v1/spaces/default/instances/initialization/tasks/path endpoint using the path of the task.

    GET https://{{bigip_next_cm_mgmt_ip}}/api/v1/spaces/default/instances/initialization/tasks/path
    
    Click for sample response ▶
    {
        "_links": {
            "self": {
                "href": "/v1/instances/tasks/d67bc289-21a0-4653-964c-b994505e3c3a"
            }
        },
        "created": "2024-05-23T20:29:41.951762Z",
        "id": "d67bc289-21a0-4653-964c-b994505e3c3a",
        "name": "instance creation",
        "payload": {
            "discovery": {
                "port": 5443,
                "address": "xxx.xxx.xxx.xxx",
                "device_user": "admin",
                "device_password": "*****",
                "management_user": "admin-cm",
                "management_password": "*****"
            },
            "onboarding": {
                "mode": "STANDALONE",
                "nodes": [
                    {
                        "password": "*****",
                        "username": "admin",
                        "managementAddress": "xxx.xxx.xxx.xxx"
                    }
                ],
                "l1Networks": [
                    {
                        "name": "DefaultL1Network",
                        "vlans": [
                            {
                                "tag": 3651,
                                "name": "ext-vlan-3651",
                                "selfIps": [
                                    {
                                        "address": "1.2.3.4/24"
                                    }
                                ],
                                "defaultVrf": true
                            },
                            {
                                "tag": 3652,
                                "name": "int-vlan-3652",
                                "selfIps": [
                                    {
                                        "address": "5.6.7.8/24"
                                    }
                                ],
                                "defaultVrf": true
                            }
                        ],
                        "l1Link": {
                            "name": "1.1",
                            "linkType": "Interface"
                        }
                    }
                ],
                "platformType": "VELOS"
            },
            "instantiation": {
                "Request": {
                    "F5osRequest": {
                        "provider_id": "10101569-0abb-42ce-a279-8af83586386b",
                        "provider_type": "velos",
                        "next_instances": [
                            {
                                "nodes": [
                                    1
                                ],
                                "vlans": [
                                    3651,
                                    3652
                                ],
                                "mgmt_ip": "xxx.xxx.xxx.xxx",
                                "timeout": 600,
                                "hostname": "myvelosinstance",
                                "cpu_cores": 4,
                                "disk_size": 16,
                                "mgmt_prefix": 24,
                                "mgmt_gateway": "xxx.xxx.xxx.xxx",
                                "admin_password": "*****",
                                "tenant_image_name": "BIG-IP-Next-20.3.0-2.435.1",
                                "tenant_deployment_file": "BIG-IP-Next-20.3.0-2.435.1.yaml"
                            }
                        ]
                    },
                    "VsphereRequest": null
                },
                "BaseTask": {
                    "id": "",
                    "payload": null,
                    "provider_id": "10101569-0abb-42ce-a279-8af83586386b",
                    "provider_type": "velos"
                },
                "VsphereRequest": null
            }
        },
        "stage": "Instantiation",
        "state": "instantiateInstances",
        "status": "running",
        "task_type": "instance_creation",
        "updated": "2024-05-23T20:29:42.454429Z"
    }
    
  4. Check the status of the instance creation until the following status is displayed.

    "stage": "Discovery",
    "state": "discoveryDone",
    "status": "completed"
    
  5. Check the instance details by sending a GET request to /api/v1/spaces/default/instances?filter=address eq '{{bigip_next_mgmt_ip}}' endpoint.

    GET https://{{bigip_next_cm_mgmt_ip}}/api/v1/spaces/default/instances?filter=address eq '{{bigip_next_mgmt_ip}}'
    
    Click for sample response ▶
    {
        "_embedded": {
            "devices": [
                {
                    "_links": {
                        "self": {
                            "href": "/api/v1/spaces/default/instances?filter=address+eq+%27xxx.xxx.xxx.xxx%27/3bf570b6-7763-4e70-a3b5-4c07492c2c06"
                        }
                    },
                    "address": "xxx.xxx.xxx.xxx",
                    "certificate_validated": "2024-05-23T20:39:08.611071Z",
                    "certificate_validity": false,
                    "hostname": "myvelosinstance",
                    "id": "3bf570b6-7763-4e70-a3b5-4c07492c2c06",
                    "mode": "STANDALONE",
                    "platform_name": "VELOS",
                    "platform_type": "CHASSIS",
                    "port": 5443,
                    "short_id": "2UVWZSAG",
                    "version": "20.3.0-2.435.1"
                }
            ]
        },
        "_links": {
            "self": {
                "href": "/api/v1/spaces/default/instances?filter=address+eq+%27xxx.xxx.xxx.xxx%27"
            }
        },
        "count": 1,
        "total": 1
    }