Release Notes
Big release for Podlet!
In case you didn't already notice, Podlet is now officially a part of the Containers community! As a part of the transition, a new code of conduct, security policy, and contribution guidelines were added (#76). Additionally, the Podlet container image is now available at ghcr.io/containers/podlet. The existing images at quay.io/k9withabone/podlet and docker.io/k9withabone/podlet are deprecated and will not be receiving updates.
Under the hood, the library used to deserialize Compose files was changed (#73). As a result, only Compose files which follow the Compose specification are supported. The top-level version field is completely ignored. Most Compose files should still work as before. This was a large change so look out for bugs.
Added support for Quadlet options introduced in Podman v5.0.0 (#75). The headline feature is support for generating Quadlet .pod files. They can be generated from:
- A Podman command with
podlet podman pod create. - A Compose file with
podlet compose --pod. - An existing pod with
podlet generate pod.- This creates a
.podfile and a.containerfile for each container in the pod.
- This creates a
Note that the existing option for generating Kubernetes Pod YAML from a Compose file was renamed to podlet compose --kube. Both the --pod and --kube options of podlet compose do not take an argument and instead require the top-level name field in the Compose file. The name is used as the name of the pod and in the filename of the created files.
Features
- Add
podlet --binds-tooption. - BREAKING (compose) Rename
podlet compose --podtopodlet compose --kube. - (container) Add
Entrypoint=Quadlet option. - (container) Add
StopTimeout=Quadlet option. - (container) Support
Notify=healthyQuadlet option. - (container) Support
no-dereferenceoption forMount=. - (container) Add
podman run --preserve-fdoption. - (container) Add
podman run --gpusoption. - (container) Add
podman run --retryoption. - (container) Add
podman run --retry-delayoption. - Add
podman --configglobal option. - (pod) Generate
.podQuadlet file from command.- Adds the
podlet podman pod createsubcommand. - The
--infra-conmon-pidfileand--pod-id-fileoptions were deliberately not implemented as they are set by Quadlet in the generated{name}-pod.servicefile and can't be set multiple times.
- Adds the
- BREAKING (compose) Re-add
podlet compose --podoption.- The
--podoption causes podlet to create a.podQuadlet file in addition to the.container,.volume, and.networkfiles. The containers are linked to the pod and their published ports are moved.
- The
- (generate) Quadlet files from an existing pod and its containers.
- Adds the
podlet generate podsubcommand.- Runs
podman pod inspecton the given pod. - Deserializes the output.
- Parses the pod creation command.
- Does the same for each of the pod's containers.
- Runs
- Adds the
Bug Fixes
- Use Quadlet serializer for
UnitDisplayimplementation (#64).- Brings
Unitinline with the other sections of the generated Quadlet file.
- Brings
- (container) Add
podman run --utsoption. - (container)
--pids-limitrange is-1..=u32::MAX. - (container) Enforce
--blkio-weightrange10..=1000. - (container)
--blkio-weight-devicecan be specified multiple times. - (container) Don't add empty
PodmanArgs=when downgrading Podman version. - Correct use of
eyre::bail!()on non-Unix platforms.
Documentation
- (clippy) Fix Clippy lint warning for
Idmap. - (compose)
--kubehelp addnamerequirement. - Add code of conduct.
- Add security policy.
- Update links to the repository.
- The repository is now at https://github.com/containers/podlet.
- (contributing) Add contribution guidelines.
- Adapted from the Buildah/Podman contribution guidelines.
- Suggests the use of conventional commits and clarifies that the
Signed-off-byfooter is required for a PR to be merged. - Moved and expanded upon the building and continuous integration sections from the
README.mdfile to the newCONTRIBUTING.mdfile.
- (readme) Update container image location.
- The Podlet container image is now located at ghcr.io/containers/podlet.
- Fix Podman and Quadlet capitalization.
- (readme) Update demo, features, and usage.
Refactor
- BREAKING (deps) Remove
docker_compose_types. - BREAKING (compose) Deserialize
compose_spec::Compose. cli::Unit::is_empty()- Check each field instead of comparing to the default.
- (compose) Conversion to
quadlet::Files fromcompose_spec::Compose. - (compose)
quadlet::Globalsfromcompose_spec::Service. - (compose) Container Quadlet options from
compose_spec::Service. - (compose) Container Podman args from
compose_spec::Service. - (compose)
quadlet::Networkfromcompose_spec::Network. - (compose)
quadlet::Volumefromcompose_spec::Volume. - (compose) Kubernetes YAML from
compose_spec::Compose. - (container) Destructure in Quadlet option conversion.
- (compose) Move
podlet composeargs into their own struct.
Miscellaneous
- (deps) Remove
duration-strdependency.- All usages were replaced with
compose_spec::duration.
- All usages were replaced with
- Add Podman v5.0.0 to Podman versions.
- Also added v4.9.X aliases to 4.8 and v5.0.X aliases to 5.0.
- (container) Reorder fields to match Quadlet docs.
- (lints) Fix new rust 1.78 clippy lints.
- BREAKING (release-container) Push to ghcr.io/containers/podlet.
- The docker.io/k9withabone/podlet and quay.io/k9withabone/podlet container images will no longer be updated.
- (release-container) Add annotations/labels to manifest/image.
- Adds labels to the Podlet container image and annotations to the multi-arch manifest as suggested by the GitHub packages documentation: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#labelling-container-images.
- (ci) Bump actions/checkout to v4.
- (ci) Use Buildah container to build Podlet container.
- (deps) Update dependencies.
- (release) Update cargo-dist.
- (release-container) Fix manifest annotation quoting.
- (ci) Use consistent formatting.
- (ci) Add image to manifest when building container.
- (ci) Add
buildjob.
Download podlet 0.3.0
| File | Platform | Checksum |
|---|---|---|
| podlet-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| podlet-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| podlet-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| podlet-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| podlet-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |