This section describes the metadata values expected to be received from OpenStack to the DSC SWe VMs through an HTTP interface or config-drive service.
These metadata values are to be used for the VNF Life-Cycle Management through Virtual Network Function Descriptor File Support.
The metadata includes generic values, which are automatically included by OpenStack [Universal Unique Identifier(UUID), hostname, SSH public keys], and specific DSC SWe data that is used to initialize each VM.
If this data is unavailable, missing, or corrupt, then the VM on the DSC SWe fails to apply the configuration at boot, and is left running and accessible by the DSC console.
The OpenStack metadata is only applied on the initial boot if no previous configuration is found. Any updates to the infrastructure require manual (command line) adjustments inside the VM cluster.
Some values, such as VM-ID (slotnum), role, or VM UUID, may not change as they would have a detrimental impact on the system.
The data is presented to the DSC VM in JSON format. Depending on the metadata version, the values are split between metadata, vendor-data, user-data, and network-data files. The DSC SWe looks for the expected values metadata in a dictionary under the field 'meta'.
The following table displays the sample data for a system with a minimum of four VMs. The VMs provide the following functions:
- VM 1 and 2 represent the Management and Routing roles.
- VM 3 and 4 represent the Load Balancer roles.
- VM 5+ represent additional Routing roles.
Meta-Data Format
Field | Data Type | Value Rules | Per-VM Values | Notes | ||||
---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5+ | ||||
vm_number | integer | 1-20 | 1 | 2 | 3 | 4 | 5-20 | |
vm_role | string | management, routing | management, routing | ipfe | ipfe | routing | ||
uuid | UUID | VM Universally Unique Identifier, same as discovered from BIOS. This is generally added by OpenStack. | ||||||
hostname | string | Has restricted characters - as per our hostname requirements. This is generally added by OpenStack. | ||||||
ip_addressing | string | Use "static". | static | static | static | static | static | Take IP address from metadata and lock change out from the UI. |
Fields in 'meta' under metadata (meta_data['meta'][<field>]) | ||||||||
ha0_mac | MAC | Value from hypervisor | ||||||
ha0_net_cidr | CIDR | <mask>/<prefix> | ||||||
ha0_ip | IPv4/IPv6 | |||||||
ha0_net_gw | IPv4/IPv6 | |||||||
mgt0_mac | MAC | N/A | N/A | N/A | N/A | Value from hypervisor | ||
mgt0_net_cidr | CIDR | <mask>/<prefix> | N/A | N/A | N/A | N/A | ||
mgt0_ip | IPv4/IPv6 | N/A | N/A | N/A | N/A | |||
mgt0_net_gw | IPv4/IPv6 | N/A | N/A | N/A | N/A | |||
mgt1_mac | MAC | N/A | N/A | N/A | N/A | Value from hypervisor | ||
mgt1_net_cidr | CIDR | <mask>/<prefix> | N/A | N/A | N/A | N/A | ||
mgt1_ip | IPv4/IPv6 | N/A | N/A | N/A | N/A | |||
mgt1_net_gw | IPv4/IPv6 | N/A | N/A | N/A | N/A | |||
pkt0_mac | MAC | Value from hypervisor | ||||||
pkt0_net_cidr | CIDR | <mask>/<prefix> | ||||||
pkt0_ip | IPv4/IPv6 | |||||||
pkt0_net_gw | IPv4/IPv6 | |||||||
pkt1_mac | MAC | Value from hypervisor | ||||||
pkt1_net_cidr | CIDR | <mask>/<prefix> | ||||||
pkt1_ip | IPv4/IPv6 | |||||||
pkt1_net_gw | IPv4/IPv6 | |||||||
mgt_float_ip1, | IPv4/IPv6 | The shared IP address that floats between the two management VMs.
| ||||||
mgt_float_ip2, | IPv4/IPv6 | Second shared IP address that floats between the two management VMs. | ||||||
ha0_mtu | integer | Convey the network MTU for the ha0 interface. |
For the two mgt_float_ipX values, one value must be IPv4 and the other IPv6. Only one IPv4 and one IPv6 are accepted.