{"id":13820282,"url":"https://github.com/nmstate/kubernetes-nmstate","last_synced_at":"2025-04-08T09:08:39.382Z","repository":{"id":37285991,"uuid":"155579204","full_name":"nmstate/kubernetes-nmstate","owner":"nmstate","description":"Declarative node network configuration driven through Kubernetes API.","archived":false,"fork":false,"pushed_at":"2025-03-24T14:06:49.000Z","size":102002,"stargazers_count":216,"open_issues_count":9,"forks_count":94,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-01T07:53:37.365Z","etag":null,"topics":["kubernetes","linux","networking"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nmstate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-31T15:19:55.000Z","updated_at":"2025-03-24T13:37:05.000Z","dependencies_parsed_at":"2022-07-12T10:02:56.345Z","dependency_job_id":"503e729d-899a-41bd-b099-8adb4408e836","html_url":"https://github.com/nmstate/kubernetes-nmstate","commit_stats":{"total_commits":775,"total_committers":48,"mean_commits":"16.145833333333332","dds":0.5612903225806452,"last_synced_commit":"1e93382cfb6a53d46aba4785c194a03c4b75c994"},"previous_names":[],"tags_count":152,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmstate%2Fkubernetes-nmstate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmstate%2Fkubernetes-nmstate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmstate%2Fkubernetes-nmstate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmstate%2Fkubernetes-nmstate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nmstate","download_url":"https://codeload.github.com/nmstate/kubernetes-nmstate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809962,"owners_count":20999816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kubernetes","linux","networking"],"created_at":"2024-08-04T08:01:00.845Z","updated_at":"2025-04-08T09:08:39.350Z","avatar_url":"https://github.com/nmstate.png","language":"Go","funding_links":[],"categories":["NetWork","linux"],"sub_categories":[],"readme":"\n# kubernetes-nmstate\n\n\u003cimg src=\"logo/fullcolor.png\" alias=\"project logo\" /\u003e\n\n[keɪ ɛn ɛm steɪt] Declarative node network configuration driven through Kubernetes API.\n\n# How it works\n\nWe use [nmstate](https://nmstate.io/) to perform state driven network\nconfiguration on cluster nodes and to report back their current state.\nBoth the configuration and reporting is controlled via Kubernetes objects.\n\n```yaml\napiVersion: nmstate.io/v1\nkind: NodeNetworkConfigurationPolicy\nmetadata:\n  name: br1-eth0\nspec:\n  desiredState:\n    interfaces:\n    - name: br1\n      type: linux-bridge\n      state: up\n      ipv4:\n        dhcp: true\n        enabled: true\n      bridge:\n        port:\n        - name: eth0\n```\n\nThe only external dependency is NetworkManager running on nodes. See more\ndetails in\n[Compatibility documentation](CONTRIBUTING.md#networkmanager-compatibility).\n\n# Deployment and Usage\n\nYou can choose to deploy this operator on a\n[local virtualized cluster](https://nmstate.github.io/kubernetes-nmstate/deployment/local-cluster) or on your\n[arbitrary cluster](https://nmstate.github.io/kubernetes-nmstate/deployment/arbitrary-cluster).\n\nFollowing comprehensive 101 series is the best place to start learning about all\nthe features:\n\n1. [Reporting](https://nmstate.github.io/kubernetes-nmstate/user-guide/101-reporting) -\n   observe the current state of network on cluster nodes.\n2. [Configuring](https://nmstate.github.io/kubernetes-nmstate/user-guide/102-configuration) -\n   configure networks and observe the progress.\n3. [Troubleshooting](https://nmstate.github.io/kubernetes-nmstate/user-guide/103-troubleshooting) -\n   see what's wrong if a configuration fails.\n\nThese example manifests should serve as reference on how to configure various\nconfiguration options:\n\n- [Linux bonding](docs/examples/bond.yaml)\n- [Linux bonding with VLAN](docs/examples/bond-vlan.yaml)\n- [Linux bridge](docs/examples/linux-bridge.yaml)\n- [Linux bridge with custom VLAN](docs/examples/linux-bridge-vlan.yaml)\n- [VLAN](docs/examples/vlan.yaml)\n- [Ethernet](docs/examples/ethernet.yaml)\n- [Open vSwitch bridge](docs/examples/ovs-bridge.yaml)\n- [Open vSwitch bridge interface](docs/examples/ovs-bridge-iface.yaml)\n- [Static IP](docs/examples/static-ip.yaml)\n- [DHCP](docs/examples/dhcp.yaml)\n- [Routes](docs/examples/route.yaml)\n- [DNS](docs/examples/dns.yaml)\n- [Workers selector](docs/examples/worker-selector.yaml)\n\n# The \"Why\"\n\nWith hybrid clouds, node-networking setup is becoming even more challenging.\nDifferent payloads have different networking requirements, and not everything\ncan be satisfied as overlays on top of the main interface of the node (e.g.\nSR-IOV, L2, other L2).\nThe [Container Network Interface](https://github.com/containernetworking/cni)\n(CNI) standard enables different\nsolutions for connecting networks on the node with pods. Some of them are\n[part of the standard](https://github.com/containernetworking/plugins), and there are\nothers that extend support for [Open vSwitch bridges](https://github.com/kubevirt/ovs-cni),\n[SR-IOV](https://github.com/hustcat/sriov-cni), and more...\n\nHowever, in all of these cases, the node must have the networks setup before the\npod is scheduled. Setting up the networks in a dynamic and heterogenous cluster,\nwith dynamic networking requirements, is a challenge by itself - and this is\nwhat this project is addressing.\n\n# Development and Contributing\n\nContributions are welcome! Find details about the project's design and\ndevelopment workflow in the [developer guide](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmstate%2Fkubernetes-nmstate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmstate%2Fkubernetes-nmstate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmstate%2Fkubernetes-nmstate/lists"}