Release Notes
After an extended hiatus, Podlet is back! I, @k9withabone, apologize for my prolonged absence and silence. Life is overwhelming at times.
The good news is @TheRealBecks has stepped up and joined me as a maintainer! We are also looking another maintainer to join us! If you are interested please comment on this discussion (#171).
This is a fairly large release which includes a number of bug fixes and new features. In the future, the goal is to have smaller releases more frequently. Here are some highlights of this release:
-
Added support for Quadlet options introduced in Podman v5.1.0 (#85) and v5.2.0 (#123). This includes support for creating
.buildQuadlet files withpodlet podman buildand from thebuildsection of a service in a Compose file. -
Added the
-s, --split-optionsoption (#168) which allows the user to specify which Quadlet options should be split onto multiple lines.
By default, Podlet combines all Quadlet options that can be into a space separated list.
For example,podlet podman run -e ONE=one -e TWO=two imageresults in:# image.container [Container] Environment=ONE=one TWO=two Image=image
While
podlet -s Environment podman run -e ONE=one -e TWO=two imageresults in:# image.container [Container] Environment=ONE=one Environment=TWO=two Image=image
See
podlet --helpfor more information and all Quadlet options that can be split. -
Fixed a number of bugs related to Compose file handling (#122).
-
Added a Minimum Supported Rust Version (MSRV) policy (#169) which can be seen in the contribution guide.
Features
- (container) Add
GroupAdd=Quadlet option. - (container) Add
subpathimage mount option. - (generate) Add options to ignore unsupported pod options. (#86)
- Added
--ignore-infra-conmon-pidfileand--ignore-pod-id-fileoptions topodlet generate pod. - The
--infra-conmon-pidfileand--pod-id-fileoptions are deliberately unimplemented bypodlet podman pod createas they are set by Quadlet when generating the systemd service unit file, and cannot be set multiple times. Becausepodlet generate podusespodlet podman pod createinternally, this caused an error when attempting to generate a.podQuadlet file from a pod created using either of those options, such as those created with the deprecatedpodman generate systemdcommand.
- Added
- (compose) Merge
<<keys. (#58) - (compose) Perform additional validation.
- Ensures that networks, volumes (when used across multiple services), configs, and secrets used in each service are defined in the appropriate top-level field.
- (container) Add
LogOpt=Quadlet option. - (container) Add
StopSignal=Quadlet option. - (container) Add
NetworkAlias=Quadlet option. - (pod) Add
NetworkAlias=Quadlet option. - (build) Generate
.buildQuadlet file from command.- Added the
podlet podman buildsubcommand.
- Added the
- (compose)
.buildQuadlet files from Compose. (#100)- Added support to
podlet composefor converting thebuildsection of a Compose service to a.buildQuadlet file.
- Added support to
- (compose) Search for
podman-compose.yamlwhen usingpodlet composeby [@TheRealBecks] in #167. - Add
--split-optionsoption. (#118)- By default, when generating a Quadlet file, Podlet will combine all Quadlet options that can be into a space separated list (e.g.,
Environment=ONE=one TWO=two). The--split-optionsoption allows the user to specify which Quadlet options they would like Podlet to write on separate lines.
- By default, when generating a Quadlet file, Podlet will combine all Quadlet options that can be into a space separated list (e.g.,
Bug Fixes
- Support
podman pod create --nameoption by @ananthb in #89. - (compose) Append
.networkto container network name. (#90) - (generate) Accept array or object from
podman inspectoutput. (#94)- Podman v5.0.0 and newer always returns an array from
podman inspect. Older versions of Podman may return a single JSON object if there is only one result, notably forpodman pod inspect.
- Podman v5.0.0 and newer always returns an array from
- (compose) Prepend container dependencies with pod name. (#114)
- When the
podlet compose --podoption is used, the names of the services from the Compose file are prepended with the pod name. If a service had a dependency via thedepends_onattribute, the name of the dependency was not similarly prepended with the pod name when added to the[Unit]section of the Quadlet file.
- When the
- (compose) Support
services[].memswap_limit.- The
services[].memswap_limitattribute is translated topodman run --memory-swap.
- The
- (container) Support short flag
-hforpodman run --hostname. (#105)- Changed short help flag to
-?forpodlet podman run. This could be a potentially minor breaking change for some users.
- Changed short help flag to
- (compose)
.buildQuadlet file error reporting. (#126)- If there was an error converting the
buildsection of a Compose service it would not be reported to the user. The rest of the service would fail to convert to a.containerQuadlet file as theimagewould not be set (it's set after thebuildsection is successfully converted). The user would receive a "imageorbuildis required" error as the service error would be reported first.
- If there was an error converting the
Documentation
- (readme) Add homebrew to the installation section by @cprecioso in #80.
- (contributing) Add MSRV policy.
- Set MSRV to 1.85, following the Rust version in Debian stable.
- (readme) Update demo, features, and usage.
Refactor
- Add generic impls of
HostPathstrait. - Destruct tuples to enhance readability by @Integral-Tech.
impl Serialize for podlet::quadlet::File.- Changed
podlet::serde::quadlet::Serializerto accept sequences and tuples in addition to structs. Elements in a sequence are serialized as separate sections. Tuples are combined into a single section (for combiningpodlet::quadlet::Resourceandpodlet::quadlet::Globals).
- Changed
Miscellaneous
- (release-container) Add
--alltobuildah manifest push. (#82) - Add Podman v5.1.0 to
PodmanVersion. - (deps) Update
compose_specto v0.3.0. (#91, #96, #106, #117) - Add Podman v5.2.0 to
PodmanVersion. - (ci) Add
msrvjob. - Update to Rust 2024 edition.
- Includes changes to formatting for the Rust 2024 style edition.
- (deps) Replace
nixwithrustix. - (lints) Fix Clippy lints.
- (release) Update dist.
- Formerly known as cargo-dist.
- (ci) Bump actions/checkout to v6.
- (ci) Add
spellcheckjob. - (deps) Update dependencies.
New Contributors
- @TheRealBecks made their first contribution in #167
- @Integral-Tech made their first contribution in #129
- @ananthb made their first contribution in #89
- @cprecioso made their first contribution in #80
Download podlet 0.3.1
| File | Platform | Checksum |
|---|---|---|
| podlet-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| podlet-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| podlet-aarch64-pc-windows-msvc.zip | ARM64 Windows | checksum |
| podlet-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| podlet-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| podlet-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| podlet-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |