Files

44 lines
1.8 KiB
Markdown

# Swarm To Kubernetes Conversion
This directory contains a first-pass Kubernetes conversion of the main Swarm application stacks from:
- `swarm/core.yml`
- `swarm/services.yml`
- `swarm/apps.yml`
Scope and assumptions:
- The conversion targets the core public-facing services, not every file under `swarm/`.
- Swarm-only constructs such as overlay networks, placement constraints, and `deploy.labels` were mapped into Kubernetes `Service`, `Deployment`, `PersistentVolumeClaim`, `IngressRoute`, and `Middleware` resources.
- Resource names use Kubernetes-safe hyphenated names where Swarm used underscores.
- Public routes keep Traefik semantics through Traefik CRDs, so the cluster must already have Traefik and its CRDs installed.
- `LOCALDOMAIN` routes were intentionally omitted.
- Persistent host paths from Swarm were converted to PVCs so the manifests are more portable.
- The Traefik Swarm deployment itself was not copied directly; this directory assumes a Kubernetes Traefik controller already exists.
Before applying:
1. Replace every `REPLACE_DOMAIN` placeholder.
2. Review `01-config.yaml` and set real secrets.
3. Review PVC sizing and storage classes in `03-storage.yaml`.
4. Confirm Traefik entry points `websecure` and `postgres` exist in the cluster.
Suggested apply order:
```bash
kubectl apply -f cluster/swarm-converted/00-namespace.yaml
kubectl apply -f cluster/swarm-converted/01-config.yaml
kubectl apply -f cluster/swarm-converted/02-traefik.yaml
kubectl apply -f cluster/swarm-converted/03-storage.yaml
kubectl apply -f cluster/swarm-converted/10-services-stack.yaml
kubectl apply -f cluster/swarm-converted/11-apps-stack.yaml
```
Useful checks:
```bash
kubectl get all -n swarm-converted
kubectl get ingressroute,ingressroutetcp,middleware -n swarm-converted
kubectl describe pod -n swarm-converted
```