Paste a docker-compose.yml. Get Kubernetes manifests or a starter Helm chart. Handles image, ports, environment, command, and deploy.replicas.
Note: this covers the common fields (image, ports, environment, command, deploy.replicas). Volumes, networks, and secrets need manual review before applying to a real cluster.
How it works
The compose YAML is parsed with the js-yaml library, then each service is turned into hand-built Deployment and Service YAML strings — image, ports (as containerPort/targetPort pairs), environment variables, command arrays, and deploy.replicas are all mapped directly to their Kubernetes manifest equivalents. Volumes, networks, and secrets are deliberately left out because they don't have a safe one-to-one mapping to Kubernetes primitives (PersistentVolumeClaims, NetworkPolicies, and Secrets each require decisions this converter can't make for you) — the output explicitly calls out that they need manual review.
FAQ
Why doesn't it convert my volumes or secrets?
Because compose volumes and Kubernetes storage work fundamentally differently — a bind mount or named volume in compose doesn't map cleanly onto a PersistentVolumeClaim without you deciding on a storage class and access mode, and compose environment secrets shouldn't become plaintext Kubernetes Secrets without review — so this converter flags them for manual handling instead of guessing.
What's the difference between the Kubernetes manifests and Helm chart output modes?
The Kubernetes mode outputs ready-to-apply Deployment and Service YAML with values hardcoded in; the Helm mode instead generates a values.yaml with your services' settings extracted as variables, plus deployment templates that reference those values with {{ .Values... }} syntax, giving you a starting point for a reusable chart.
Free, unlimited, no account. If this saved you a paid tool, a small thanks is appreciated.