aojea / kind-networking-plugins

Extend KIND networking capabilities with plugins using the KIND API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kind-networking-plugins

Plugins to extend KIND networking capabilities with plugins using the KIND API

These plugins were used for the Kubecon EU 2021 presentation

Kubernetes Advanced Networking Testing with KIND

Overview

KIND is a tool for running local Kubernetes clusters using Docker container “nodes”.

KIND was primarily designed for testing Kubernetes itself, but may be used for local development or CI. This requires a strong focus in stability and resilience, thus adding new features is complicated. However, KIND exposes an API that can be leveraged for automation.

In the other hand, testing networking is always complicated, because it requires more complex scenarios to be able to cover all the features. Traditionally, this was difficult to automate, but nowadays, current virtualization techniques, like containers and virual networks make it possible.

This repository contains some example plugins to demonstrate how to extend KIND and automate complex Kubernetes clusters.

Multicluster

The multicluster plugin allows to simulate multicluster environments, deploying independent clusters, and emulating the WAN between those cluster, so the user can define the bandwith, latency and the error rate.

Usage

Multizone

The multizone plugin simulates a Cluster deployed across multiple availability zones.

Usage

Baremetal

The baremetal plugins demonstrates how to extend current KIND configuration to create new networks in the cluster.

Usage

About

Extend KIND networking capabilities with plugins using the KIND API

License:Apache License 2.0


Languages

Language:Go 95.5%Language:Shell 3.7%Language:Makefile 0.6%Language:Dockerfile 0.2%