• Stars
    star
    109
  • Rank 319,077 (Top 7 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 4 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tools for understanding, measuring, and applying network policies effectively in kubernetes

Cyclonus

Network policy explainer, prober, and test case generator

Parse, explain, and probe network policies to understand their implications and help design policies that suit your needs!

Quickstart

Users: check out the:

Developers: check out the Developer guide

CLI usage

Cyclonus disambiguation

If you're looking for the official kubernetes network policy tool, check out: https://github.com/kubernetes-sigs/network-policy-api . Active development of network policy verification is continuing there.

https://github.com/mattfenwick/cyclonus will remain open and be used for research, experimentation, and hacking!

Integrations

Cyclonus is available as a krew/kubectl plugin:

  • Set up krew
  • install: kubectl krew install cyclonus
  • use: kubectl cyclonus -h

Antrea testing: Cyclonus runs network policy tests for Antrea on a daily basis.

Cilium testing: Cyclonus runs network policy tests for Cilium on a daily basis.

Sonobuoy plugin: run Cyclonus tests through Sonobuoy.

Motivation and History

Testing network policies for CNI providers on Kubernetes has historically been very difficult, requiring a lot of boilerplate.

This was recently improved upstream via truth table based tests:

Cyclonus is the next evolution: in addition to truth-table connectivity tests, it adds two new components:

  • a powerful network policy engine implementing the Kubernetes network policy specification
  • a test case generator, allowing for easy testing of hundreds of network policy scenarios

Cyclonus aims to make network policies and implementations easy to understand, easy to use correctly, and easy to verify.

Thanks to contributors

  • @dougsland
  • @jayunit100
  • @johnSchnake
  • @enhaocui
  • @matmerr
  • @huntergregory
  • @jaydeokar