Playbook #3

/home/zuul/src/opendev.org/opendev/system-config/playbooks/service-bridge.yaml

Report Status CLI Date Duration Controller User Versions Hosts Plays Tasks Results Files Records
18 Jul 2025 20:45:39 +0000 00:01:42.73 bridge99.opendev.org root Ansible 2.15.13 ara 1.7.2 (client), 1.7.2 (server) Python 3.10.12 1 2 92 90 34 0

File: /home/zuul/src/opendev.org/opendev/system-config/playbooks/roles/install-docker/tasks/default.yaml

- name: Create docker directory
  become: yes
  file:
    state: directory
    path: /etc/docker

- name: Install docker-ce from upstream
  include_tasks: upstream.yaml
  when: use_upstream_docker|bool

- name: Install docker-engine from distro
  include_tasks: distro.yaml
  when: not use_upstream_docker|bool

- name: reset ssh connection to pick up docker group
  meta: reset_connection

# We install docker-compose from pypi to get features like
# stop_grace_period.

# On arm64 we need build-essential, python3-dev, libffi-dev, and
# libssl-dev because wheels don't exist for all the things on arm64.
# Similarly for Xenial while we have it, some things (cffi) have
# stopped providing Python 3.5 wheels
- name: Install arm64 dev pacakges
  when: >
      ansible_architecture == 'aarch64' or
      ansible_distribution_release == 'xenial'
  package:
    name:
      - build-essential
      - python3-dev
      - libffi-dev
      - libssl-dev
    state: present

- name: Install python docker-compose if needed
  when: with_python_compose|bool
  block:
  - name: ensure pip3 is installed
    include_role:
      name: pip3

  - name: Install docker-compose
    pip:
      name:
        # The explicit pin of requests is a temporary workaround to getting
        # docker-compose functioning again after requests and urllib3 updates.
        # Unfortunately python docker-compose is abandonware and we will need
        # to migrate to the new docker plugin system or distro packages, but
        # until then this is a quick workaround that will get things moving
        # again.
        # The explicit pin of docker is required as py docker 7.0 introduced
        # incompatibilities with python docker-compose.
        - requests<2.30.0
        - docker<7.0.0
        - docker-compose
      state: present
      executable: pip3