From 4545b5c5e0feaa2412c2d27dea75d88e6fa7b08f Mon Sep 17 00:00:00 2001 From: kenpat Date: Mon, 15 Jun 2026 11:56:59 -0500 Subject: [PATCH] chore: rename assassin cluster to T14s and add kavita gitops manifests --- RUNBOOK.md | 4 +- apps/kavita/deployment.yaml | 39 +++++++++++++++++++ apps/kavita/kustomization.yaml | 7 ++++ apps/kavita/namespace.yaml | 4 ++ apps/kavita/pvc.yaml | 12 ++++++ apps/kavita/service.yaml | 14 +++++++ clusters/{assassin => T14s}/deployment.yaml | 0 .../flux-system/gitrepository.yaml | 0 .../flux-system/kustomization.yaml | 3 +- clusters/{assassin => T14s}/homepage.yaml | 0 .../{assassin => T14s}/kustomization.yaml | 0 clusters/{assassin => T14s}/namespace.yaml | 0 clusters/{assassin => T14s}/service.yaml | 0 docs/KiteStacks-Homelab-Documentation-v1.2.md | 2 +- docs/KiteStacks-Homelab-Documentation-v1.3.md | 6 +-- docs/disaster-recovery/RUNBOOK.md | 2 +- 16 files changed, 84 insertions(+), 9 deletions(-) create mode 100644 apps/kavita/deployment.yaml create mode 100644 apps/kavita/kustomization.yaml create mode 100644 apps/kavita/namespace.yaml create mode 100644 apps/kavita/pvc.yaml create mode 100644 apps/kavita/service.yaml rename clusters/{assassin => T14s}/deployment.yaml (100%) rename clusters/{assassin => T14s}/flux-system/gitrepository.yaml (100%) rename clusters/{assassin => T14s}/flux-system/kustomization.yaml (76%) rename clusters/{assassin => T14s}/homepage.yaml (100%) rename clusters/{assassin => T14s}/kustomization.yaml (100%) rename clusters/{assassin => T14s}/namespace.yaml (100%) rename clusters/{assassin => T14s}/service.yaml (100%) diff --git a/RUNBOOK.md b/RUNBOOK.md index d7de579..5fe6832 100644 --- a/RUNBOOK.md +++ b/RUNBOOK.md @@ -15,12 +15,12 @@ Internet │ Active-Active across 3 connectors ├── cloudflared on monk (primary home machine) ├── cloudflared on kscloud1 (Hetzner VPS, ) - └── cloudflared on assassin (T14, currently OFF) + └── cloudflared on T14s (currently OFF) Tailscale overlay network (VPN mesh): monk kscloud1 ← hosts shared Authentik Postgres + Redis - assassin (off) + T14s (off) pixel-6 samurai ``` diff --git a/apps/kavita/deployment.yaml b/apps/kavita/deployment.yaml new file mode 100644 index 0000000..be53f7d --- /dev/null +++ b/apps/kavita/deployment.yaml @@ -0,0 +1,39 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kavita + namespace: kavita + labels: + app: kavita +spec: + replicas: 1 + selector: + matchLabels: + app: kavita + template: + metadata: + labels: + app: kavita + spec: + containers: + - name: kavita + image: ghcr.io/kareadita/kavita:latest + ports: + - containerPort: 5000 + name: http + env: + - name: TZ + value: "UTC" + volumeMounts: + - name: kavita-config + mountPath: /kavita/config + - name: kavita-library + mountPath: /books + volumes: + - name: kavita-config + persistentVolumeClaim: + claimName: kavita-config-pvc + - name: kavita-library + hostPath: + path: /home/kenpatmonk/kitestacks-live/library/books + type: Directory diff --git a/apps/kavita/kustomization.yaml b/apps/kavita/kustomization.yaml new file mode 100644 index 0000000..75b98fc --- /dev/null +++ b/apps/kavita/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1 +kind: Kustomization +resources: + - namespace.yaml + - pvc.yaml + - deployment.yaml + - service.yaml diff --git a/apps/kavita/namespace.yaml b/apps/kavita/namespace.yaml new file mode 100644 index 0000000..1c67f1b --- /dev/null +++ b/apps/kavita/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: kavita diff --git a/apps/kavita/pvc.yaml b/apps/kavita/pvc.yaml new file mode 100644 index 0000000..8edf16f --- /dev/null +++ b/apps/kavita/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: kavita-config-pvc + namespace: kavita +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi + storageClassName: local-path diff --git a/apps/kavita/service.yaml b/apps/kavita/service.yaml new file mode 100644 index 0000000..1eb4bf8 --- /dev/null +++ b/apps/kavita/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: kavita + namespace: kavita +spec: + selector: + app: kavita + ports: + - protocol: TCP + port: 80 + targetPort: 5000 + name: http + type: ClusterIP diff --git a/clusters/assassin/deployment.yaml b/clusters/T14s/deployment.yaml similarity index 100% rename from clusters/assassin/deployment.yaml rename to clusters/T14s/deployment.yaml diff --git a/clusters/assassin/flux-system/gitrepository.yaml b/clusters/T14s/flux-system/gitrepository.yaml similarity index 100% rename from clusters/assassin/flux-system/gitrepository.yaml rename to clusters/T14s/flux-system/gitrepository.yaml diff --git a/clusters/assassin/flux-system/kustomization.yaml b/clusters/T14s/flux-system/kustomization.yaml similarity index 76% rename from clusters/assassin/flux-system/kustomization.yaml rename to clusters/T14s/flux-system/kustomization.yaml index 29050fb..e5048fd 100644 --- a/clusters/assassin/flux-system/kustomization.yaml +++ b/clusters/T14s/flux-system/kustomization.yaml @@ -5,9 +5,8 @@ metadata: namespace: flux-system spec: interval: 1m - path: ./apps/kavita-docker-automation + path: ./apps/kavita prune: true sourceRef: kind: GitRepository name: kitestacks-homelab - targetNamespace: automation diff --git a/clusters/assassin/homepage.yaml b/clusters/T14s/homepage.yaml similarity index 100% rename from clusters/assassin/homepage.yaml rename to clusters/T14s/homepage.yaml diff --git a/clusters/assassin/kustomization.yaml b/clusters/T14s/kustomization.yaml similarity index 100% rename from clusters/assassin/kustomization.yaml rename to clusters/T14s/kustomization.yaml diff --git a/clusters/assassin/namespace.yaml b/clusters/T14s/namespace.yaml similarity index 100% rename from clusters/assassin/namespace.yaml rename to clusters/T14s/namespace.yaml diff --git a/clusters/assassin/service.yaml b/clusters/T14s/service.yaml similarity index 100% rename from clusters/assassin/service.yaml rename to clusters/T14s/service.yaml diff --git a/docs/KiteStacks-Homelab-Documentation-v1.2.md b/docs/KiteStacks-Homelab-Documentation-v1.2.md index e585ca3..013fe19 100644 --- a/docs/KiteStacks-Homelab-Documentation-v1.2.md +++ b/docs/KiteStacks-Homelab-Documentation-v1.2.md @@ -29,4 +29,4 @@ Verified command: ```bash kubectl get nodes -assassin Ready control-plane +T14s Ready control-plane diff --git a/docs/KiteStacks-Homelab-Documentation-v1.3.md b/docs/KiteStacks-Homelab-Documentation-v1.3.md index 98a43b0..4e806a0 100644 --- a/docs/KiteStacks-Homelab-Documentation-v1.3.md +++ b/docs/KiteStacks-Homelab-Documentation-v1.3.md @@ -21,7 +21,7 @@ The homelab is currently operating in a hybrid state: Hostname: ```text -assassin +T14s ``` Role: @@ -70,7 +70,7 @@ kubectl get nodes Expected Result: ```text -assassin Ready control-plane +T14s Ready control-plane ``` --- @@ -131,7 +131,7 @@ Purpose: kitestacks-homelab ├── apps ├── clusters -│ └── assassin +│ └── T14s ├── docs ├── infrastructure └── media diff --git a/docs/disaster-recovery/RUNBOOK.md b/docs/disaster-recovery/RUNBOOK.md index 51548db..ab9da2a 100644 --- a/docs/disaster-recovery/RUNBOOK.md +++ b/docs/disaster-recovery/RUNBOOK.md @@ -19,7 +19,7 @@ Cloud Failover (PERMANENT, active-active - NOT cold standby): - Tailscale IP: - Runs a full replica of all 9 services -assassin (T14): retired/OFF, no longer part of the topology. +T14s: Active cluster node (GitOps). Domains: - www.kitestacks.com (+ ai, auth, gitforge, grafana, kavita, links, status, tasks)