From 998a14148255b8360a291df797f36c5d84193cbf Mon Sep 17 00:00:00 2001
From: Rafael Guterres Jeffman <rjeffman@redhat.com>
Date: Mon, 17 Jan 2022 09:23:06 -0300
Subject: [PATCH] upstream CI: Enable CentOS 8 Stream for PR and nightly tests.

Add configuration to build a testing CentOS 8 stream image and to
execute upstream tests using that image in pull requests (Ansible
2.9) and on the nightly tests (all supported Ansible versions).
---
 molecule/c8s-build/Dockerfile    | 30 ++++++++++++++++++++++++
 molecule/c8s-build/molecule.yml  | 18 ++++++++++++++
 molecule/c8s/molecule.yml        | 19 +++++++++++++++
 tests/azure/azure-pipelines.yml  | 15 ++++++++++--
 tests/azure/build-containers.yml |  6 +++++
 tests/azure/nightly.yml          | 40 +++++++++++++++++++++++++++++++-
 6 files changed, 125 insertions(+), 3 deletions(-)
 create mode 100644 molecule/c8s-build/Dockerfile
 create mode 100644 molecule/c8s-build/molecule.yml
 create mode 100644 molecule/c8s/molecule.yml

diff --git a/molecule/c8s-build/Dockerfile b/molecule/c8s-build/Dockerfile
new file mode 100644
index 00000000..7bdc1764
--- /dev/null
+++ b/molecule/c8s-build/Dockerfile
@@ -0,0 +1,30 @@
+FROM quay.io/centos/centos:stream8
+ENV container=docker
+
+RUN rm -fv /var/cache/dnf/metadata_lock.pid; \
+dnf makecache; \
+dnf --assumeyes install \
+    /usr/bin/python3 \
+    /usr/bin/python3-config \
+    /usr/bin/dnf-3 \
+    sudo \
+    bash \
+    systemd \
+    procps-ng \
+    iproute && \
+dnf clean all; \
+(cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
+rm -f /lib/systemd/system/multi-user.target.wants/*;\
+rm -f /etc/systemd/system/*.wants/*;\
+rm -f /lib/systemd/system/local-fs.target.wants/*; \
+rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
+rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
+rm -f /lib/systemd/system/basic.target.wants/*;\
+rm -f /lib/systemd/system/anaconda.target.wants/*; \
+rm -rf /var/cache/dnf/;
+
+STOPSIGNAL RTMIN+3
+
+VOLUME ["/sys/fs/cgroup"]
+
+CMD ["/usr/sbin/init"]
diff --git a/molecule/c8s-build/molecule.yml b/molecule/c8s-build/molecule.yml
new file mode 100644
index 00000000..86d5d610
--- /dev/null
+++ b/molecule/c8s-build/molecule.yml
@@ -0,0 +1,18 @@
+---
+driver:
+  name: docker
+platforms:
+  - name: c8s-build
+    image: "quay.io/centos/centos:stream8"
+    dockerfile: Dockerfile
+    hostname: ipaserver.test.local
+    dns_servers:
+      - 8.8.8.8
+    volumes:
+      - /sys/fs/cgroup:/sys/fs/cgroup:ro
+    command: /usr/sbin/init
+    privileged: true
+provisioner:
+  name: ansible
+  playbooks:
+    prepare: ../resources/playbooks/prepare-build.yml
diff --git a/molecule/c8s/molecule.yml b/molecule/c8s/molecule.yml
new file mode 100644
index 00000000..79f35c54
--- /dev/null
+++ b/molecule/c8s/molecule.yml
@@ -0,0 +1,19 @@
+---
+driver:
+  name: docker
+platforms:
+  - name: c8s
+    image: quay.io/ansible-freeipa/upstream-tests:c8s
+    pre_build_image: true
+    hostname: ipaserver.test.local
+    dns_servers:
+      - 127.0.0.1
+    volumes:
+      - /sys/fs/cgroup:/sys/fs/cgroup:ro
+    command: /usr/sbin/init
+    privileged: true
+provisioner:
+  name: ansible
+  playbooks:
+    prepare: ../resources/playbooks/prepare.yml
+prerun: false
diff --git a/tests/azure/azure-pipelines.yml b/tests/azure/azure-pipelines.yml
index b1cf3469..d188fd54 100644
--- a/tests/azure/azure-pipelines.yml
+++ b/tests/azure/azure-pipelines.yml
@@ -18,9 +18,9 @@ stages:
       scenario: fedora-latest
       ansible_version: ">=2.9,<2.10"
 
-# CentOS 9
+# CentOS 9 Stream
 
-- stage: CentOS9_Ansible_2_9
+- stage: c9s_Ansible_2_9
   dependsOn: []
   jobs:
   - template: templates/group_tests.yml
@@ -29,6 +29,17 @@ stages:
       scenario: centos-9
       ansible_version: ">=2.9,<2.10"
 
+# CentOS 8 Stream
+
+- stage: c8s_Ansible_2_9
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: c8s
+      ansible_version: ">=2.9,<2.10"
+
 # CentOS 8
 
 - stage: CentOS8_Ansible_2_9
diff --git a/tests/azure/build-containers.yml b/tests/azure/build-containers.yml
index 633eb825..9bdc5521 100644
--- a/tests/azure/build-containers.yml
+++ b/tests/azure/build-containers.yml
@@ -27,6 +27,12 @@ jobs:
     container_name: centos-8
     build_scenario_name: centos-8-build
 
+- template: templates/build_container.yml
+  parameters:
+    job_name_suffix: C8S
+    container_name: c8s
+    build_scenario_name: c8s-build
+
 - template: templates/build_container.yml
   parameters:
     job_name_suffix: Centos9
diff --git a/tests/azure/nightly.yml b/tests/azure/nightly.yml
index 2bef4cbd..9c17a6f9 100644
--- a/tests/azure/nightly.yml
+++ b/tests/azure/nightly.yml
@@ -52,7 +52,7 @@ stages:
       scenario: fedora-latest
       ansible_version: ""
 
-# CentoOS 9
+# CentoOS 9 Stream
 
 - stage: CentOS9_Ansible_2_9
   dependsOn: []
@@ -81,6 +81,44 @@ stages:
       scenario: centos-9
       ansible_version: ""
 
+# CentOS 8 Stream
+
+- stage: c8s_Ansible_2_9
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: c8s
+      ansible_version: ">=2.9,<2.10"
+
+- stage: c8s_Ansible_Core_2_11
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: centos-8
+      ansible_version: "-core >=2.11,<2.12"
+
+- stage: c8s_Ansible_Core_2_12
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: c8s
+      ansible_version: "-core >=2.12,<2.13"
+
+- stage: c8s_Ansible_latest
+  dependsOn: []
+  jobs:
+  - template: templates/group_tests.yml
+    parameters:
+      build_number: $(Build.BuildNumber)
+      scenario: c8s
+      ansible_version: ""
+
 # CentOS 8
 
 - stage: CentOS8_Ansible_2_9
-- 
GitLab