From 5b33cb5e801635ad7e2aaafebcbbd031749ecfa8 Mon Sep 17 00:00:00 2001 From: Rafael Guterres Jeffman <rjeffman@redhat.com> Date: Tue, 15 Oct 2024 18:08:21 -0300 Subject: [PATCH] Remove molecule dependencies For some time now, we had some issues with molecule when building test images for ansible-freeipa, and replaced the image creation with custom build scripts that use commom container tools (like Dockerfiles and the build command). As there's no more tasks that require the use of molecule, this patch removes the last bits used by it, and fixes documentation and lint scripts and configuration. --- .ansible-lint | 1 - molecule/c8s-build/Dockerfile | 30 ------------ molecule/c8s-build/molecule.yml | 19 -------- molecule/c8s/molecule.yml | 19 -------- molecule/c9s-build/Dockerfile | 29 ----------- molecule/c9s-build/molecule.yml | 19 -------- molecule/c9s/molecule.yml | 19 -------- molecule/centos-7-build/molecule.yml | 19 -------- molecule/centos-7/molecule.yml | 19 -------- molecule/default | 1 - molecule/fedora-latest-build/Dockerfile | 30 ------------ molecule/fedora-latest-build/molecule.yml | 19 -------- molecule/fedora-latest/molecule.yml | 19 -------- molecule/fedora-rawhide-build/Dockerfile | 30 ------------ molecule/fedora-rawhide-build/molecule.yml | 19 -------- molecule/fedora-rawhide/molecule.yml | 19 -------- molecule/resources/playbooks/library | 1 - molecule/resources/playbooks/module_utils | 1 - .../resources/playbooks/prepare-build.yml | 28 ----------- .../resources/playbooks/prepare-common.yml | 33 ------------- molecule/resources/playbooks/prepare.yml | 48 ------------------- molecule/resources/playbooks/roles | 1 - tests/README.md | 42 ++-------------- utils/lint_check.sh | 1 - 24 files changed, 4 insertions(+), 462 deletions(-) delete mode 100644 molecule/c8s-build/Dockerfile delete mode 100644 molecule/c8s-build/molecule.yml delete mode 100644 molecule/c8s/molecule.yml delete mode 100644 molecule/c9s-build/Dockerfile delete mode 100644 molecule/c9s-build/molecule.yml delete mode 100644 molecule/c9s/molecule.yml delete mode 100644 molecule/centos-7-build/molecule.yml delete mode 100644 molecule/centos-7/molecule.yml delete mode 120000 molecule/default delete mode 100644 molecule/fedora-latest-build/Dockerfile delete mode 100644 molecule/fedora-latest-build/molecule.yml delete mode 100644 molecule/fedora-latest/molecule.yml delete mode 100644 molecule/fedora-rawhide-build/Dockerfile delete mode 100644 molecule/fedora-rawhide-build/molecule.yml delete mode 100644 molecule/fedora-rawhide/molecule.yml delete mode 120000 molecule/resources/playbooks/library delete mode 120000 molecule/resources/playbooks/module_utils delete mode 100644 molecule/resources/playbooks/prepare-build.yml delete mode 100644 molecule/resources/playbooks/prepare-common.yml delete mode 100644 molecule/resources/playbooks/prepare.yml delete mode 120000 molecule/resources/playbooks/roles diff --git a/.ansible-lint b/.ansible-lint index 67136a03..28fc3ac2 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -7,7 +7,6 @@ exclude_paths: - .tox/ - .venv/ - .yamllint - - molecule/ - tests/azure/ - meta/runtime.yml - requirements-docker.yml diff --git a/molecule/c8s-build/Dockerfile b/molecule/c8s-build/Dockerfile deleted file mode 100644 index 7bdc1764..00000000 --- a/molecule/c8s-build/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -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 deleted file mode 100644 index 88552151..00000000 --- a/molecule/c8s-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -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 -prerun: false diff --git a/molecule/c8s/molecule.yml b/molecule/c8s/molecule.yml deleted file mode 100644 index 79f35c54..00000000 --- a/molecule/c8s/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -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/molecule/c9s-build/Dockerfile b/molecule/c9s-build/Dockerfile deleted file mode 100644 index 2bb39a10..00000000 --- a/molecule/c9s-build/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM quay.io/centos/centos:stream9 -ENV container=docker - -RUN rm -fv /var/cache/dnf/metadata_lock.pid; \ -dnf makecache; \ -dnf --assumeyes install \ - /usr/bin/python3 \ - /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/c9s-build/molecule.yml b/molecule/c9s-build/molecule.yml deleted file mode 100644 index dfa65480..00000000 --- a/molecule/c9s-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: c9s-build - image: "quay.io/centos/centos:stream9" - 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 -prerun: false diff --git a/molecule/c9s/molecule.yml b/molecule/c9s/molecule.yml deleted file mode 100644 index 7aba5225..00000000 --- a/molecule/c9s/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: c9s - image: quay.io/ansible-freeipa/upstream-tests:c9s - 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/molecule/centos-7-build/molecule.yml b/molecule/centos-7-build/molecule.yml deleted file mode 100644 index e88e1208..00000000 --- a/molecule/centos-7-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: centos-7-build - image: centos/systemd - pre_build_image: true - 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 -prerun: false diff --git a/molecule/centos-7/molecule.yml b/molecule/centos-7/molecule.yml deleted file mode 100644 index 5cb077e2..00000000 --- a/molecule/centos-7/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: centos-7 - image: quay.io/ansible-freeipa/upstream-tests:centos-7 - 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/molecule/default b/molecule/default deleted file mode 120000 index 768be926..00000000 --- a/molecule/default +++ /dev/null @@ -1 +0,0 @@ -fedora-latest \ No newline at end of file diff --git a/molecule/fedora-latest-build/Dockerfile b/molecule/fedora-latest-build/Dockerfile deleted file mode 100644 index f3c2ef62..00000000 --- a/molecule/fedora-latest-build/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM fedora:latest -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/fedora-latest-build/molecule.yml b/molecule/fedora-latest-build/molecule.yml deleted file mode 100644 index 10635d3a..00000000 --- a/molecule/fedora-latest-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: fedora-latest-build - image: "fedora:latest" - 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 -prerun: false diff --git a/molecule/fedora-latest/molecule.yml b/molecule/fedora-latest/molecule.yml deleted file mode 100644 index 94c4fc4a..00000000 --- a/molecule/fedora-latest/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: fedora-latest - image: quay.io/ansible-freeipa/upstream-tests:fedora-latest - 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/molecule/fedora-rawhide-build/Dockerfile b/molecule/fedora-rawhide-build/Dockerfile deleted file mode 100644 index f1a1c124..00000000 --- a/molecule/fedora-rawhide-build/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM fedora:rawhide -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/fedora-rawhide-build/molecule.yml b/molecule/fedora-rawhide-build/molecule.yml deleted file mode 100644 index c8afa329..00000000 --- a/molecule/fedora-rawhide-build/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: fedora-rawhide-build - image: "fedora:rawhide" - 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 -prerun: false diff --git a/molecule/fedora-rawhide/molecule.yml b/molecule/fedora-rawhide/molecule.yml deleted file mode 100644 index 6ff53e9b..00000000 --- a/molecule/fedora-rawhide/molecule.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -driver: - name: docker -platforms: - - name: fedora-rawhide - image: quay.io/ansible-freeipa/upstream-tests:fedora-rawhide - 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/molecule/resources/playbooks/library b/molecule/resources/playbooks/library deleted file mode 120000 index 0140dc6d..00000000 --- a/molecule/resources/playbooks/library +++ /dev/null @@ -1 +0,0 @@ -../../../plugins/modules/ \ No newline at end of file diff --git a/molecule/resources/playbooks/module_utils b/molecule/resources/playbooks/module_utils deleted file mode 120000 index 2b1d4840..00000000 --- a/molecule/resources/playbooks/module_utils +++ /dev/null @@ -1 +0,0 @@ -../../../plugins/module_utils/ \ No newline at end of file diff --git a/molecule/resources/playbooks/prepare-build.yml b/molecule/resources/playbooks/prepare-build.yml deleted file mode 100644 index 5e8e5a92..00000000 --- a/molecule/resources/playbooks/prepare-build.yml +++ /dev/null @@ -1,28 +0,0 @@ ---- -- name: Converge - hosts: all - tasks: - - include_tasks: prepare-common.yml - - - name: Ensure sudo package is installed - package: - name: sudo - - - name: Ensure nss package is updated - package: - name: nss - state: latest # noqa 403 - - - include_role: - name: ipaserver - vars: - ipaserver_setup_dns: yes - ipaserver_setup_kra: yes - ipaserver_auto_forwarders: yes - ipaserver_no_dnssec_validation: yes - ipaserver_auto_reverse: yes - ipaadmin_password: SomeADMINpassword - ipadm_password: SomeDMpassword - ipaserver_domain: test.local - ipaserver_realm: TEST.LOCAL - ipaclient_no_ntp: yes diff --git a/molecule/resources/playbooks/prepare-common.yml b/molecule/resources/playbooks/prepare-common.yml deleted file mode 100644 index 1e1a6022..00000000 --- a/molecule/resources/playbooks/prepare-common.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- -# IPA depends on IPv6 and without it dirsrv service won't start. -- name: Ensure IPv6 is ENABLED - ansible.posix.sysctl: - name: "{{ item.name }}" - value: "{{ item.value }}" - sysctl_set: yes - state: present - reload: yes - with_items: - - name: net.ipv6.conf.all.disable_ipv6 - value: 0 - - name: net.ipv6.conf.lo.disable_ipv6 - value: 0 - - name: net.ipv6.conf.eth0.disable_ipv6 - value: 1 - -# Set fs.protected_regular to 0 -# This is needed in some IPA versions in order to get KRA enabled. -# See https://pagure.io/freeipa/issue/7906 for more information. -- name: stat protected_regular - ansible.builtin.stat: - path: /proc/sys/fs/protected_regular - register: result - -- name: Ensure fs.protected_regular is disabled - ansible.posix.sysctl: - name: fs.protected_regular - value: 0 - sysctl_set: yes - state: present - reload: yes - when: result.stat.exists diff --git a/molecule/resources/playbooks/prepare.yml b/molecule/resources/playbooks/prepare.yml deleted file mode 100644 index deaa092b..00000000 --- a/molecule/resources/playbooks/prepare.yml +++ /dev/null @@ -1,48 +0,0 @@ ---- -- name: Converge - hosts: all - tasks: - - include_tasks: prepare-common.yml - - # In some distros DS won't start up after reboot - # This is due to a problem in 389-ds. See tickets: - # * https://pagure.io/389-ds-base/issue/47429 - # * https://pagure.io/389-ds-base/issue/51039 - # - # To avoid this problem we create the directories before starting IPA. - - name: Ensure lock dirs for DS exists - ansible.builtin.file: - state: directory - owner: dirsrv - group: dirsrv - path: "{{ item }}" - mode: 0770 - loop: - - /var/lock/dirsrv/ - - /var/lock/dirsrv/slapd-TEST-LOCAL/ - - - name: Ensure IPA server is up an running - ansible.builtin.service: - name: ipa - state: started - - - name: Wait for krb5dkc to be running - ansible.builtin.service_facts: - no_log: True - register: result - until: "'krb5kdc.service' in result.ansible_facts.services and \ - result.ansible_facts.services['krb5kdc.service'].state == 'running'" - retries: 30 - delay: 5 - - - name: Check if TGT is available for admin. - ansible.builtin.shell: - cmd: echo SomeADMINpassword | kinit -c ansible_freeipa_cache admin - register: result - until: not result.failed - retries: 30 - delay: 5 - - - name: Cleanup TGT. - ansible.builtin.shell: - cmd: kdestroy -c ansible_freeipa_cache -A diff --git a/molecule/resources/playbooks/roles b/molecule/resources/playbooks/roles deleted file mode 120000 index e2b799b9..00000000 --- a/molecule/resources/playbooks/roles +++ /dev/null @@ -1 +0,0 @@ -../../../roles/ \ No newline at end of file diff --git a/tests/README.md b/tests/README.md index 1e9d4e4a..298078b8 100644 --- a/tests/README.md +++ b/tests/README.md @@ -102,48 +102,16 @@ The pytests are tests that will execute small playbooks and then will verify the To select only these tests on a test execution use the option `-m "not playbook"`. -## Running tests in a docker container +## Running tests in a container -It's also possible to run the tests in a container. - -### Creating a container to run the tests - -Before setting up a container you will need to install molecule framework: - -``` -pip install molecule-plugins[docker] -``` - -Now you can start a test container using the following command: -``` -molecule create -s c8s -``` - -Note: Currently the containers available for running the tests are: - * fedora-latest - * centos-7 - * c8s - * c9s - -### Running the tests inside the container +It's also possible to run the tests in a container. Use the script `infra/image/start.sh` to start a container. To run the tests you will use pytest (works the same as for VMs). ``` -RUN_TESTS_IN_DOCKER=1 IPA_SERVER_HOST=c8s pytest +RUN_TESTS_IN_DOCKER=podman IPA_SERVER_HOST=ansbile-freeipa-tests pytest -m "playbook" ``` -### Cleaning up after tests - -After running the tests you should probably destroy the test container using: - -``` -molecule destroy -s c8s -``` - -See [Running the tests](#running-the-tests) section for more information on available options. - - ## Running local tests with upstream CI images To run tests locally using the same images used by upstream CI use `utils/run-tests.sh`. @@ -172,8 +140,6 @@ By default the tests are executed against the latest version of the Fedora image utils/run-tests.sh -i c9s tests/host/test_host.yml ``` - ## Upcoming/desired improvements: -* A script to pre-config the complete test environment using virsh. -* A test matrix to run tests against different distros in parallel (probably using tox). +* A test matrix to run tests against different distros in parallel. diff --git a/utils/lint_check.sh b/utils/lint_check.sh index 25d4f887..76c8c2ac 100755 --- a/utils/lint_check.sh +++ b/utils/lint_check.sh @@ -35,7 +35,6 @@ echo -e "${INFO}Running 'yamllint'...${RST}" yaml_dirs=( "tests" "playbooks" - "molecule" "roles" ) yamllint -f colored "${yaml_dirs[@]}" -- GitLab