Swarm To Kubernetes Conversion
This directory contains a first-pass Kubernetes conversion of the main Swarm application stacks from:
swarm/core.ymlswarm/services.ymlswarm/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.labelswere mapped into KubernetesService,Deployment,PersistentVolumeClaim,IngressRoute, andMiddlewareresources. - 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.
LOCALDOMAINroutes 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:
- Replace every
REPLACE_DOMAINplaceholder. - Review
01-config.yamland set real secrets. - Review PVC sizing and storage classes in
03-storage.yaml. - Confirm Traefik entry points
websecureandpostgresexist in the cluster.
Suggested apply order:
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:
kubectl get all -n swarm-converted
kubectl get ingressroute,ingressroutetcp,middleware -n swarm-converted
kubectl describe pod -n swarm-converted