Gris Ge 9f40cb2285
Some checks failed
CI / rust_lint (nightly) (push) Failing after 37s
CI / rpm_build (el9) (push) Failing after 21s
CI / rust_lint (stable) (push) Failing after 53s
CI / rust_unit (stable) (push) Failing after 37s
CI / rust_unit (beta) (push) Failing after 41s
CI / rust_unit (nightly) (push) Failing after 39s
CI / py_lint (c9s-nm_stable-format) (push) Failing after 43s
Release / linux-x64 (push) Failing after 23s
CI / py_lint (c9s-nm_stable-lint) (push) Failing after 35s
CI / integ (c10s-nm_stable-integ_tier1) (push) Has been skipped
CI / integ (c9s-nm_1.42-integ_slow) (push) Has been skipped
CI / integ (c9s-nm_1.42-integ_tier1) (push) Has been skipped
CI / integ (c9s-nm_1.42-integ_tier2) (push) Has been skipped
CI / integ (c9s-nm_main-integ_slow) (push) Has been skipped
CI / integ (c9s-nm_main-integ_tier1) (push) Has been skipped
CI / integ (c9s-nm_main-integ_tier2) (push) Has been skipped
CI / integ (c9s-nm_main-rust_go) (push) Has been skipped
CI / integ (c9s-nm_stable-integ_slow) (push) Has been skipped
CI / integ (c9s-nm_stable-integ_tier1) (push) Has been skipped
CI / integ (c9s-nm_stable-integ_tier2) (push) Has been skipped
CI / integ (c9s-nm_stable-rust_go) (push) Has been skipped
CI / integ (fed-nm_main-integ_tier1) (push) Has been skipped
CI / build_on_rust_1_66 (push) Has started running
CI / macos_gen_conf_build (nightly) (push) Has been cancelled
CI / macos_gen_conf_build (stable) (push) Has been cancelled
Release / macos-x64 (push) Has been cancelled
Release / macos-aarch64 (push) Has been cancelled
New release 2.2.37
=== 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>
2024-09-30 11:05:22 +08:00
2019-11-15 08:09:40 +01:00
2024-05-21 07:01:21 +08:00
2024-09-30 11:05:22 +08:00
2024-01-12 19:44:59 +08:00
2024-06-27 22:25:42 +08:00
2024-09-19 19:51:58 +08:00

Nmstate: A Declarative Network API

A declarative network management API for hosts.

CI crates.io docs.rs Fedora Rawhide version

Copr build status, all repos are built for Fedora Linux and RHEL/CentOS Stream/EPEL 8+:

  • Latest release: Latest release Copr build status
  • Git base: Git base Copr build status

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

Changelog

Please refer to CHANGELOG

Description
No description provided
Readme 37 MiB
Languages
Rust 66.1%
Python 31.6%
Shell 1.2%
Makefile 0.5%
Go 0.3%
Other 0.3%