Take full network details (addresses, bounds etc.) from the network_data.json file first, then fallback to network_config content

Registered by Cosmin Poieana on 2015-10-20

Due to blueprint and patches related here: https://blueprints.launchpad.net/nova/+spec/metadata-service-network-info the metadata provider can offer more detailed information regarding static network configuration, which also includes NICs bounding/linking and other details (which may come in hand on an Ironic deployment for example).

This way, the baseopenstack metadata service will be updated to handle such new JSON information, if present, usually found into the "network_data.json" (like meta_data and vendor_data), thing which will be included for sure into the Liberty OpenStack freeze. Missing information (or extra if any) will be taken using the old method: by parsing the debian-like content addressed by the network_config file path.

The second part of this blueprint will cover the extra configuration due to such new/extra found networking information (ex. NICs bounds) through new utilities and additional calls in the networkconfig plugin (features).

First, take and adapt all the content found and parsed in the JSON form and if is not present, then fall back to the network_config content. Only if special cases are discovered and required, then check and merge both of the possiblities.

Blueprint information

Status:
Complete
Approver:
Alessandro Pilotti
Priority:
Medium
Drafter:
Cosmin Poieana
Direction:
Approved
Assignee:
Alessandro Pilotti
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Alessandro Pilotti on 2018-09-02
Completed by
Alessandro Pilotti on 2018-09-17

Related branches

Sprints

Whiteboard

From Alessandro:

1. The new format supersedes the old "interfaces" template one, so the metadata provider can transparently deal with this passing the data to the plugin in the current way (with additional info of course). The actual data structure returned by the metadata provider can be refactored.

2. Important features that will be added here: teamed interfaces, VLAN

Gerrit topic: https://review.openstack.org/#q,topic:bp/json-network-config,n,z

Addressed by: https://review.openstack.org/333877
    Add a new layer of abstractization over the network metadata

Addressed by: https://review.openstack.org/333878
    Update the processing of the network information in metadata services

Addressed by: https://review.openstack.org/333879
    Add support for MAAS json network metadata

Addressed by: https://review.openstack.org/347540
    Add support for OpenStack json network metadata

Addressed by: https://review.openstack.org/357751
    Add network details builder for the Open Nebula service

Addressed by: https://review.openstack.org/357768
    Update the processing of the network information

Addressed by: https://review.openstack.org/380169
    Add base data model in order to improve data representation

Addressed by: https://review.openstack.org/464195
    Added advanced networking structure

Addressed by: https://review.openstack.org/464199
    Added base L2/L3 network implementation

Addressed by: https://review.openstack.org/498336
    Added base L4 network implementation

Addressed by: https://review.openstack.org/496215
    Use new network data structures for Openstack and NetworkConfigPlugin

Gerrit topic: https://review.openstack.org/#q,topic:metadata_avdanced_networking,n,z

Addressed by: https://review.openstack.org/597311
    Move NetworkDetails to a separate module

Addressed by: https://review.openstack.org/597312
    Add new networking model

Addressed by: https://review.openstack.org/597313
    Return NetConnectionID instead of Name

Addressed by: https://review.openstack.org/597314
    Add rename_network_adapter

Addressed by: https://review.openstack.org/597315
    Use the interface name when setting the MTU

Addressed by: https://review.openstack.org/597316
    Add PyMI as requirement

Addressed by: https://review.openstack.org/597318
    Add get_network_details_v2

Addressed by: https://review.openstack.org/597317
    Add NetLBFO network teaming

Addressed by: https://review.openstack.org/597320
    Use MSFT_NetIPAddress in static network config

Addressed by: https://review.openstack.org/597321
    Support get_network_details_v2 in network plugin

Addressed by: https://review.openstack.org/597323
    Add get_network_details_v2 in BaseOpenStackService

Gerrit topic: https://review.openstack.org/#q,topic:bp/maas-network-config,n,z

Addressed by: https://review.openstack.org/599570
    Include the NIC names in get_dhcp_hosts_in_use

Addressed by: https://review.openstack.org/599571
    Add get_network_adapter_name_by_mac_address

Addressed by: https://review.openstack.org/600201
    Add enable_network_adapter

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.