Cloud Foundry to Kubernetes Blueprint
Migrate Cloud Foundry apps to Kubernetes. CF apps are already twelve-factor, so the work is replacing platform conveniences: buildpacks become OCI images via the pack CLI, manifest.yml becomes Helm, routes become ingress, and service bindings become managed secrets.
What and Why
This blueprint migrates apps from Cloud Foundry (Pivotal/Tanzu Application Service or open-source CF) to Kubernetes. Teams move to reduce platform licensing, gain ecosystem breadth, and consolidate on a single orchestrator. The good news: Cloud Foundry apps are already largely twelve-factor, so the conceptual leap is small; the work is replacing CF's opinionated platform conveniences with explicit Kubernetes resources.
Phases
Assessment. Catalog apps, their manifest.yml settings (instances, memory, routes, env), buildpacks in use, and service bindings (databases, message brokers, credentials brokered by the marketplace).
Image strategy. Convert buildpack-based deployment to container images. Cloud Native Buildpacks (the pack CLI) reproduce the buildpack experience and emit OCI images, minimizing per-app Dockerfile work. Harden and pin images.
Platform build. Stand up Kubernetes with ingress (to replace CF routes), a CSI for storage, external-secrets to replace CF service bindings, an autoscaler (HPA to replace cf scale), and a GitOps controller. Establish a service catalog or operators for the backing services apps relied on.
App migration. Translate each manifest.yml into a Helm chart: routes become Ingress, env becomes ConfigMaps/Secrets, instances become replicas. Re-create service bindings as Kubernetes secrets or operator-managed instances.
Cutover. Deploy to Kubernetes, validate, shift DNS from CF routes to Kubernetes ingress per app, and decommission the CF foundation once empty.
Key Risks and Mitigations
- Lost platform conveniences (routing, scaling, service marketplace). Map each to an explicit Kubernetes component before migrating apps.
- Service binding gaps. Re-create credentials via external-secrets and provision backing services with operators.
- Config drift from manual translation. Templatize manifest-to-Helm conversion.
- Skills gap. CF developers know twelve-factor but not Kubernetes primitives; invest in enablement.
Recommended Tooling
Cloud Native Buildpacks (pack), Kubernetes with Helm, Argo CD for GitOps, external-secrets, ingress controllers, and Prometheus and Grafana.
Success Metrics
Track deployment frequency, lead time, platform cost reduction versus the CF license, and mean time to recovery.
Prerequisites
A Kubernetes platform with ingress and secrets management, a container registry, an inventory of CF apps and service bindings, and a GitOps workflow.