Giter Club home page Giter Club logo

os-net-config's Introduction

Team and repository tags

os-net-config

host network configuration tool

An implementation of the 'network configuration' spec @ https://review.openstack.org/#/c/97859/. The intention is for this code to be moved under the tripleo project in due course.

Release Notes

Features

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 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.
  • A python library which provides configuration via an object model.

YAML Config Examples

  • Configure an OVS bridge with a single attached interface (port)
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
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
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

Provider Configuration

Providers are use to apply (implement) the desired configuration on the host system. By default 3 providers are implemented:

  • Ifcfg: persistent network config format stored in /etc/sysconfig/network-scripts
  • ENI: persistent network config format stored in /etc/network/interfaces
  • iproute2: non-persistent provider which implements the config using 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 be customized via the --provider CLI option.

os-net-config's People

Contributors

dprince avatar dsneddon avatar karthiksundaravel avatar bfournie avatar slagle avatar cybertron avatar beagles avatar qingszhao avatar fzdarsky avatar michaelhenkel avatar fepan avatar openstackadmin avatar saneax avatar marios avatar ajaeger avatar emilienm avatar hjensas avatar tsekiyama avatar zulcss avatar dhellmann avatar flaper87 avatar fredericlepied avatar gfidente avatar goneri avatar ipilcher avatar ianw avatar jaganathancse avatar cubeek avatar jamezpolley avatar fungi avatar

Stargazers

 avatar

Watchers

Patrick Amor avatar James Cloos avatar Debo~ Dutta avatar Wojciech Dec avatar Arvind Somya avatar  avatar Yathiraj Udupi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.