[openstack-dev] [LBaaS][octavia] - Flavors discussion - continue
Evgeny Fedoruk
EvgenyF at Radware.com
Thu Jul 6 16:03:08 UTC 2017
Hi All,
Following the Flavors discussion that was held on last Thursday, as promised, here is a description of use cases and CLI commands to demonstrate Flavor usage.
I would appreciate your feedback and thoughts about it.
I prefer to do it on a mailing list first, since if we agree on this, it may change the RST.
Attached, please find:
1. TXT document, specifying a fuller description of the data model, meta structure, CLI commands, bootstrap process and validations.
2. PNG file showing the data model.
Follows a summary:
Terms:
*Provider:
LBaaS service provider. Life cycle managed by Octavia
*Provider_Meta_Spec:
A certain version of a Provider's meta data specification. Life cycle managed by Octavia.
The meta data specification is a formal description of the meta data, defining structure and data types.
The meta spec, is versioned and each Provider may have several versions of a meta spec.
*Provider_Flavor_Profile:
An instance of a provider's meta data modeled by a specific Provider_Meta_Spec.
Provider may have several flavor profiles of the same Meta Spec with
Different parameter values.
*Flavor:
LBaaS service flavor. While no scheduling exists - just a logical entity with 1:1 relation to the Provider_Flavor_Profile
CLI examples:
Please Copy/Paste it to some editor in order to see the output tables normally
> lbaas provider-list
+--------------------------------------+---------------+----------------------------------+--------------------------+---------+---------+
| id | name | description | driver | enabled | default |
+--------------------------------------+---------------|----------------------------------+--------------------------+---------+---------+
| ad8102ae-2ae0-4038-a98e-f7f721c8eec8 | octavia | | octavia.drivers.octavia. | true | true |
| | | | driver.OctaviaDriver | | |
| 7953d045-92cc-4d2c-a3b1-35175c1f06c4 | radware | | octavia.drivers.radware. | true | false |
| | | | v2_driver. | | |
| | | | RadwareLBaaSV2Driver | | |
+--------------------------------------+---------------+----------------------------------+--------------------------+---------+---------+
> lbaas provider-meta-spec-list --provider octavia
+--------------------------------------+---------------+---------------------------------------+---------+---------+
| id | name | provider_id | version | enabled |
+--------------------------------------+---------------|---------------------------------------+---------+---------+
| 1696eb95-8c9e-4cb4-bd6e-ccf49b1fad23 | octavia_1.0 | f56ac751-f890-440e-8786-999a7ab8ec2f | 1.0 | false |
| 8ju7eb94-7c9y-2cb4-bd4e-gcf49b1fki91 | octavia_2.0 | f56ac751-f890-440e-8786-999a7ab8ec2f | 2.0 | true |
+--------------------------------------+---------------+---------------------------------------+---------+---------+
> lbaas provider-meta-spec-show octavia_2.0
+---------------------+------------------------------------------------------------------------------+
| Field | Value |
+---------------------+------------------------------------------------------------------------------+
| id | 8ju7eb94-7c9y-2cb4-bd4e-gcf49b1fki91 |
| name | octavia_2.0 |
| provider_id | f56ac751-f890-440e-8786-999a7ab8ec2f |
| meta_spec | [{name: "any_string", type: string, default: ""}, |
| | {name: "one_of_string", type: string, default: "A", values: "A,B,C"}, |
| | {name: "range_int", type: integer, default: 1000, values: "1000:10000"}, |
| | {name: "one_of_int", type: integer, default: 50, values: "10,25,50,75,100"}, |
| | {name: "any_int", type: integer, default: 0}, |
| | {name: "bool", type: boolean, default: "false"}, |
| |{name: "list", type: list, default: []}, |
| |{name: "map", type: map, default: {}}] |
| version | "2.0" |
| enabled | true |
+---------------------+------------------------------------------------------------------------------+
> lbaas flavor-profile-create --name octavia_default --meta-spec octavia_2.0 --meta-file /tmp/meta_params.yaml
Created a new flavor profile:
+-----------------------+-----------------------------------------+
| Field | Value |
+-----------------------+-----------------------------------------+
| id | cf1ac751-f890-440e-8786-999a7ab8egy7 |
| name | actavia_default |
| description | |
| provider_meta_spec_id | 8ju7eb94-7c9y-2cb4-bd4e-gcf49b1fki91 |
| | |
| meta_data | {"any_string", "", "one_of_string": |
| | "A", "range_int": 1000, "one_of_int":|
| | 75, "any_int": 0, "bool": "false", |
| | "list": [], "map": {}} |
| enabled | true |
+-----------------------+-----------------------------------------+
> lbaas flavor-create --name default --provider-profile octavia_default
Created a new flavor:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| id | f56ac751-f890-440e-8786-999a7ab8ec2f |
| name | default |
| description | |
| flavor_profile_id | cf1ac751-f890-440e-8786-999a7ab8egy7 |
| enabled | True |
+---------------------+--------------------------------------+
> lbaas loadbalancer-create --flavor default tenant-subnet
Created a new loadbalancer:
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| admin_state_up | True |
| description | |
| id | f56ac751-f890-440e-8786-999a7ab8ec2f |
| listeners | |
| name | |
| operating_status | ONLINE |
| provider | octavia |
| provider_profile | octavia_default |
| flavor | default |
| provisioning_status | ACTIVE |
| tenant_id | 1081145e96684447b0a35bc81c5b9433 |
| vip_address | 192.168.33.178 |
| vip_port_id | 48fc5824-e7ec-4d11-af2b-d3a190ce7d9a |
| vip_subnet_id | 1966c9a5-174d-4b39-b1e3-ff19a6621bef |
+---------------------+--------------------------------------+
Bootstrap:
* Providers are loaded into the Octavia providers DB table
from configuration file on each startup
Format: service_provider = <Name>:<Desc>:<Driver_FQN>:<enabled true/false>:[default]
* For each provider, new driver API get_meta_spec() is called for getting the meta specification.
It returns a list of meta data specifications which then get persisted in the database.
* Meta specs are immutable, otherwise - startup error will be issued.
Regards,
Evgeny
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Data_Model.png
Type: image/png
Size: 31850 bytes
Desc: Data_Model.png
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170706/51c7e3f1/attachment.png>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Flavors.txt
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170706/51c7e3f1/attachment.txt>
More information about the OpenStack-dev
mailing list