v3.2.0-RC2
Pre-release
Pre-release
This is the second release candidate for Podman v3.2.0. We expect a final RC early next week, and a final release late next week if all goes well
Preliminary release notes follow:
Features
- Docker Compose is now supported with rootless Podman (#9169).
- The
podman network connect,podman network disconnect, andpodman network reloadcommands have been enabled for rootless Podman. - An experimental new set of commands,
podman machine, was added to assist in managing virtual machines containing a Podman server. These are intended for easing the use of Podman on OS X by handling the creation of a Linux VM for running Podman. - The
podman generate kubecommand can now be run on Podman named volumes (generatingPersistentVolumeClaimYAML), in addition to pods and containers. - The
podman play kubecommand now supports two new options,--ipand--mac, to set static IPs and MAC addresses for created pods (#8442 and #9731). - The
podman play kubecommand's support forPersistentVolumeClaimYAML has been greatly improved. - The
podman generate kubecommand now preserves the label used bypodman auto-updateto identify containers to update as a Kubernetes annotation, and thepodman play kubecommand will convert this annotation back into a label. This allowspodman auto-updateto be used with containers created bypodman play kube. - The
podman play kubecommand now supports KubernetessecretRefYAML (using the secrets support frompodman secret) for environment variables. - Secrets can now be added to containers as environment variables using the
type=envoption to the--secretflag topodman createandpodman run. - The
podman startcommand now supports the--alloption, allowing all containers to be started simultaneously with a single command. The--filteroption has also been added to filter which containers to start when--allis used. - Filtering containers with the
--filteroption topodman psandpodman startnow supports a new filter,restart-policy, to filter containers based on their restart policy. - The
--group-addoption to rootlesspodman runandpodman createnow accepts a new value,keep-groups, which instructs Podman to retain the supplemental groups of the user running Podman in the created container. This is only supported with thecrunOCI runtime. - The
podman runandpodman createcommands now support a new option,--timeout. This sets a maximum time the container is allowed to run, after which it is killed (#6412). - The
podman runandpodman createcommands now support a new option,--pidfile. This will create a file when the container is started containing the PID of the first process in the container. - The
podman runandpodman createcommands now support a new option,--requires. The--requiresoption adds dependency containers - containers that must be running before the current container. Commands likepodman startwill automatically start the requirements of a container before starting the container itself. - Auto-updating containers can now be done with locally-built images, not just images hosted on a registry, by creating containers with the
io.containers.autoupdatelabel set tolocal. - Podman now supports the Container Device Interface (CDI) standard.
- Podman now adds an entry to
/etc/hosts,host.containers.internal, pointing to the current gateway (which, for root containers, is usually a bridge interface on the host system) (#5651). - The
podman ps,podman pod ps,podman network list,podman secret list, andpodman volume listcommands now support a--noheadingoption, which will cause Podman to omit the heading line including column names. - The
podman unsharecommand now supports a new flag,--rootless-cni, to join the rootless network namespace. This allows commands to be run in the same network environment as rootless containers with CNI networking. - The
--security-opt unmask=option topodman runandpodman createnow supports glob operations to unmask a group of paths at once (e.g.podman run --security-opt unmask=/proc/* ...will unmask all paths in/procin the container). - The
podman network prunecommand now supports a--filteroption to filter which networks will be pruned.
Changes
- The change in Podman 3.1.2 where the
:zand:Zmount options for volumes were ignored for privileged containers has been reverted after discussion in #10209. - Podman's rootless CNI functionality no longer requires a sidecar container! The removal of the requirement for the
rootless-cni-infracontainer means that rootless CNI is now usable on all architectures, not just AMD64, and no longer requires pulling an image (#8709). - The Image handling code used by Podman has seen a major rewrite to improve code sharing with our other projects, Buildah and CRI-O. This should result in fewer bugs and performance gains in the long term. Work on this is still ongoing.
- The
podman auto-updatecommand now prunes previous versions of images after updating if they are unused, to prevent disk exhaustion after repeated updates (#10190). - The
podman play kubenow treats environment variables configured as references to aConfigMapas mandatory unless theoptionalparameter was set; this better matches the behavior of Kubernetes. - Podman now supports the
--context=defaultflag from Docker as a no-op for compatibility purposes. - When Podman is run as root, but without
CAP_SYS_ADMINbeing available, it will run in a user namespace using the same code as rootless Podman (instead of failing outright). - The
podman infocommand now includes the path of the Seccomp profile Podman is using, and whether Podman is connected to a remote service or running containers locally. - Containers created with the
--rmoption now automatically use thevolatilestorage flag when available for their root filesystems, causing them not to write changes to disk as often as they will be removed at completion anyways. This should result in improved performance. - The
podman generate systemd --newcommand will now include environment variables referenced by the container in generated unit files if the value would be looked up from the system environment. - Podman now requires that Conmon v2.0.24 be available.
Bugfixes
- Fixed a bug where the remote Podman client's
podman buildcommand did not support the--arch,--platform, and--os, options. - Fixed a bug where the remote Podman client's
podman buildcommand ignored the--rm=falseoption (#9869). - Fixed a bug where the
podman generate systemd --newcommand could generate extra--iidfilearguments if the container was already created with one. - Fixed a bug where the
podman generate kubecommand produced incorrect YAML for containers which bind-mounted both/and/rootfrom the host system into the container (#9764). - Fixed a bug where pods created by
podman play kubefrom YAML that specifiedShareProcessNamespacewould only share the PID namespace (and not also the UTS, Network, and IPC namespaces) (#9128). - Fixed a bug where the
podman network reloadcommand could generate spurious error messages wheniptables-nftwas in use. - Fixed a bug where rootless Podman could fail to attach to containers when the user running Podman had a large UID.
- Fixed a bug where the
podman pscommand could fail with ano such containererror due to a race condition with container removal (#10120). - Fixed a bug where containers using the
slirp4netnsnetwork mode and setting a customslirp4netnssubnet while using therootlesskitport forwarder would not be able to forward ports (#9828). - Fixed a bug where the
--filter ancestor=option topodman psdid not require an exact match of the image name/ID to include a container in its results. - Fixed a bug where the
--filter until=option topodman image prunewould prune images created after the specified time (instead of before). - Fixed a bug where setting a custom Seccomp profile via the
seccomp_profileoption incontainers.confhad no effect, and the default profile was used instead. - Fixed a bug where the
--cgroup-parentoption topodman createandpodman runwas ignored in rootless Podman on cgroups v2 systems with thecgroupfscgroup manager (#10173). - Fixed a bug where the
IMAGEandNAMEvariables inpodman container runlabelwere not being correctly substituted (#10192). - Fixed a bug where the remote Podman client's
podman build --iidfilecommand could include extra output (in addition to just the image ID) in the image ID file written (#10233). - Fixed a bug where Podman could freeze when creating containers with a specific combination of volumes and working directory (#10216).
- Fixed a bug where rootless Podman containers restarted by restart policy (e.g. containers created with
--restart=always) would lose networking after being restarted (#8047).
API
- Fixed a bug where the Compat Create endpoint for Containers did not allow advanced network options to be set (#10110).
- Fixed a bug where the Compat Create endpoint for Containers ignored static IP information provided in the
IPAMConfigblock (#10245). - Fixed a bug where the Compat Inspect endpoint for Containers returned null (instead of an empty list) for Networks when the container was not joined to a CNI network (#9837).
- Fixed a bug where the Compat Wait endpoint for Containers could miss containers exiting if they were immediately restarted.
- Fixed a bug where the Compat Create endpoint for Volumes required that the user provide a name for the new volume (#9803).
- Fixed a bug where the Libpod Info handler would sometimes not return the correct path to the Podman API socket.
- Fixed a bug where the Compat Events handler used the wrong name for container exited events (
diedinstead ofdie) (#10168).
Misc
- Updated Buildah to v1.21.0
- Updated the containers/common library to v0.38.4
- Updated the containers/storage library to v1.31.1