k8s-lab-plz icon indicating copy to clipboard operation
k8s-lab-plz copied to clipboard

Modular Kubernetes lab which provides an easy and streamlined way to deploy a test cluster with support for different components.

k8s-lab-plz is a modular Kubernetes lab which provides an easy and streamlined way (managed via please.build) to deploy a test cluster with support for different components.

Each component can be deployed in a repeatable way with one single command.

Usage for supported components:

Component Usage Namespace
Baremetal Setup (Load Balancing, Volumes, etc.) docs ingress-nginx
metallb-system
haproxy
Vault docs vault
ELK (Elasticsearch, Kibana, Filebeats) docs elastic-system
Observability (Prometheus, Grafana, Alertmanager) docs observability
Kafka (Kafka, Zookeeper, KafkaExporter, Entity Operator) docs kafka
Cartography docs cartography
Yopass docs yopass

Prerequisites

  • Minikube (see official docs for your OS) or Baremetal Kubernetes (see baremetal setup)
    • If using minikube, ensure it is up and running:
      ❯ minikube start --cpus 4 --memory 6098
      
  • Docker (see official docs for your OS)
  • Plz (see official docs for your OS)
  • Helm 3 (see official docs for your OS)

Roadmap

  • [X] ~~Vault~~
  • [X] ~~ELK (Elasticsearch, Kibana, Filebeats)~~
  • [X] ~~Observability (Prometheus, Grafana, Alertmanager)~~
  • [X] ~~Kafka (Kafka, Zookeeper, KafkaExporter, Entity Operator)~~
  • [X] ~~Baremetal Setup (Load Balancing, Volumes, etc.)~~
  • [X] ~~Cartography~~
  • [X] ~~Yopass~~
  • [ ] Istio
  • [ ] Gatekeeper
  • [ ] Falco
  • [ ] Starboard
  • [ ] Audit logging
  • [ ] Private Registry

Interested in another component to be added? Raise an issue!

For a more detailed view of what's coming up, please refer to the Kanban board.