Files
cloudy/cluster/swarm-converted

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:

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