6
24
Fork
You've already forked ifstate
13
Manage host interface settings in a declarative manner https://ifstate.net
  • Python 91.3%
  • Nix 4.9%
  • Shell 3.7%
Christian Theune 0b399f7119
All checks were successful
pre-commit / pre-commit (pull_request) Successful in 17s
pytest / python (pull_request) Successful in 25s
pre-commit / pre-commit (push) Successful in 19s
pytest / python (push) Successful in 25s
wireguard: add test for 010e1d8223
The regression was initially not detected by our not-yet-established
test suite ;)
Fixing it is a good chance to start covering more parts. This is
mostly a smoke test, but it triggers if we revert the regression fix.
Note: this doesn't work on MacOS - if we want it to, we likely need
to mock out the pyroute2 calls to ensure proper link state info.
2026年07月07日 09:38:38 +02:00
.forgejo/workflows tooling: move to RouterKit runners 2026年07月06日 23:15:16 +02:00
docs fix mkdocs workflow 2026年06月26日 12:32:33 +02:00
ex openrc: add machine-id dependency (related to #189 ) 2026年06月09日 23:15:15 +02:00
package tooling: add pre-commit including import reformatting, linting and some QoL 2026年06月25日 13:36:55 +02:00
schema/2 schema: fix typo in description 2026年07月06日 20:56:30 +02:00
scripts tooling: add pre-commit including import reformatting, linting and some QoL 2026年06月25日 13:36:55 +02:00
src wireguard: add test for 010e1d8223 2026年07月07日 09:38:38 +02:00
.envrc nix: add devshell 2025年08月13日 16:02:06 +02:00
.gitignore tooling: ignore MacOS finder files 2026年06月25日 13:35:29 +02:00
.pre-commit-config.yaml tooling: add shellcheck for hook scripts 2026年06月28日 12:41:51 +02:00
CHANGELOG.md tooling: add pre-commit including import reformatting, linting and some QoL 2026年06月25日 13:36:55 +02:00
flake.lock flake.lock: Update (25.11) 2026年01月13日 20:47:00 +01:00
flake.nix flake.lock: Update (25.11) 2026年01月13日 20:47:00 +01:00
LICENSE Initial commit 2020年05月21日 23:41:08 +02:00
mkdocs.yaml fix mkdocs workflow 2026年06月26日 12:32:33 +02:00
module.nix ifstate: update repository URL 2026年02月05日 23:25:03 +01:00
package.nix fix mkdocs workflow 2026年06月26日 12:32:33 +02:00
pyproject.toml testing: add pytest support 2026年06月26日 12:32:33 +02:00
pytest.ini testing: add pytest support 2026年06月26日 12:32:33 +02:00
README.md Update ifstate description. 2023年10月29日 21:17:04 +01:00
shell.nix nix: add mkdocs-macros-plugin to docs package and devshell 2026年01月13日 20:49:29 +01:00
sync-dev.sh logging: avoid duplicate logging in systemd, refactor/simplify socket detection 2026年06月26日 12:32:33 +02:00
uv.lock testing: add pytest support 2026年06月26日 12:32:33 +02:00

IfState

PyPI version

A python tool to configure (linux) host interfaces in a declarative manner. It is a frontend for the kernel netlink protocol using pyroute2 and aims to be as powerful as the iproute2/bridge/ethtool/tc/wireguard commands.

It was written for interface configuration on lightweight software defined linux routers without using any additional network management daemon like Network-Manager or systemd-networkd.

Can be used with deployment and automation tools like ansible since it's declarative and operates idempotent.

More...