Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/inovex/illuminatio

The kubernetes network policy validator.
https://github.com/inovex/illuminatio

Last synced: 18 days ago
JSON representation

The kubernetes network policy validator.

Lists

README

        

# illuminatio - The kubernetes network policy validator

[![Build Status](https://travis-ci.org/inovex/illuminatio.svg?branch=master)](https://travis-ci.org/inovex/illuminatio)
[![codecov](https://codecov.io/gh/inovex/illuminatio/branch/master/graph/badge.svg)](https://codecov.io/gh/inovex/illuminatio)

![logo](/img/logo_small.png)

illuminatio is a tool for automatically testing kubernetes network policies.
Simply execute `illuminatio clean run`
and illuminatio will scan your kubernetes cluster for network policies, build test cases accordingly and execute them
to determine if the policies are in effect.

An overview of the concept is visualized in [the concept doc](docs/concept.md).

## Demo

![Demo with NetworkPolicy enabled](img/demo-netpol-enabled.gif)

Watch it on asciinema with [NetworkPolicy enabled](https://asciinema.org/a/273548) or with [NetworkPolicy disabled](https://asciinema.org/a/273556).

## Getting started

Follow these instructions to get illuminatio up and running.

## Prerequisites

- Python 3.6 or greater
- Pip 3

## Installation

with pip:

```bash
pip3 install illuminatio
```

or directly from the repository:

```bash
pip3 install git+https://github.com/inovex/illuminatio
```

### Kubectl plugin

In order to use `illuminatio` as a [kubectl plugin](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins) run the following command:

```bash
ln -s $(which illuminatio) /usr/local/bin/kubectl-illuminatio
```

And now cross check that the plugin exists:

```bash
kubectl plugin list --name-only | grep illuminatio
The following compatible plugins are available:

kubectl-illuminatio
```

## Example Usage

Create a Deployment to test with:

```bash
kubectl create deployment web --image=nginx
kubectl expose deployment web --port 80 --target-port 80
```

Define and create a NetworkPolicy for your Deployment:

```bash
cat <