Skip to content

[Sandbox] NMstate #404

@mkowalski

Description

@mkowalski

Application contact email(s)

[email protected]

Trademark and accounts

  • If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Contributing or sponsoring entity contact email(s)

[email protected], [email protected], [email protected]

Project summary

NMstate is a project that manages host networking in a declarative manner

Project description

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 both conform to the schema.

When used in the Kubernetes environment it allows for declarative node network configuration through the Kubernetes API.

Nmstate is aimed to satisfy enterprise needs to manage host networking through a northbound declarative API and multi provider support on the southbound.

With hybrid clouds, node-networking setup is becoming even more challenging. Different payloads have different networking requirements, and not everything can be satisfied as overlays. The Container Network Interface (CNI) standard enables different solutions for connecting networks, however, the node must have the networks setup before the pods are scheduled.

Setting up the networks in a dynamic and heterogenous cluster, with dynamic networking requirements, is a challenge by itself - and this is what this project is addressing.

Org repo URL (provide if all repos under the org are in scope of the application)

N/A

Project repo URL in scope of application

https://github.com/nmstate/nmstate

Additional repos in scope of the application

https://github.com/nmstate/kubernetes-nmstate

Website URL

https://nmstate.io

Roadmap

N/A

Roadmap context

N/A

Contributing guide

https://github.com/nmstate/nmstate/blob/base/CONTRIBUTING.md

Code of Conduct (CoC)

https://github.com/nmstate/nmstate/blob/base/CODE_OF_CONDUCT.md

Adopters

No response

Maintainers file

https://github.com/nmstate/nmstate/blob/base/MAINTAINERS.md

Security policy file

https://github.com/nmstate/nmstate/blob/base/SECURITY.md

IP policy

  • If the project is accepted, I agree the project will follow the CNCF IP Policy

Will the project require a license exception?

N/A

Standard or specification?

N/A

Why CNCF?

The reason for joining CNCF is to increase participation and diversity of the community of users and developers of nmstate. Based on the feedback received after presenting in external conferences, the lack of vendor-neutral governance is what holds people from joining as more active contributors. We hope belonging to the CNCF will remove this barrier.

Benefit to the landscape

While the ecosystem of overlay networking solutions is very dense, there space of solutions that manage underlay (i.e. host networking) is very sparse. NMstate is a good fit because it started directly on top of NetworkManager which is a very well adopted in the space of operating systems. While their work is not yet upstreamed, we got signals from people running their own forks with support for netplan – those two vastly cover the majority of population.

Managing underlay networking is something that becomes a more and more critical need for users as networking becomes more complicated over the years. We observe that out-of-the-box does not satisfy the needs any more. People are looking for solutions for easy management of host networking and we believe that nmstate is a perfect fit.

Cloud native 'fit'

Nmstate has been created with “declarativeness” at its core just like Kubernetes API. Together with the kubernetes-nmstate subproject it provides a set of Custom Resource Definitions (CRDs) to expose this API. Cloud platforms with their evolving networking capabilities are perfect target users for nmstate, whether consumed via Kubernetes or standalone.

Cloud native 'integration'

Nmstate has been created with “declarativeness” at its core just like Kubernetes API. Together with the kubernetes-nmstate subproject it provides a set of Custom Resource Definitions (CRDs) to expose this API. Cloud platforms with their evolving networking capabilities are perfect target users for nmstate, whether consumed via Kubernetes or standalone.

Cloud native overlap

Currently we do not see any projects in the CNCF ecosystem that would overlap with what nmstate provides. While there were discussions about Kubernetes itself to manage host networking, this never resulted in a proper implementation. Therefore, we see nmstate as the only CNCF project that manages host networking.

Similar projects

N/A

Landscape

No

Business Product or Service to Project separation

Yes, Red Hat OpenShift Networking is a productized version of nmstate. As Red Hat is “upstream first” company, we do not foresee nmstate to be an exception. Development happens upstream and only afterwards the downstream fork results in a product.

Project "Domain Technical Review"

No response

CNCF contacts

No response

Additional information

Current maintainers are split between nmstate (https://github.com/nmstate/nmstate/blob/base/MAINTAINERS.md) and kubernetes-nmstate (https://github.com/nmstate/kubernetes-nmstate/blob/main/MAINTAINERS.md). As the latter effectively is a sub-project, we would consider merging the maintainers lists if needed.

Project presentation at FOSDEM – https://fosdem.org/2025/schedule/event/fosdem-2025-4077-declarative-networking-in-declarative-world-ver-2025

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    📋 New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions