Releases: containers/podlet
0.3.0 - 2024-05-21
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 |
0.2.4 - 2024-01-30
Release Notes
Features
- Set compatibility with
--podman-version(#45) - Add support for quadlet options introduced in podman v4.8.0 (#30)
- Container
GIDMap=ReadOnlyTmpfs=SubGIDMap=SubUIDMap=UIDMap=- Remove
VolatileTmp=
- Volume
Driver=Image=
- Image
- Brand new!
- Generate
.imagequadlet files with:podlet podman image pullpodlet generate image
- All quadlet file types
ContainersConfModule=GlobalArgs=
- Container
- Convert relative host paths to absolute paths with
--absolute-host-paths(#52)- Does not affect paths in the
PodmanArgs=quadlet option or Kubernetes YAML files. - As part of the work to implement this, the following quadlet options are now fully parsed and validated:
AddDevice=Mount=Rootfs=Volume=DecryptionKey=
- Does not affect paths in the
Security
- Remove ASCII control characters (except whitespace) from container commands
Documentation
- (readme) Map user into podlet container (#50, thanks @rugk!)
- (readme) Update demo, features, and usage
Refactor
- (container) Parse security opts with
str::strip_prefix - Remove arg serializer's map functionality
Miscellaneous Tasks
- Add podman v4.9.0 to podman versions
- Update dependencies
- (ci) Update cargo-dist
Download podlet 0.2.4
| 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 |
0.2.3 - 2023-12-31
Release Notes
Features
- Add support for quadlet options introduced in podman v4.7.0 (#29)
- Container
DNS=DNSOption=DNSSearch=PidsLimit=ShmSize=Ulimit=
- Kube
AutoUpdate=
- Network
DNS=
- Container
- Add
podlet generatesubcommands for generating quadlet files from existing:- Containers (#23)
- Networks
- Volumes
Bug Fixes
- (compose)
network_modeaccept all podman values (#38)- Improved error message for unsupported values
- (network) Support
<start-IP>-<end-IP>syntax for--ip-range
Documentation
- (readme) Podman v4.7.0
- (readme) Update demo and usage
Miscellaneous Tasks
- (ci) Skip container run for conmon v2.1.9
- (lint) Fix new rust 1.75 clippy warnings
- Update dependencies
Download podlet 0.2.3
| File | Platform | Checksum |
|---|---|---|
| podlet-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
| podlet-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
| podlet-x86_64-pc-windows-msvc.zip | Windows x64 | checksum |
| podlet-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
| podlet-x86_64-unknown-linux-musl.tar.xz | musl Linux x64 | checksum |
0.2.2 - 2023-12-15
Release Notes
Features
- Add support for quadlet options introduced in podman v4.6.0 (#28)
- (compose) Support volume
driverfield
Bug Fixes
- (container) Arg
--tls-verifyrequires = - (network) Filter out empty
Options=quadlet option - Escape newlines in joined quadlet values (#32)
- (compose) Support
cap_drop,userns_mode, andgroup_addservice fields (#31, #34) - (compose) Split
commandstring (#36)- When the command is converted to the
Exec=quadlet option, it is now properly quoted. When converting to k8s, it is properly split into args.
- When the command is converted to the
Documentation
- (readme) Podman v4.6.0
- (changelog) Add
git-cliffconfiguration
Refactor
- Use custom serializer for
PodmanArgs= - Use custom serializer for quadlet sections
Miscellaneous Tasks
- Update dependencies
Download podlet 0.2.2
| File | Platform | Checksum |
|---|---|---|
| podlet-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
| podlet-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
| podlet-x86_64-pc-windows-msvc.zip | Windows x64 | checksum |
| podlet-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
| podlet-x86_64-unknown-linux-musl.tar.xz | musl Linux x64 | checksum |
0.2.1 - 2023-11-28
Release Notes
Features
- Compose: Read compose file from stdin (#18)
- For
podlet compose, if a compose file is not provided and stdin is not a terminal, or-is provided, podlet will attempt to read a compose file from stdin. - For example
cat compose-example.yaml | podlet composeorcat compose-example.yaml | podlet compose -
- For
Bug Fixes
- Truncate when overwriting existing files
- Compose service volumes can be mixed long and short form (#26)
Documentation
- Readme: Add sample podlet container usage instructions (#17, thanks @Nitrousoxide!)
- Readme: Update description, add build and local ci instructions
Miscellaneous Tasks
- CI: Update podman for build and publish of container
- CI: Add container builds to regular checks
- Update dependencies
- CI: Update cargo-dist to v0.5.0
Refactor
quadlet::writeln_escape_spaceswrite to formatter- Consistent use of
eyre::bailandeyre::ensure - Add
quadlet::Kube::new() - Simplify
cli::File::write() - Split
compose_try_into_quadlet_files() - Move compose functions into their own module
- Move lints to Cargo.toml, add additional lints
Styling
- Fix let-else formatting
Download podlet 0.2.1
| File | Platform | Checksum |
|---|---|---|
| podlet-aarch64-apple-darwin.tar.xz | macOS Apple Silicon | checksum |
| podlet-x86_64-apple-darwin.tar.xz | macOS Intel | checksum |
| podlet-x86_64-pc-windows-msvc.zip | Windows x64 | checksum |
| podlet-x86_64-unknown-linux-gnu.tar.xz | Linux x64 | checksum |
| podlet-x86_64-unknown-linux-musl.tar.xz | musl Linux x64 | checksum |
[0.2.0] - 2023-06-15
Release Notes
Added
- Check for existing systemd unit files with the same name as the service generated by quadlet from the podlet generated quadlet file and throw an error if there is a conflict (#14).
- Use
--skip-services-checkto opt-out.
- Use
- Convert a (docker) compose file (#9) to:
- Multiple quadlet files
- A pod with a quadlet kube file and Kubernetes YAML
Changed
- Breaking: files are no longer overwritten by default, added
--overwriteflag if overwriting is desired.
Download podlet 0.2.0
| target | kind | download |
|---|---|---|
| aarch64-apple-darwin | tarball | podlet-aarch64-apple-darwin.tar.xz |
| x86_64-apple-darwin | tarball | podlet-x86_64-apple-darwin.tar.xz |
| x86_64-pc-windows-msvc | tarball | podlet-x86_64-pc-windows-msvc.zip |
| x86_64-unknown-linux-gnu | tarball | podlet-x86_64-unknown-linux-gnu.tar.xz |
[0.1.1] - 2023-04-19
Release Notes
Added
- A container image of podlet now available on quay.io and docker hub.
- Option flag for outputting to podman unit directory
--unit-directory.- Places the generated file in the appropriate directory (i.e.
/etc/containers/systemd,~/.config/containers/systemd) for use by quadlet.
- Places the generated file in the appropriate directory (i.e.
Download podlet 0.1.1
| target | kind | download |
|---|---|---|
| aarch64-apple-darwin | tarball | podlet-v0.1.1-aarch64-apple-darwin.tar.xz |
| x86_64-apple-darwin | tarball | podlet-v0.1.1-x86_64-apple-darwin.tar.xz |
| x86_64-pc-windows-msvc | tarball | podlet-v0.1.1-x86_64-pc-windows-msvc.zip |
| x86_64-unknown-linux-gnu | tarball | podlet-v0.1.1-x86_64-unknown-linux-gnu.tar.xz |
[0.1.0] - 2023-04-14
Release Notes
The initial release of podlet! Designed for podman v4.5.0 and newer.
Initial Features
- Create quadlet files:
.container-podman run.kube-podman kube play.network-podman network create.volume-podman volume create
- Write to stdout, or to a file.
- The file name, if not provided, is pulled from the container name or image, kube file, or network or volume name.
- Options for common systemd unit options
- [Unit]
- Description=
- Wants=
- Requires=
- Before=
- After=
- [Service]
- Restart=
- [Install]
- WantedBy=
- RequiredBy=
- [Unit]
Download podlet 0.1.0
| target | kind | download |
|---|---|---|
| aarch64-apple-darwin | tarball | podlet-v0.1.0-aarch64-apple-darwin.tar.xz |
| x86_64-apple-darwin | tarball | podlet-v0.1.0-x86_64-apple-darwin.tar.xz |
| x86_64-pc-windows-msvc | tarball | podlet-v0.1.0-x86_64-pc-windows-msvc.zip |
| x86_64-unknown-linux-gnu | tarball | podlet-v0.1.0-x86_64-unknown-linux-gnu.tar.xz |