Role - tripleo-podman

Role Documentation

Welcome to the “tripleo_podman” role documentation.

Role Defaults

This section highlights all of the defaults and variables set within the “tripleo_podman” role.

# All variables intended for modification should be placed in this file.
tripleo_podman_hide_sensitive_logs: '{{ hide_sensitive_logs | default(true) }}'
tripleo_podman_debug: '{{ ((ansible_verbosity | int) >= 2) | bool }}'

tripleo_podman_buildah_login: false
tripleo_container_registry_insecure_registries: []
tripleo_container_registry_login: false
tripleo_container_registry_logins: {}
tripleo_podman_packages: '{{ _tripleo_podman_packages | default([]) }}'
tripleo_buildah_packages: '{{ _tripleo_buildah_packages | default([]) }}'
tripleo_podman_purge_packages: '{{ _tripleo_podman_purge_packages | default([]) }}'
tripleo_podman_enable_socket: false
tripleo_podman_unqualified_search_registries:
- registry.redhat.io
- registry.access.redhat.com
- registry.fedoraproject.org
- registry.centos.org
- quay.io
tripleo_podman_insecure_registries: '{{ tripleo_container_registry_insecure_registries
  }}'
# this is the default network configuration except the range has been moved
# from 10.88.0.0/16 to 10.255.255.0/24 to try and prevent a conflict in an
# existing cloud
tripleo_podman_default_network_config:
  cniVersion: 0.4.0
  name: podman
  plugins:
  - type: bridge
    bridge: cni-podman0
    isGateway: true
    ipMasq: true
    hairpinMode: true
    ipam:
      type: host-local
      routes:
      - dst: 0.0.0.0/0
      ranges:
      - - subnet: 10.255.255.0/24
          gateway: 10.255.255.1
  - type: portmap
    capabilities:
      portMappings: true
  - type: firewall
  - type: tuning
# tripleo_podman_registries requires a list of dictionaries
# Example:
# tripleo_podman_registries:
#   - prefix: quay.io
#     insecure: false
#     location: quay.io
#     mirrors:
#       - location: 192.168.0.1:8787
#         insecure: true
#   - prefix: registry.redhat.io
#     insecure: false
#     location: registry.redhat.io
#     mirrors:
#       - location: 192.168.0.2:8787
#         insecure: false
#   - prefix: registry.fedoraproject.org
#     blocked: true
tripleo_podman_registries: []
tripleo_container_default_pids_limit: 4096
tripleo_container_events_logger_mechanism: journald
tripleo_container_default_runtime: runc
tripleo_container_default_network_backend: cni

# tell the tripleo_container_manage to inject
# additional ordering dependencies for the systemd
# scopes associated to podman containers.
tripleo_podman_systemd_drop_in_dependencies: true

tripleo_podman_service_unit_name: tripleo_podman.service
tripleo_podman_service_unit_description: Podman API service for TripleO purposes
tripleo_podman_socket_path: /var/lib/tripleo-podman/podman.sock

Role Variables: redhat.yml

_tripleo_podman_packages:
- podman

_tripleo_buildah_packages:
- buildah

_tripleo_podman_purge_packages:
- docker
- docker-ce

Role Variables: redhat-9.yml

_tripleo_podman_packages:
- podman

_tripleo_buildah_packages:
- buildah

tripleo_container_default_runtime: crun
tripleo_container_default_network_backend: netavark

Molecule Scenarios

Molecule is being used to test the “tripleo_podman” role. The following section highlights the drivers in service and provides an example playbook showing how the role is leveraged.

Scenario: default

Molecule Inventory
hosts:
  all:
    hosts:
      instance:
        ansible_host: localhost
Example default playbook
- name: Converge
  hosts: all
  roles:
  - role: tripleo_podman

Scenario: login

Molecule Inventory
hosts:
  all:
    hosts:
      instance:
        ansible_host: localhost
Example login playbook
- name: Converge
  hosts: all
  vars:
    tripleo_podman_hide_sensitive_logs: false
    tripleo_podman_buildah_login: true
    tripleo_container_registry_logins:
      localhost:5000:
        testuser: testpassword
  tasks:
  - include_role:
      name: tripleo_podman
      tasks_from: login.yml
  - include_role:
      name: tripleo_podman
      tasks_from: buildah_login.yml

Scenario: install

Molecule Inventory
hosts:
  all:
    hosts:
      instance:
        ansible_host: localhost
Example install playbook
- name: Converge
  hosts: all
  tasks:
  - name: Run install
    include_role:
      name: tripleo_podman
      tasks_from: install.yml
      vars_from: redhat.yml
    # https://bugs.launchpad.net/bugs/1889510
  - name: Test podman network ls
    become: true
    command: podman network ls