Skip to content

Nmstate is a library with an accompanying command line tool that manages host networking settings in a declarative manner.

License

Notifications You must be signed in to change notification settings

mmuehlfeldRH/nmstate

This branch is 441 commits behind nmstate/nmstate:base.

Folders and files

NameName
Last commit message
Last commit date
May 19, 2022
Feb 20, 2023
May 5, 2023
Jun 30, 2022
Nov 15, 2022
Feb 1, 2023
Jul 23, 2022
Jun 1, 2023
Jun 7, 2023
Jun 7, 2023
Apr 11, 2023
May 11, 2023
Nov 30, 2022
Nov 15, 2019
Feb 2, 2023
Jun 1, 2023
Jul 1, 2019
Jun 25, 2021
Jul 3, 2019
Mar 3, 2022
Apr 20, 2023
Dec 21, 2022
Jun 1, 2023
Apr 20, 2023
Aug 25, 2020
Sep 22, 2022

Repository files navigation

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

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.

You may find us in #nmstate on Libera IRC also.

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

About

Nmstate is a library with an accompanying command line tool that manages host networking settings in a declarative manner.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 67.0%
  • Python 30.5%
  • Shell 1.3%
  • Other 1.2%