Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
podman-auto-update(1)	    General Commands Manual	 podman-auto-update(1)

NAME
       podman-auto-update - Auto update	containers according to	their auto-up-
       date policy

SYNOPSIS
       podman auto-update [options]

DESCRIPTION
       podman  auto-update  pulls  down	new container images and restarts con-
       tainers configured for auto updates.  To	make use of auto updates,  the
       container  or Kubernetes	workloads must run inside a systemd unit.  Af-
       ter a successful	update of an image, the	containers using the image get
       updated by restarting the systemd units they run	in.  Please  refer  to
       podman-systemd.unit(5) on how to	run Podman under systemd.

       To  configure a container for auto updates, it must be created with the
       io.containers.autoupdate	label or the AutoUpdate	field  in  podman-sys-
       temd.unit(5) with one of	the following two values:

        registry: If the label	is present and set to registry,	Podman reaches
	 out  to the corresponding registry to check if	the image has been up-
	 dated.	 The label image is an alternative to registry maintained  for
	 backwards  compatibility.   An	image is considered updated if the di-
	 gest in the local storage is different	than the one of	the remote im-
	 age.  If an image must	be updated, Podman pulls it down and  restarts
	 the  systemd  unit  executing the container.  The registry policy re-
	 quires	a fully-qualified image	reference  (e.g.,  quay.io/podman/sta-
	 ble:latest)  to be used to create the container.  This	enforcement is
	 necessary to know which image to actually check and pull.  If an  im-
	 age ID	was used, Podman would not know	which image to check/pull any-
	 more.

        local:	 If  the autoupdate label is set to local, Podman compares the
	 image digest of the container to the one in the local container stor-
	 age.  If they differ, the local image is considered to	be  newer  and
	 the systemd unit gets restarted.

   Auto	Updates	and Kubernetes YAML
       Podman supports auto updates for	Kubernetes workloads.  The auto-update
       policy  can be configured directly via podman-systemd.unit(5) or	inside
       the Kubernetes YAML with	the Podman-specific annotations	mentioned  be-
       low:

        io.containers.autoupdate:  "registry|local"  to apply the auto-update
	 policy	to all containers

        io.containers.autoupdate/$container: "registry|local"	to  apply  the
	 auto-update policy to $container only

        io.containers.sdnotify: "conmon|container" to apply the sdnotify pol-
	 icy to	all containers

        io.containers.sdnotify/$container:  "conmon|container"	 to  apply the
	 sdnotify policy to $container only

       By default, the autoupdate policy is set	to  "disabled",	 the  sdnotify
       policy is set to	"conmon".

   Systemd Unit	and Timer
       Podman  ships with a podman-auto-update.service systemd unit. This unit
       is triggered daily at midnight by the podman-auto-update.timer  systemd
       timer.	The  timer can be altered for custom time-based	updates	if de-
       sired.  The unit	can further be invoked by other	systemd	 units	(e.g.,
       via  the	 dependency tree) or manually via systemctl start podman-auto-
       update.service.

OPTIONS
   --authfile=path
       Path of the authentication file.	Default	is ${XDG_RUNTIME_DIR}/contain-
       ers/auth.json on	Linux, and $HOME/.config/containers/auth.json on  Win-
       dows/macOS.   The file is created by podman login. If the authorization
       state is	not found there, $HOME/.docker/config.json is  checked,	 which
       is set using docker login.

       Note:  There is also the	option to override the default path of the au-
       thentication file by setting the	REGISTRY_AUTH_FILE  environment	 vari-
       able. This can be done with export REGISTRY_AUTH_FILE=path.

       Alternatively,  the  io.containers.autoupdate.authfile  container label
       can be configured.  In that case, Podman	will use the specified label's
       value instead.

   --dry-run
       Check for the availability of new images	but do not  perform  any  pull
       operation or restart any	service	or container.  The UPDATED field indi-
       cates the availability of a new image with "pending".

   --format=format
       Change the default output format.  This can be of a supported type like
       'json'  or  a  Go template.  Valid placeholders for the Go template are
       listed below:

       +----------------+------------------------------+
       | Placeholder	| Description		       |
       +----------------+------------------------------+
       | .Container	| ID and name of the container |
       +----------------+------------------------------+
       | .ContainerID	| ID of	the container	       |
       +----------------+------------------------------+
       | .ContainerName	| Name of the container	       |
       +----------------+------------------------------+
       | .Image		| Name of the image	       |
       +----------------+------------------------------+
       | .Policy	| Auto-update  policy  of  the |
       |		| container		       |
       +----------------+------------------------------+
       | .Unit		| Name of the systemd unit     |
       +----------------+------------------------------+
       | .Updated	| Update	       status: |
       |		| true,false,failed,pending    |
       +----------------+------------------------------+

   --rollback
       If restarting a systemd unit after updating the image has failed, roll-
       back to using the previous image	and restart  the  unit	another	 time.
       Default is true.

       Note  that  detecting  if a systemd unit	has failed is best done	by the
       container sending the READY message via SDNOTIFY.  This way, restarting
       the unit	waits until having received the	message	or  a  timeout	kicked
       in.   Without that, restarting the systemd unit may succeed even	if the
       container has failed shortly after.

       For a container to send the READY message via SDNOTIFY it must be  cre-
       ated with the --sdnotify=container option (see podman-run(1)).  The ap-
       plication  running inside the container can then	execute	systemd-notify
       --ready when ready or use the sdnotify bindings of  the	specific  pro-
       gramming	language (e.g.,	sd_notify(3)).

   --tls-verify
       Require	HTTPS  and verify certificates when contacting registries (de-
       fault: true).  If explicitly set	to true, TLS verification is used.  If
       set to false, TLS verification is not used.  If not specified, TLS ver-
       ification is used unless	the target registry is listed as  an  insecure
       registry	in containers-registries.conf(5)

EXAMPLES
       Create a	Quadlet	file configured	for auto updates:

       $ cat ~/.config/containers/systemd/sleep.container
       [Container]
       Image=registry.fedoraproject.org/fedora:latest
       Exec=sleep infinity
       AutoUpdate=registry

       Generate	 a systemd service from	the Quadlet file by reloading the sys-
       temd user daemon:

       $ systemctl --user daemon-reload

       Start the systemd service and make sure the container is	running

       $ systemctl --user start	sleep.service
       $ podman	ps
       CONTAINER ID  IMAGE				       COMMAND	       CREATED	      STATUS	    PORTS	NAMES
       f8e4759798d4  registry.fedoraproject.org/fedora:latest  sleep infinity  2 seconds ago  Up 2 seconds		systemd-sleep

       Check if	a new image is available via --dry-run:

       $ podman	auto-update --dry-run --format "{{.Image}} {{.Updated}}"
       registry.fedoraproject.org/fedora:latest	  pending

       Update the service:

       $ podman	auto-update
       UNIT	      CONTAINER			    IMAGE				      POLICY	  UPDATED
       sleep.service  f8e4759798d4 (systemd-sleep)  registry.fedoraproject.org/fedora:latest  registry	  true

SEE ALSO
       podman(1),   podman-generate-systemd(1),	  podman-run(1),   podman-sys-
       temd.unit(5), sd_notify(3), systemd.unit(5)

							 podman-auto-update(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=podman-auto-update&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help