Skip to content

FastApi based web frontend to manage kind clusters with metallb and istio integration

Notifications You must be signed in to change notification settings

wlanboy/kind-web-controller

Repository files navigation

Kurzbeschreibung

Dieses Projekt startet einen FastAPI-Server (main:app) und nutzt Uvicorn als ASGI-Server. Siehe main:app für die App-Instanz und pyproject.toml für die deklarierte Abhängigkeiten. Mit dieser Weboberfläche kann:

  • Eine Kind Version ausgewählt und heruntergeladen werden.
  • Mit dieser ausgewählten Kind Version können dann beliebig viele kind Cluster erstellt werden.
  • Für jeden Cluster kann eine IP Range für Metallb angegeben werden.
  • Für jeden Cluster kann Istio installiert werden.
  • Für jeden Cluster kann die kubeconfig heruntergeladen werden.

Screenshots

Start

Start

Kind versions

Kind versions

Create cluster definition

Cluster definition

Install cluster

Cluster definition

Install Metallb

Metallb install

Install Istio

Istio install

More Clusters

Cluster management

Voraussetzungen

  • Python 3.12 (siehe .python-version)
  • Git
  • Optional: Docker / kind / kubectl (für Cluster-Operationen)

Virtuelle Umgebung

Empfohlen: lokale venv im Projekt:

# einmalig
python3 -m venv .venv

# aktivieren (bash / zsh)
source .venv/bin/activate

Abhängigkeiten installieren

pip install -r requirements.txt

Uvicorn (uv) — Entwicklung vs. Produktion ("uv sync")

  • Entwicklung: Verwenden Sie --reload, damit der Server bei Codeänderungen neu startet.
  • Produktion: Entfernen Sie --reload. Für mehrere Prozesse/CPU-Kerne nutzen Sie --workers oder einen Prozessmanager (z. B. systemd oder Gunicorn mit Uvicorn-Worker).

Beispiele

# Entwicklung (Hot reload)
.venv/bin/uvicorn main:app --reload --host 0.0.0.0 --port 8000
uv run uvicorn main:app --reload

# Produktion (einfach)
.venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4

Der Parameter --workers startet mehrere Prozesse (sinnvoll für CPU-bound Arbeit). Uvicorn selbst ist asynchron; synchroner Modus wird durch Einsatz multipler Worker bzw. durch Kombination mit Gunicorn erreicht.

swagger

redoc url

About

FastApi based web frontend to manage kind clusters with metallb and istio integration

Topics

Resources

Stars

Watchers

Forks