zuul-jobs/roles/ensure-docker/tasks/docker-setup.yaml
Gonéri Le Bouder 2bb9b4995a ensure-docker: ensure docker.socket is stopped
On Centos8, during the docker-ce installation, the docker.socket service
is start with a bogus state:

docker.socket: Socket unit configuration has changed while unit has been running, no open socket file descriptor left. The socket unit is not functional until restarted.

Later, when the `Assure docker service is running` task tries to start
the service, it fails with the following error:

dockerd[29743]: failed to load listeners: no sockets found via socket activation: make sure the service was started by systemd

Example:
https://0c7366f2ce9149f2de0c-399b55a396b5093070500a70ecbf09b9.ssl.cf1.rackcdn.com/410/c233496b96c70cfc6204e75d10116a96b08d4663/check/ansible-test-sanity-docker/787388f/ara-report/index.html

Another example: https://github.com/kata-containers/tests/issues/3103

Also: Remove use of kubectl --generator=run-pod/v1

This has been deprecated since 1.17 and removed since 1.20. run-pod wound
up being the only generator that did anything, so this parameter became a
no-op. This has to be squashed into this commit to unbreak the gate.

Change-Id: I666046fe2a3aa079643092c71573803851a67be2
2021-04-20 18:44:37 -05:00

64 lines
1.8 KiB
YAML

---
- name: Ensure "docker" group exists
group:
name: "{{ docker_group }}"
state: present
- name: Add user to docker group
user:
name: "{{ ansible_user }}"
groups:
- "{{ docker_group }}"
append: yes
- name: Update docker daemon proxy configuration
when: docker_userland_proxy is defined
include_role:
name: update-json-file
vars:
update_json_file_name: /etc/docker/daemon.json
update_json_file_combine:
userland-proxy: "{{ docker_userland_proxy }}"
update_json_file_become: true
# Docker defaults to a MTU of 1500, which causes problems when the
# main interface has a MTU less than that. Cloud environments often
# have this, one good example is OpenDev's Linaro ARM64 cloud.
# https://storyboard.openstack.org/#!/story/2008230
- name: Lower default MTU
when: ansible_default_ipv4.mtu < 1500
include_role:
name: update-json-file
vars:
update_json_file_name: /etc/docker/daemon.json
update_json_file_combine:
mtu: 1400
update_json_file_become: true
- name: Get the status of the docket.socket unit
command: systemctl is-failed docker.socket # noqa command-instead-of-module
failed_when: false
become: true
register: _docker_socket_status
- name: Get the status of the docket unit
command: systemctl is-failed docker # noqa command-instead-of-module
failed_when: false
become: true
register: _docker_status
- name: Restart docker
when: >-
(docker_userland_proxy is defined) or
(ansible_default_ipv4.mtu < 1500) or
(_docker_socket_status.stdout != 'active') or
(_docker_socket_status.stdout != 'active')
debug:
msg: 'Trigger a Docker restart'
changed_when: true
notify: Restart docker
- name: Reset ssh connection to pick up docker group
meta: reset_connection