kuadlet is a lightweight CLI tool designed to bridge the gap between Podman's systemd integration and Kubernetes. It statically parses Podman Quadlet configuration files (such as .container, .pod, and .volume) and automatically generates equivalent Kubernetes YAML manifests.
Unlike the native podman kube generate command, which requires the containers to be actively running or created in the local Podman database, kuadlet performs a pure static translation. You only need the text files to generate your Kubernetes Deployments, Services, and PersistentVolumeClaims.
- Static Conversion: Generate Kubernetes YAML directly from Quadlet text files without needing a running container daemon.
- Seamless Migration: Provide a straightforward path for developers moving workloads from single-node Rootless Podman environments to full Kubernetes clusters.
- CI/CD Friendly: Enable easy integration into automated pipelines where running a Podman service is not feasible.
.containerParsing: Translates standard Quadlet container configurations into KubernetesDeploymentandPodspecifications.- Network & Port Mapping: Automatically extracts
PublishPortand other network directives to generate corresponding KubernetesServicemanifests. - Volume Translation: Converts Quadlet volume mounts into Kubernetes
PersistentVolumeClaim(PVC) andVolumemounts. - Environment Variables: Maps
EnvironmentandEnvironmentFilekeys directly to KubernetesenvandenvFromspecs.
# Convert a single Quadlet container file to a Kubernetes manifest
kuadlet convert ./my-app.container > deployment.yaml
# Convert a Quadlet pod file
kuadlet convert ./my-stack.pod > my-stack.yamlFor detailed information on how Quadlet fields are mapped to Kubernetes objects, please refer to the conversion rules:
- Commit Messages: All commit messages must adhere to the Conventional Commits specification (e.g.,
feat: add container parser,fix: correct port mapping,docs: update readme).
All code was written by jules.