=== Breaking changes
- N/A
=== New features
- IPVLAN interface support. (50c267c9)
=== Bug fixes
- mac identifier: Fix error when attaching mac-based iface to bond. (0ebf1078)
- packaging: Generate vendor tarbal for Rust 1.66 also. (2ef57297)
- async: Use tokio::time::sleep in stead of std:🧵:sleep. (b6e7adec)
- policy: Sort the capture base on dependent relationship. (71ea2399)
- nm: Handle `ipv6.method: ignore`. (3456e97b)
- nm: Fix profile name changing. (a44f555a)
- nm route rule: Only search desired interface for storing route rule. (36af0f85)
- policy: Fix capture full state with simple line. (58389eee)
- policy: Fix error when capture is mentioned in the right. (245fcb16)
Signed-off-by: Gris Ge <fge@redhat.com>
Nmstate: A Declarative Network API

A declarative network management API for hosts.
Copr build status, all repos are built for Fedora Linux and RHEL/CentOS Stream/EPEL 8+:
Nmstate is a library 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 (and currently the only) provider supported.
Nmstate provides:
- Rust crate -- nmstate
- Command line tools --
cargo install nmstatectl
- Python library --
libnmstate
- Go binding
- C binding
More document could be found at nmstate.io
The codes of nmstate are licensed under Apache 2.0
except the test codes in tests
folder are licensed under
LGPL 2.1+
State example:
Desired/Current state example (YAML):
---
dns:
config:
server:
- 192.0.2.1
search:
- example.org
routes:
config:
- destination: 0.0.0.0/0
next-hop-interface: eth1
next-hop-address: 192.0.2.1
interfaces:
- name: eth1
type: ethernet
description: Main-NIC
state: up
ipv4:
enabled: true
dhcp: false
address:
- ip: 192.0.2.9
prefix-length: 24
ipv6:
enabled: false
Contact
Nmstate GitHub Issues pages for discussion.
Matrix room: #nmstate:fedora.im
Contributing
Yay! We are happy to accept new contributors to the Nmstate project. Please follow these instructions to contribute.
Installation
For Fedora 29+, sudo dnf install nmstate
.
For other distribution, please see the install guide.
Documentation
- Rust crate
- libnmstate API
- Code examples
- State examples
- nmstatectl user guide
- nmstatectl man page:
man nmstatectl
Changelog
Please refer to CHANGELOG