Nmstate provides a set of libraries with an accompanying command line tool that manages host networking settings in a declarative manner. The networking state is described by a pre-defined schema. Reporting of current state and changes to it (desired state) both conform to the schema.
Nmstate is aimed to satisfy enterprise needs to manage host networking through a northbound declarative API and multi provider support on the southbound. NetworkManager acts as the main provider supported.
Example output:
$ sudo nmstatectl show --- dns: config: server: - 192.0.2.1search: - example.orgroutes: config: - destination: 0.0.0.0/0next-hop-interface: eth1next-hop-address: 192.0.2.1interfaces: - name: eth1type: ethernetdescription: Main-NICstate: upipv4: enabled: truedhcp: falseaddress: - ip: 192.0.2.9prefix-length: 24ipv6: enabled: falsePlease refer to https://nmstate.io/ for more document.
Any pull request is welcome, please reach out these repositories:
- Rust, Python, C API: https://github.com/nmstate/nmstate
- Documentation: https://github.com/nmstate/nmstate.github.io
- Kubernetes API: https://github.com/nmstate/kubernetes-nmstate
- Nmstate OpenShift Web Console Plugin: https://github.com/nmstate/nmstate-console-plugin
For requesting new new repository, please use pull request against https://github.com/nmstate/.github/ after below requirements been fulfilled:
- CI enabled and passed.
- Has integration test cases proving valid use cases.
- Licensed under LGPL-2.0+ or Apache-2.0+(preferred).
- Please name at lease two maintainers for this new repository.