Security
- Now the io.containers.capabilities LABEL in an image can be an empty string.
Features
- New command set:
podman farm [create,list,remove,update]has been created to "farm" out builds to machines running Podman for different architectures. - New command:
podman composeas a thin wrapper around an external compose provider such as docker-compose or podman-compose. - FreeBSD:
podman run --deviceis now supported. - Linux: Add a new
--moduleflag for Podman. - Podmansh: Timeout is now configurable using the
podmansh_timeoutoption in containers.conf. - SELinux: Add support for confined users to create containers but restrict them from creating privileged containers.
- WSL: Registers shared socket bindings on Windows, to allow other WSL distributions easy remote access (#15190).
- WSL: Enabling user-mode-networking on older WSL2 generations will now detect an error with upgrade guidance.
- The
podman buildcommand now supports two new options:--layer-labeland--cw. - The
podman kube generatecommand now supports generation of k8s DaemonSet kind (#18899). - The
podman kube generateandpodman kube playcommands now support the k8sTerminationGracePeriodSecondsfield (RH BZ#2218061). - The
podman kube generateandpodman kube playcommands now supportsecurityContext.procMount: Unmasked(#19881). - The
podman generate kubecommand now supports a--podman-onlyflag to allow podman-only reserved annotations to be used in the generated YAML file. These annotations cannot be used by Kubernetes. - The
podman kube generatenow supports a--no-truncflag that supports YAML files with annotations longer than 63 characters. Warning: if an annotation is longer than 63 chars, then the generated yaml file is not Kubernetes compatible. - An infra name annotation
io.podman.annotations.infra.nameis added in the generated yaml when thepod createcommand has--infra-nameset. This annotation can also be used withkube playwhen wanting to customize the infra container name (#18312). - The syntax of
--uidmapand--gidmaphas been extended to lookup the parent user namespace and to extend default mappings (#18333). - The
podman kubecommands now support theListkind (#19052). - The
podman kube playcommand now supports environment variables in kube.yaml (#15983). - The
podman pushandpodman manifest pushcommands now support the--force-compressionoptionto prevent reusing other blobs (#18860). - The
podman manifest pushcommand now supports--add-compressionto push with compressed variants. - The
podman manifest pushcommand now honors theadd_compressionfield from containers.conf if--add-compressionis not set. - The
podman runandpodman create --mountcommands now support theramfstype (#19659). - When running under systemd (e.g., via Quadlet), Podman will extend the start timeout in 30 second steps up to a maximum of 5 minutes when pulling an image.
- The
--add-hostoption now accepts the special stringhost-gatewayinstead of an IP Address, which will be mapped to the host IP address. - The
podman generate systemdcommand is deprecated. Use Quadlet for running containers and pods under systemd. - The
podman secret rmcommand now supports an--ignoreoption. - The
--env-fileoption now supports multiline variables (#18724). - The
--read-only-tmpfsflag now affects /dev and /dev/shm as well as /run, /tmp, /var/tmp (#12937). - The Podman
--mountoption now supports bind mounts passed as globs. - The
--mountoption can now be specified in containers.conf using themountsfield. - The
podman statsnow has an--alloption to get all containers stats (#19252). - There is now a new
--sdnotify=healthypolicy where Podman sends the READY message once the container turns healthy (#6160). - Temporary files created when dealing with images in
/var/tmpwill automatically be cleaned up on reboot. - There is now a new filter option
sinceforpodman volume lsandpodman volume prune(#19228). - The
podman inspectcommand now has tab-completion support (#18672). - The
podman kube playcommand now has support for the use of reserved annotations in the generated YAML. - The progress bar is now displayed when decompressing a Podman machine image (#19240).
- The
podman secret inspectcommand supports a new option--showsecretwhich will output the actual secret. - The
podman secret createnow supports a--replaceoption, which allows you to modify secrets without replacing containers. - The
podman logincommand can now read the secret for a registry from its secret database created withpodman secret create(#18667). - The remote Podman client’s
podman play kubecommand now works with the--usernsoption (#17392).
Changes
- The
/tmpand/var/tmpinside of apodman kube playwill no longer benoexec. - The limit of inotify instances has been bumped from 128 to 524288 for podman machine (#19848).
- The
podman kube playhas been improved to only pull a newer image for the "latest" tag (#19801). - Pulling from an
ocitransport will use the optional name for naming the image. - The
podman infocommand will always display the existence of the Podman socket. - The echo server example in socket_activation.md has been rewritten to use quadlet instead of
podman generate systemd. - Kubernetes support table documentation correctly show volumes support.
- The
podman auto-updatemanpage and documentation has been updated and now includes references to Quadlet.
Quadlet
- Quadlet now supports setting Ulimit values.
- Quadlet now supports setting the PidsLimit option in a container.
- Quadlet unit files allow DNS field in Network group and DNS, DNSSearch, and DNSOption field in Container group (#19884).
- Quadlet now supports ShmSize option in unit files.
- Quadlet now recursively calls in user directories for unit files.
- Quadlet now allows the user to set the service working directory relative to the YAML or Unit files (17177).
- Quadlet now allows setting user-defined names for
VolumeandNetworkunits via theVolumeNameandNetworkNamedirectives, respectively. - Kube quadlets can now support autoupdate.
Bugfixes
- Fixed an issue where containers were being restarted after a
podman kill. - Fixed a bug where events could report incorrect healthcheck results (#19237).
- Fixed a bug where running a container in a pod didn't fail if volumes or mounts were specified in the containers.conf file.
- Fixed a bug where pod cgroup limits were not being honored after a reboot (#19175).
- Fixed a bug where
podman rm -afcould fail to remove containers under some circumstances (#18874). - Fixed a bug in rootless to clamp oom_score_adj to current value if it is too low (#19829).
- Fixed a bug where
--hostuserwas being parsed in base 8 instead of base 10 (#19800). - Fixed a bug where
kube downwould error when an object did not exist (#19711). - Fixed a bug where containers created via DOCKER API without specifying StopTimeout had StopTimeout defaulting to 0 seconds (#19139).
- Fixed a bug in
podman execto set umask to match the container it's execing into (#19713). - Fixed a bug where
podman kube playfailed to set a container's Umask to the default0022. - Fixed a bug to automatically reassign Podman's machine ssh port on Windows when it conflicts with in-use system ports (#19554).
- Fixed a bug where locales weren't passed to conmon correctly, resulting in a crash if some characters were specified over CLI (containers/common/#272).
- Fixed a bug where
podman topwould sometimes not print the full output (#19504). - Fixed a bug were
podman logs --tailcould return incorrect lines when the k8s-file logger is used (#19545). - Fixed a bug where
podman stopdid not ignore cidfile not existing when user specified --ignore flag (#19546). - Fixed a bug where a container with an image volume and an inherited mount from the
--volumes-fromoption that used the same path could not be created (#19529). - Fixed a bug where
podman cpvia STDIN did not delete temporary files (#19496). - Fixed a bug where Compatibility API did not accept timeout=-1 for stopping containers (#17542).
- Fixed a bug where
podman run --rmidid not remove the container (#15640). - Fixed a bug to recover from inconsistent podman-machine states with QEMU (#16054).
- Fixed a bug where CID Files on remote clients are not removed when container is removed (#19420).
- Fixed a bug in
podman inspectto show a.NetworkSettings.SandboxKeypath for containers created with --net=none (#16716). - Fixed a concurrency bug in
podman machine startusing the QEMU provider (#18662). - Fixed a bug in
podman runandpodman createwhere the command fails if the user specifies a non-existent authfile path (#18938). - Fixed a bug where some distributions added extra quotes around the distribution name removed from
podman infooutput (#19340). - Fixed a crash validating --device argument for create and run (#19335).
- Fixed a bug where
.HostConfig.PublishAllPortsalways evaluates tofalsewhen inspecting a container created with--publish-all. - Fixed a bug in
podman image trustcommand to allow using the local policy.json file (#19073). - Fixed a bug where the cgroup file system was not correctly mounted when running without a network namespace in rootless mode (#20073).
- Fixed a bug where the
--syslogflag was not passed to the cleanup process.
API
- Fixed a bug with parsing of the pull query parameter for the compat /build endpoint (#17778).
Misc
- Updated Buildah to v1.32.0.