Add RHEL 9.0, Ubuntu 22.04 and Fedora 36 to CI (#358)

* Add RHEL 9.0 to CI.

* Add RHEL 9 specific files.

* Add Ubuntu 22.04 and Fedora 36 to CI.

* Another try.

* Adjust kernel memory tests.

* Add more details.

* RHEL 9 doesn't support setting memory swappiness.

* Fix docker_swarm_service tests.

The 'less' case should always have been changed, but it probably was always skipped
due to a too old Docker SDK for Python or a too old Docker daemon.

* More checks / improve checks.
This commit is contained in:
Felix Fontein 2022-05-20 16:27:13 +02:00 committed by GitHub
parent 1425faadd0
commit cfc6fb9d40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 75 additions and 12 deletions

View File

@ -128,16 +128,16 @@ stages:
targets:
- name: CentOS 7
test: centos7
- name: Fedora 34
test: fedora34
- name: Fedora 36
test: fedora36
- name: Fedora 35
test: fedora35
- name: openSUSE 15
test: opensuse15
- name: Ubuntu 18.04
test: ubuntu1804
- name: Ubuntu 20.04
test: ubuntu2004
- name: Ubuntu 22.04
test: ubuntu2204
- name: Alpine 3
test: alpine3
groups:
@ -170,8 +170,8 @@ stages:
targets:
- name: CentOS 8
test: centos8
# - name: Fedora 34
# test: fedora34
- name: Fedora 34
test: fedora34
- name: Ubuntu 20.04
test: ubuntu2004
groups:
@ -251,7 +251,7 @@ stages:
testFormat: devel/rhel/{0}
targets:
- test: '7.9'
- test: '8.5-pypi-latest'
- test: '9.0-pypi-latest'
groups:
- 1
- 2
@ -267,7 +267,7 @@ stages:
nameFormat: RHEL {0}
testFormat: 2.13/rhel/{0}
targets:
- test: '7.9'
- test: '8.5'
groups:
- 1
- 2

View File

@ -88,7 +88,7 @@
- assert:
that:
- blkio_weight_1 is changed
- "blkio_weight_2 is not changed or 'Docker warning: Your kernel does not support Block I/O weight or the cgroup is not mounted. Weight discarded.' in blkio_weight_2.warnings"
- "blkio_weight_2 is not changed or 'Docker warning: Your kernel does not support Block I/O weight or the cgroup is not mounted. Weight discarded.' in (blkio_weight_2.warnings | default([]))"
- blkio_weight_3 is changed
####################################################################
@ -2306,7 +2306,9 @@
- kernel_memory_1 is changed
- kernel_memory_2 is not changed
- kernel_memory_3 is changed
when: kernel_memory_1 is not failed or 'kernel memory accounting disabled in this runc build' not in kernel_memory_1.msg
when:
- kernel_memory_1 is not failed or 'kernel memory accounting disabled in this runc build' not in kernel_memory_1.msg
- "'Docker warning: Specifying a kernel memory limit is deprecated and will be removed in a future release.' not in (kernel_memory_1.warnings | default([]))"
####################################################################
## kill_signal #####################################################
@ -2569,7 +2571,7 @@
- log_options_1 is changed
- log_options_2 is not changed
- "'Non-string value found for log_options option \\'max-file\\'. The value is automatically converted to \\'5\\'. If this is not correct, or you want to
avoid such warnings, please quote the value.' in log_options_2.warnings"
avoid such warnings, please quote the value.' in (log_options_2.warnings | default([]))"
- log_options_3 is not changed
- log_options_4 is changed
@ -2846,6 +2848,7 @@ avoid such warnings, please quote the value.' in log_options_2.warnings"
- memory_swappiness_1 is changed
- memory_swappiness_2 is not changed
- memory_swappiness_3 is changed
when: "'Docker warning: Your kernel does not support memory swappiness capabilities or the cgroup is not mounted. Memory swappiness discarded.' not in (memory_swappiness_1.warnings | default([]))"
####################################################################
## oom_killer ######################################################
@ -2891,6 +2894,7 @@ avoid such warnings, please quote the value.' in log_options_2.warnings"
- oom_killer_1 is changed
- oom_killer_2 is not changed
- oom_killer_3 is changed
when: "'Docker warning: Your kernel does not support OomKillDisable. OomKillDisable discarded.' not in (oom_killer_1.warnings | default([]))"
####################################################################
## oom_score_adj ###################################################
@ -2936,6 +2940,7 @@ avoid such warnings, please quote the value.' in log_options_2.warnings"
- oom_score_adj_1 is changed
- oom_score_adj_2 is not changed
- oom_score_adj_3 is changed
when: "'Docker warning: Your kernel does not support OomScoreAdj. OomScoreAdj discarded.' not in (oom_score_adj_1.warnings | default([]))"
####################################################################
## output_logs #####################################################

View File

@ -1950,6 +1950,7 @@
- all
register: capabilities_2
ignore_errors: yes
diff: true
- name: capabilities, cap_drop (less)
docker_swarm_service:
@ -1962,6 +1963,7 @@
- all
register: capabilities_3
ignore_errors: yes
diff: true
- name: capabilities, cap_drop (changed)
docker_swarm_service:
@ -1975,6 +1977,7 @@
- all
register: capabilities_4
ignore_errors: yes
diff: true
- name: cleanup
docker_swarm_service:
@ -1986,7 +1989,7 @@
that:
- capabilities_1 is changed
- capabilities_2 is not changed
- capabilities_3 is not changed
- capabilities_3 is changed
- capabilities_4 is changed
when: docker_api_version is version('1.41', '>=') and docker_py_version is version('5.0.3', '>=')

View File

@ -0,0 +1,35 @@
---
# The RHEL extras repository must be enabled to provide the container-selinux package.
# See: https://docs.docker.com/engine/installation/linux/docker-ee/rhel/#install-using-the-repository
- name: Install Docker pre-reqs
dnf:
name: "{{ docker_prereq_packages }}"
state: present
notify: cleanup docker
register: result
until: result is success
retries: 10
delay: 2
# Docker broke their .repo file, so we set it up ourselves
- name: Set-up repository
yum_repository:
name: docker-ce
description: docker-ce
baseurl: https://download.docker.com/linux/centos/{{ ansible_facts.distribution_major_version }}/$basearch/stable
gpgcheck: true
gpgkey: https://download.docker.com/linux/centos/gpg
- name: Install docker
dnf:
name: "{{ docker_packages if needs_docker_daemon else docker_cli_packages }}"
state: present
notify: cleanup docker
- name: Make sure the docker daemon is running (failure expected inside docker container)
service:
name: docker
state: started
ignore_errors: "{{ ansible_virtualization_type in ['docker', 'container', 'containerd'] }}"
when: needs_docker_daemon

View File

@ -0,0 +1,13 @@
---
docker_prereq_packages:
- yum-utils
- device-mapper-persistent-data
- lvm2
- libseccomp
- iptables
docker_packages:
- docker-ce # -19.03.13
- docker-ce-cli # -19.03.13
docker_cli_packages:
- docker-ce-cli # -19.03.13

View File

@ -0,0 +1,5 @@
---
- name: Install docker-compose as system package
dnf:
name: "{{ docker_compose_packages }}"
state: present

View File

@ -0,0 +1,2 @@
---
docker_compose_packages: []