ππ» whoamiπ¦ what is podman?π€why should I use podman?βοΈautocompletionπ§ podman inspect --format ...π€ podman --connection ...π₯podman auto-updateπ podman auto-updateβͺ podman auto-update --rollbackπ podman auto-updateContainer must run inside a systemd unit
io.containers.autoupdate{/$container}
                                registrylocalAutoUpdate={registry,local}π’ quadletsπ’ quadlets~/.config/containers/systemdmy-awesome-application.containerdata.volumeinternal.networksystemctl --user daemon-reloadsystemctl --user start my-awesome-application.serviceπ’ quadlets
podman run --name devconf-quadlet \
    --rm -d \
    -p 80:8080 \
    quay.io/libpod/alpine:latest
                        
[Container]
ContainerName=devconf-quadlet
Image=quay.io/libpod/alpine:latest
PublishPort=80:8080
[Service]
Restart=always
                        βͺ podman auto-update --rollbackContainer must run inside a systemd unit
--sdnotify=containerio.containers.sdnotify{/$container}
                                conmoncontainerNotify=trueπ§ββοΈ  podman healthcheckπ podman runπ podman updateπ podman healthcheckπ podman run--health-cmd--health-interval--health-log-destination--health-max-log-count--health-max-log-size--health-retries...π podman update--health-cmd--health-interval--health-log-destination--health-max-log-count--health-max-log-size--health-retries...π podman update--health-log-destinationlocaldirectoryevents_loggerπ podman healthcheck runπIntegrationsπ« CockpitποΈ Ansibleπ More, if we have time...π« Cockpit
                            $ sudo dnf install -y cockpit-podman
                            $ sudo systemctl start cockpit
                         
                     
                     
                    ποΈ Ansible
                            $ sudo dnf install -y ansible
                            $ ansible-galaxy collection install containers.podman
                        
---
  - name: Setup some containers as a good example
    hosts: localhost
    gather_facts: false
    vars:
      container_name: "devconf-ansible"
      container_image: "fedora:latest"
    tasks:
      - name: Create a container volume
        containers.podman.podman_volume:
          name: "{{ container_name }}-volume"
          state: present
      - name: Create a container network
        containers.podman.podman_network:
          name: "{{ container_name }}-network"
          subnet: "172.0.0.0/24"
          driver: bridge
          state: present
      - name: Create a container Pod
        containers.podman.podman_pod:
          name: "{{ container_name }}-pod"
          network: "{{ container_name }}-network"
          state: started
      - name: Create the DevConf container
        containers.podman.podman_container:
          name: "{{ container_name }}"
          image: "{{ container_image }}"
          volumes:
            - "{{ container_name }}-volume:/root:Z"
          env:
            YEAR: 2025
          interactive: true
          healthcheck: echo \"Thank you for being at DevConf $YEAR!\"
          healthcheck_interval: "2s"
          healthcheck_retries: 5
          healthcheck_start_period: "2s"
          state: started
                        π§©all the other featuresβΊοΈ  Thank YouThanks to the podman team for your amazing work.
podman.iocontainerscontainers/podman#podman on libera.chat#podman:fedoraproject.orgPodmanMeet us in our community meetings ποΈ
I am Nicola Sella, the source code of this is on codeberg/inknos/DevConf25, I go on Github as @inknos and I talk on Matrix as @nsella:fedora.im
podman auto-updatepodman healthcheckansiblequadletspodman kube play