README.rst updates per yaml config changes

This commit is contained in:
Dan Prince
2014-08-26 13:40:18 -04:00
parent 82bfaf3f7b
commit cfda711898

View File

@@ -20,88 +20,76 @@ The core aim of this project is to allow fine grained (but extendable)
configuration of the networking parameters for a network host. The
project consists of:
* A python library which provides configuration via an object model.
* A CLI (os-net-config) which provides configuration via a JSON file format.
By default os-net-config uses a JSON config file located at
/etc/os-net-config/config.json. This can be customized via the
* A CLI (os-net-config) which provides configuration via a YAML or JSON
file formats. By default os-net-config uses a YAML config file located
at /etc/os-net-config/config.yaml. This can be customized via the
--config-file CLI option.
JSON Config Examples
* A python library which provides configuration via an object model.
YAML Config Examples
--------------------
* Configure an OVS bridge with a single attached interface (port)
.. code-block:: json
.. code-block:: yaml
{ "network_config": [
{
"type": "ovs_bridge",
"name": "br-ctlplane",
"use_dhcp": "true",
"members": [
{
"type": "interface",
"name": "em1"
}
]
}
]
}
network_config:
-
type: ovs_bridge
name: br-ctlplane
use_dhcp: true
ovs_extra:
- br-set-external-id br-ctlplane bridge-id br-ctlplane
members:
-
type: interface
name: em1
..
* Configure an OVS bridge on top of an OVS bond
.. code-block:: json
.. code-block:: yaml
{ "network_config": [
{
"type": "ovs_bridge",
"name": "br-ctlplane",
"use_dhcp": "true",
"members": [
{
"type": "ovs_bond",
"name": "bond1",
"use_dhcp": "true",
"members": [
{ "type": "interface", "name": "em1" },
{ "type": "interface", "name": "em2" }
]
}
]
}
]
}
network_config:
-
type: ovs_bridge
name: br-ctlplane
use_dhcp: true
members:
-
type: ovs_bond
name: bond1
members:
-
type: interface
name: em1
-
type: interface
name: em2
..
* Configure a tagged VLAN interface on top of an OVS bridge
.. code-block:: json
.. code-block:: yaml
{ "network_config": [
{
"type": "ovs_bridge",
"name": "br-ctlplane",
"members": [
{
"type": "vlan",
"device": "em1",
"vlan_id": "16",
"addresses": [{
"ip_netmask": "192.0.2.1/24"
}],
"routes": [{
"next_hop": "192.0.2.1",
"ip_netmask": "192.0.2.1/24"
}]
}
]
}
]
}
network_config:
-
type: ovs_bridge
name: br-ctlplane
use_dhcp: true
members:
-
type: interface
name: em1
-
type: vlan
vlan_id: 16
addresses:
-
ip_netmask: 192.0.2.1/24
..
@@ -116,7 +104,7 @@ host system. By default 3 providers are implemented:
* ENI: persistent network config format stored in /etc/network/interfaces
* iproute2: non-persistent provider which implements the config using
iproute2, vconfig, etc...
iproute2, vconfig, etc... (implementation in progress)
When using bin/os-net-config the provider is automatically selected based on
the host systems perferred persistent network type (ifcfg or ENI). This can