Skip to content

Commit

Permalink
docs: Add Octavia Flavor and Flavorprofile documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
sowm9802 committed Dec 19, 2024
1 parent ae11a54 commit c63670c
Show file tree
Hide file tree
Showing 2 changed files with 120 additions and 0 deletions.
119 changes: 119 additions & 0 deletions docs/octavia-flavor-and-flavorprofile-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# Octavia Flavors

This document is intended for users who want to use the command line interface (CLI) to create and manage Octavia flavors and flavor profiles for load balancing. Flavor profiles define specific configurations for the Octavia load balancer, allowing users to select from predefined flavors that match provider capabilities. This guide walks you through the process of creating and updating both flavors and flavor profiles. For instructions on creating other resources such as load balancers, listeners, monitors, and pools, please refer to the [Octavia CLI Load Balancer Setup Guide](https://docs.rackspacecloud.com/octavia-loadbalancer-setup-guide/)

## Provider Capabilities

To define a flavor, review the flavor capabilities exposed by the provider driver. Below providers already exist:
``` shell
$ openstack --os-cloud default loadbalancer provider list
+---------+------------------------------+
| name | description |
+---------+------------------------------+
| ovn | "The Octavia OVN driver" |
| amphora | "The Octavia Amphora driver" |
+---------+------------------------------+
```

The following command lists all the available flavor capabilities in the Amphora provider.
``` shell
$ openstack --os-cloud default loadbalancer provider capability list amphora
+-------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------+
| type | name | description |
+-------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------+
| flavor | loadbalancer_topology | The load balancer topology. One of: SINGLE - One amphora per load balancer. ACTIVE_STANDBY - Two amphora per load balancer. |
| flavor | compute_flavor | The compute driver flavor ID. |
| flavor | amp_image_tag | The amphora image tag. |
| flavor | sriov_vip | When true, the VIP port will be created using an SR-IOV VF port. |
| availability_zone | compute_zone | The compute availability zone. |
| availability_zone | management_network | The management network ID for the amphora. |
| availability_zone | valid_vip_networks | List of network IDs that are allowed for VIP use. This overrides/replaces the list of allowed networks configured in `octavia.conf`. |
+-------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------------------+
```
## Flavor Profiles
To define a flavor profile, you specify both the provider and the flavor data, outlining the supported flavor settings for that provider. If you do not include the provider flag, the system will use the default provider, which is Amphora at Rackspace. Use the command below to create a flavor profile for the Amphora provider, setting up a load balancer with a single Amphora and the specified compute flavor:
``` shell
$ openstack --os-cloud default loadbalancer flavorprofile create --name fp.single.lite --provider amphora --flavor-data '{"loadbalancer_topology": "SINGLE", "compute_flavor": "f485b7c3-4efd-4c0d-b8b0-997db6bdbbce"}'
+---------------+-----------------------------------------------------------------------------------------------+
| Field | Value |
+---------------+-----------------------------------------------------------------------------------------------+
| id | 5f4d2c7c-e294-4a9c-b97a-54a2b97a17a5 |
| name | fp.single.lite |
| provider_name | amphora |
| flavor_data | {"loadbalancer_topology": "SINGLE", "compute_flavor": "f485b7c3-4efd-4c0d-b8b0-997db6bdbbce"} |
+---------------+-----------------------------------------------------------------------------------------------+
```
!!! Note
The compute_flavor in flavor_data defines the resources (CPU, RAM, disk, etc.) allocated to the Amphora VMs or containers used by Octavia
for load balancing. It determines the size and performance of the load balancer instances, controlling their capacity to handle incoming
traffic.
Use the command below to list the existing flavor profiles:
``` shell
$ openstack loadbalancer flavorprofile list
+--------------------------------------+----------------+---------------+
| id | name | provider_name |
+--------------------------------------+----------------+---------------+
| 5f4d2c7c-e294-4a9c-b97a-54a2b97a17a5 | fp.single.lite | amphora |
| 66244e86-c714-4e80-a250-997d414db9d9 | fp.ha.plus | amphora |
| a252f357-bd8e-4551-a40c-f98ac857d2f8 | fp.single.pro | amphora |
| bea6924c-59d6-42a2-9336-df726ab0bfdf | fp.single.plus | amphora |
| cfa628f1-2916-419c-876e-7b2d56643323 | fp.ha.lite | amphora |
| dc6186a0-82fc-4694-b521-50065ae26516 | fp.ha.pro | amphora |
+--------------------------------------+----------------+---------------+
```
### Update a Flavor Profile
To update a flavor profile, use the `openstack loadbalancer flavorprofile set` command. This allows you to modify properties of an existing flavor profile, such as its name, provider, and flavor data.
``` shell
$ openstack loadbalancer flavorprofile set --flavor-data '{"loadbalancer_topology": "ACTIVE_STANDBY"}' 5f4d2c7c-e294-4a9c-b97a-54a2b97a17a5
```
You can extend the flavor profile with additional provider capabilities as needed. Below is an example:
``` shell
$ openstack loadbalancer flavorprofile set --flavor-data '{"loadbalancer_topology": "ACTIVE_STANDBY", "compute_flavor": "m1.large", "amp_image_tag": "amphora-image-v2", "sriov_vip": false}' 5f4d2c7c-e294-4a9c-b97a-54a2b97a17a5
```
## Flavors
To create a flavor using the previously defined flavor profile, run the following command:
``` shell
$ openstack loadbalancer flavor create --name single.lite --flavorprofile fp.single.lite --description "single amphora, 1 vcpu, 1024 ram, 10 disk" --enable
+-------------------+-------------------------------------------+
| Field | Value |
+-------------------+-------------------------------------------+
| id | 3480b6d0-b803-4373-b701-53420d895059 |
| name | single.lite |
| flavor_profile_id | 5f4d2c7c-e294-4a9c-b97a-54a2b97a17a5 |
| enabled | True |
| description | single amphora, 1 vcpu, 1024 ram, 10 disk |
+-------------------+-------------------------------------------+
```
At this point, the flavor is available for use by users creating new load balancers.
Use the command below to list the existing flavors:
``` shell
$ openstack loadbalancer flavor list
+--------------------------------------+-------------+--------------------------------------+---------+
| id | name | flavor_profile_id | enabled |
+--------------------------------------+-------------+--------------------------------------+---------+
| 3480b6d0-b803-4373-b701-53420d895059 | single.lite | 5f4d2c7c-e294-4a9c-b97a-54a2b97a17a5 | True |
| 351d67c3-796f-4f41-bbb9-6d8d6bc389a8 | ha.plus | 66244e86-c714-4e80-a250-997d414db9d9 | True |
| 63a2533d-ec47-4dc8-b04c-e4c9fd55b6e9 | single.plus | bea6924c-59d6-42a2-9336-df726ab0bfdf | True |
| 81c4307b-e66c-4c0c-a177-c971951020d3 | ha.pro | dc6186a0-82fc-4694-b521-50065ae26516 | True |
| eb107a33-71ae-45a3-941a-05bbe84d33df | single.pro | a252f357-bd8e-4551-a40c-f98ac857d2f8 | True |
| f37c3e03-bb8f-4b3a-956c-e45a9c611319 | ha.lite | cfa628f1-2916-419c-876e-7b2d56643323 | True |
+--------------------------------------+-------------+--------------------------------------+---------+
```
### Update a Flavor
The `openstack loadbalancer flavor set` command is used to update an existing load balancer flavor in Octavia. It allows you to modify various attributes of the flavor, such as its name, description, or enable/disable status. For example, to disable a specific flavor, you can use the following command:
``` shell
$ openstack loadbalancer flavor set --disable 3480b6d0-b803-4373-b701-53420d895059
```
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,7 @@ nav:
- Magnum:
- Creating kubernetes clusters: magnum-kubernetes-cluster-setup-guide.md
- Octavia:
- Creating Flavor Profiles and Flavors: octavia-flavor-and-flavorprofile-guide.md
- Creating Cloud Load Balancers: octavia-loadbalancer-setup-guide.md
- Object Storage:
- Operating Swift Object Storage: openstack-swift-operators-guide.md
Expand Down

0 comments on commit c63670c

Please sign in to comment.