github.com/nmstate/kubernetes-nmstate
v0.87.0
#2850 most downloaded on Go modules
nmstate/kubernetes-nmstate
What this package is like to depend on
Last release 17 days ago
07 Aug 2026
Ships fairly regularly
a new release about every 2 weeks
Rarely documented
notes for 9 of 153 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
527 releases · first in 2019
217 releases in the last 12 months
see the full history below
Release timeline
527 releases · May 2019 to Aug 2026Releases
latest 60 of 527-
v0.87.1-0.20260807110216-a8673b11873b07 Aug 2026 pre-releaseNothing published for this version
-
v0.87.1-0.20260731061117-b563b7a51d6631 Jul 2026 pre-releaseNothing published for this version
-
v0.87.028 Jul 2026Release notes
Open source →Changes
Enhancement
- Add macOS development support via Lima VM with automatic cross-compilation for external x86_64
clusters. (#1511, @emy) - Kubernetes-nmstate can now be installed with Helm:
helm install nmstate oci://quay.io/nmstate/kubernetes-nmstate -n nmstate --create-namespace. The Helm chart is the source of truth for operator deployment manifests; OLM and release-manifest installation methods are unchanged. (#1547, @Copilot) - Replace all instances of interface{} with any alias for improved Go 1.18+ compatibility (#1510, @qinqon)
Bug or Regression
- Broaden stale count cleanup to detect all non-available enactments, not just progressing (#1542, @emy)
- Disable unused metrics server on handler, webhook, and cert-manager components to avoid exposing unnecessary HTTPS ports. (#1512, @qinqon)
- Fix OpenShift conformance failure by adding workload management annotation to console plugin deployment. (#1474, @qinqon)
- Fix arm64 handler image build failure when using nmstate-git from Copr by explicitly specifying the centos-stream-9 chroot name instead of relying on dnf auto-detection. (#1533, @qinqon)
- Fix handler crash loop when default network interface is temporarily reconfigured by eliminating API server dependency at startup for TLS configuration. (#1467, @qinqon)
- Fix handler liveness probe "short write" errors by limiting nmstatectl output to the loopback interface only (#1486, @nmstate-ai[bot])
- Fix operator reconcile failure caused by missing nmstates/finalizers
RBAC permission after security hardening in #1520. (#1541, @mkowalski)
Uncategorized
- Add s390x support to lint and container build scripts. (#1517, @ashokpariya0)
- Add s390x architecture support to kubernetes-nmstate handler and operator container images. (#1530, @ashokpariya0)
- Bump Go to 1.26 and update dependencies to fix security vulnerabilities in golang.org/x/net and go.opentelemetry.io/otel (#1540, @mkowalski)
- Fix NMState CR becoming permanently stuck in Degraded state after transient
errors due to SSA field manager conflicts between reconcileStatus() and
setDegradedCondition() using inconsistent status update mechanisms. (#1552, @mkowalski) - TLS security profile handling now strictly adheres to the cluster-wide configuration: custom profile
curves(TLS key exchange groups, including post-quantum X25519MLKEM768) are honored, unknown or unhonorable profiles fail closed instead of falling back to defaults, and partially unsupported profile entries are reported through a newTLSProfileNotFullyHonoredDegraded condition on the NMState CR. (#1554, @mkowalski)
Installation
With Helm
Install the operator and the handler with a single command, using
Helm (>= 3.8):helm install nmstate oci://quay.io/nmstate/kubernetes-nmstate \ --version 0.87.0 \ --namespace nmstate \ --create-namespaceThis deploys the operator and, by default (
nmstate.enabled=true), an
NMStatecustom resource that makes the operator deploy the
kubernetes-nmstate handler on all nodes.With manifests
First, install kubernetes-nmstate operator:
kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.87.0/nmstate.io_nmstates.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.87.0/namespace.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.87.0/service_account.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.87.0/role.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.87.0/role_binding.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.87.0/operator.yamlOnce that's done, create an
NMStateCR, triggering deployment of
kubernetes-nmstate handler:cat <<EOF | kubectl create -f - apiVersion: nmstate.io/v1 kind: NMState metadata: name: nmstate EOF
- Add macOS development support via Lima VM with automatic cross-compilation for external x86_64
-
v0.86.1-0.20260728110715-5245b16f44c128 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260728091715-7e5c19d6a71328 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260720225033-c97527555ffa20 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260720154436-d5329fe4052120 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260717104030-3db52f66e64d17 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260716143633-0af6c7dad4f616 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260715170833-a5feb1c6314315 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260709185737-76e22dce07ab09 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260707144101-8853341855d607 Jul 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260622133118-d241f93098c422 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260616095623-ae98aadd911416 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260615140624-f84ff4646ef615 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260612131224-f1d52c34b46312 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260609201739-56f891e7b45b09 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260608103306-bcbb4561d13f08 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260605122957-afa0899391fc05 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260603114344-3ccd69b69a6503 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260603095114-438199e6e1f503 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260603070413-dd204646244b03 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260602163712-dfe2dbde425202 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260602082513-eaf17b4bb17302 Jun 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260529093859-5efae30a288c29 May 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260528133133-a5f1ecbc36fd28 May 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260526132506-ab814478a71926 May 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260515112300-4a7a1b32029c15 May 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260514065752-374f8bfceb0e14 May 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260513132351-bf8a6e78d84213 May 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260428152125-304ed86efebf28 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260424094056-d83f14ebaf9524 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260422064349-59ad31027e6622 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260416093906-7f099d2e526616 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260416073106-c48ddfef6ae216 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260410142714-1f02e2588acf10 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260408171134-11a1c14a49fb08 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260401210631-0a9ef5432d5c01 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260401125030-ff50e076e43b01 Apr 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260331200624-b6fd4739c89031 Mar 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260327190220-df8e977ae55527 Mar 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260327154022-dd9d448b321427 Mar 2026 pre-releaseNothing published for this version
-
v0.86.1-0.20260325150729-87345be335b425 Mar 2026 pre-releaseNothing published for this version
-
v0.86.025 Mar 2026Release notes
Open source →Changes
Enhancement
- Kube-rbac-proxy is not used any more.
- If TLS profile is available on the platform (now only implemented for OpenShift), it will be used for webhook and metrics server. Configuration will be dynamically updated when the profile changes. (#1453, @mkowalski)
- New metrics
kubernetes_nmstate_network_interfacesandkubernetes_nmstate_routesare introduced to track number of network interfaces and number of routes configured per node. (#1414, @mkowalski) - New metrics,
kubernetes_nmstate_policies_statusandkubernetes_nmstate_enactments_status, are now available to control the status of applied NNCPs and their corresponding NNCEs. (#1458, @mkowalski) - Remove networkmanager-go dependency (#1406, @qinqon)
- Remove nodeAffinity for
node-role.kubernetes.io/master(only used in Kubernetes < 1.24) (#1422, @koendelaat) - Replace NNCP validating webhooks with CRD-level CEL and ValidatingAdmissionPolicy for always-on, in-API-server validation (#1437, @qinqon)
terminationMessagePolicyis now set toFallbackToLogsOnErrorfor all the pods. (#1405, @mkowalski)
Bug or Regression
- Fix applied features gauge double-counting by using absolute Set/Delete instead of incremental Inc/Dec (#1439, @qinqon)
- Fix console plugin pod using the default service account, which violated OpenShift's no-default-service-account policy. (#1451, @qinqon)
- NNCP will not be in a reconcile deadlock after an unexpected cluster/handler restart. (#1427, @emy)
- Prevent apply exhausted or deleted policies on spurious reconcile (#1440, @qinqon)
- Reset NNCE conditions on policy generation change (#1442, @qinqon)
- The Pending() and NotPending() methods were incorrectly using progressing() instead of pending(), returning wrong counts. (#1430, @qinqon)
- Use NNCE pending to calculate NNCP Status (#1431, @qinqon)
- When deployed on OpenShift clusters, namespace is now annotated with
openshift.io/node-selector: "". Thanks to this, deployments using custom scheduler do not need any manual action to run correctly. (#1409, @mkowalski) openshift.io/node-selectorwas mistakenly added as a label and not as an annotation to the namespace. It is now fixed (#1425, @mkowalski)
Uncategorized
- Clean up licensing of this project. The top level readme wrongly states this was a GLP-2.0 project whereas every file containing source code had Apache-2.0 header. We now make sure everything is aligned to Apache-2.0. (#1408, @mkowalski)
- Fix ValidatingAdmissionPolicy CEL expression crash when NNCP condition has no reason field, which blocked policy updates and caused intermittent CI timeouts. (#1462, @qinqon)
- Migrate documentation site from Jekyll (Ruby) to Hugo (Go) with Docsy theme (#1445, @qinqon)
- NodeNetworkState does not contain
preferred-life-timeandvalid-life-timeany more. Instead,dynamic: trueis added. This is atstatus.currentState.interfaces[].ipv4.address(and respectively for IPv6). (#1413, @mkowalski) - We now use golang 1.25 and controller-runtime v0.23.2 (#1452, @mkowalski)
Installation
First, install kubernetes-nmstate operator:
kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.86.0/nmstate.io_nmstates.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.86.0/namespace.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.86.0/service_account.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.86.0/role.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.86.0/role_binding.yaml kubectl apply -f https://github.com/nmstate/kubernetes-nmstate/releases/download/v0.86.0/operator.yamlOnce that's done, create an
NMStateCR, triggering deployment of
kubernetes-nmstate handler:cat <<EOF | kubectl create -f - apiVersion: nmstate.io/v1 kind: NMState metadata: name: nmstate EOF
-
v0.85.2-0.20260324091858-04dbf1240d7c24 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260323125644-23bf74e0ae6323 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260320143643-138fcfdc26b520 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260319120519-55278b85378a19 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260316104519-4c2a74254d6f16 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260313074448-bf2cc4d1175f13 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260311171649-749756d15d6011 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260303115241-f7eb8708765a03 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260303082041-0a24c5e6c56503 Mar 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260227082748-4fbbbe05ae7627 Feb 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260223111649-c3c339aef13b23 Feb 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260218151323-507495f9e9a118 Feb 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260217143525-f53a5eb20ec017 Feb 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260213074708-62a1f0769bc513 Feb 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260211143914-77103cf327bd11 Feb 2026 pre-releaseNothing published for this version
-
v0.85.2-0.20260210163112-f3c79aaffe2410 Feb 2026 pre-releaseNothing published for this version