From: Oto Šťáva Date: Thu, 25 Jul 2024 13:47:18 +0000 (+0200) Subject: ci, distro, tests: remove old distro test files X-Git-Tag: v5.7.5~10^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2ed544a077ae5b39af746caa7e7f6b6ebd997dc5;p=thirdparty%2Fknot-resolver.git ci, distro, tests: remove old distro test files --- diff --git a/ci/pkgtest.yaml b/ci/pkgtest.yaml deleted file mode 100644 index 57aca4cce..000000000 --- a/ci/pkgtest.yaml +++ /dev/null @@ -1,216 +0,0 @@ -default: - interruptible: true - -stages: - - pkgbuild - - pkgtest - -# pkgbuild {{{ -.pkgbuild: &pkgbuild - stage: pkgbuild - tags: - - lxc - - amd64 - before_script: - - git config --global user.name CI - - git config --global user.email ci@nic - needs: # https://gitlab.nic.cz/help/ci/yaml/README.md#artifact-downloads-to-child-pipelines - - pipeline: $PARENT_PIPELINE_ID - job: archive - artifacts: - when: always - expire_in: '1 day' - paths: - - pkg/ - -.apkgbuild: &apkgbuild # new jinja2 breaks docs (sphinx/breathe) - - pip3 install -U apkg 'jinja2<3.1' - - apkg build-dep -y - - apkg build - -.pkgdebrepo: &pkgdebrepo - - apt-get update - - apt-get install -y curl gnupg2 - - echo "deb http://download.opensuse.org/repositories/home:/CZ-NIC:/$OBS_REPO/$DISTROTEST_REPO/ /" > /etc/apt/sources.list.d/obs.list - - curl -fsSL "https://download.opensuse.org/repositories/home:CZ-NIC:$OBS_REPO/$DISTROTEST_REPO/Release.key" | gpg --dearmor > /etc/apt/trusted.gpg.d/obs.gpg - - apt-get update - -.debpkgbuild: &debpkgbuild - - *pkgdebrepo - - apt-get install -y python3-pip devscripts - - *apkgbuild - -debian-10:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-10 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_10 - script: - - *debpkgbuild - -debian-11:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-11 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_11 - script: - - *debpkgbuild - -fedora-34:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-34 - script: - - dnf install -y rpm-build python3-pip - - *apkgbuild - -fedora-35:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-35 - script: - - dnf install -y rpm-build python3-pip - - *apkgbuild - -rocky-8:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/rocky-8 - script: - - dnf install -y rpm-build python3-pip epel-release dnf-plugins-core - - dnf config-manager --set-enabled powertools - - *apkgbuild - -ubuntu-18.04:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-18.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_18.04 - script: - - *debpkgbuild - -ubuntu-20.04:pkgbuild: - <<: *pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-20.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_20.04 - script: - - *debpkgbuild - -nixos-unstable:pkgbuild: - <<: *pkgbuild - # We do NOT use LXC, for now at least. - parallel: - matrix: - - PLATFORM: [ amd64, arm64 ] - tags: - - docker - - linux - - ${PLATFORM} - # https://github.com/NixOS/nix/issues/10648#issuecomment-2101993746 - image: docker.io/nixos/nix:latest-${PLATFORM} - - variables: - NIX_PATH: nixpkgs=https://github.com/nixos/nixpkgs/archive/nixos-unstable.tar.gz - before_script: - script: - - nix-build '' -QA apkg - # the image auto-detects as alpine distro - # If apkg version differs (too much), it will fail to reuse archive and fail. - - ./result/bin/apkg install -d nix - - kresd --version -# }}} - -# pkgtest {{{ -.pkgtest: &pkgtest - stage: pkgtest - tags: - - lxc - - amd64 - -.debpkgtest: &debpkgtest - - *pkgdebrepo - - apt-get install -y knot-dnsutils - - apt-get install -y $(find ./pkg/pkgs -name '*.deb' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - "kdig @127.0.0.1 +edns nic.cz | tee /dev/stderr | grep -qi 'status: NOERROR'" - -debian-10:pkgtest: - <<: *pkgtest - needs: - - debian-10:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-10 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_10 - script: - - *debpkgtest - -debian-11:pkgtest: - <<: *pkgtest - needs: - - debian-11:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/debian-11 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: Debian_11 - script: - - *debpkgtest - -fedora-34:pkgtest: - <<: *pkgtest - needs: - - fedora-34:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-34 - script: - - dnf install -y knot-utils findutils - - dnf install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - "kdig @127.0.0.1 +edns nic.cz | tee /dev/stderr | grep -qi 'status: NOERROR'" - -fedora-35:pkgtest: - <<: *pkgtest - needs: - - fedora-35:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/fedora-35 - script: - - dnf install -y knot-utils findutils - - dnf install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - "kdig @127.0.0.1 +edns nic.cz | tee /dev/stderr | grep -qi 'status: NOERROR'" - -rocky-8:pkgtest: - <<: *pkgtest - needs: - - rocky-8:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/rocky-8 - script: - - dnf install -y epel-release - - dnf install -y knot-utils findutils - - dnf install -y $(find ./pkg/pkgs -name '*.rpm' | grep -v module | grep -v debug | grep -v devel) - - systemctl start kresd@1 - - "kdig @127.0.0.1 +edns nic.cz | tee /dev/stderr | grep -qi 'status: NOERROR'" - -ubuntu-18.04:pkgtest: - <<: *pkgtest - needs: - - ubuntu-18.04:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-18.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_18.04 - script: - - *debpkgtest - -ubuntu-20.04:pkgtest: - <<: *pkgtest - needs: - - ubuntu-20.04:pkgbuild - image: $CI_REGISTRY/labs/lxc-gitlab-runner/ubuntu-20.04 - variables: - OBS_REPO: knot-resolver-build - DISTROTEST_REPO: xUbuntu_20.04 - script: - - *debpkgtest -# }}} diff --git a/distro/tests/README.md b/distro/tests/README.md deleted file mode 100644 index a1a5e96a0..000000000 --- a/distro/tests/README.md +++ /dev/null @@ -1,42 +0,0 @@ -Requirements ------------- - -- ansible -- vagrant -- libvirt (+vagrant-libvirt) / virtualbox - -Usage ------ - -`vagrant up` command is configured to trigger ansible provisioning -which configures OBS repository, installs the knot-resolver package, -starts the kresd@1 service and finally attempts to use it to resolve -a domain name. It also tests that DNSSEC validation is turned on. - -By default, the *knot-resolver-devel* repo (for knot-resolver) along -with *knot-resolver-latest* (for knot) is used. To test only the -*knot-resolver-latest* repo, set it in `repos.yaml` (or use the -test-distro.sh script which overwrites this file). If you're running -tests in parallel, they all HAVE TO use the same repo(s). - -Run the following command for every distro (aka directory with -Vagrantfile): - -``` -./test-distro.sh knot-resolver-devel debian9 -``` - -or - -``` -./test-distro.sh knot-resolver-testing debian9 -``` - -or - -``` -./test-distro.sh knot-resolver-latest debian9 -``` - -At the end of the test, the package version that was tested is -printed out. Make sure you're testing what you intended to. diff --git a/distro/tests/ansible-roles/knot_resolver/defaults/main.yaml b/distro/tests/ansible-roles/knot_resolver/defaults/main.yaml deleted file mode 100644 index 0860c26bb..000000000 --- a/distro/tests/ansible-roles/knot_resolver/defaults/main.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -repos: - - knot-resolver-latest -distro: "{{ ansible_distribution | replace(' ', '_') }}" -update_packages: false diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/configure_dnstap.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/configure_dnstap.yaml deleted file mode 100644 index 817b1179d..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/configure_dnstap.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: dnstap_config set up kresd.conf - blockinfile: - marker: -- {mark} ANSIBLE MANAGED BLOCK - block: | - modules.load('dnstap') - assert(dnstap) - path: /etc/knot-resolver/kresd.conf - insertbefore: BOF diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/configure_doh.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/configure_doh.yaml deleted file mode 100644 index cd4e7492c..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/configure_doh.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: doh_config set up kresd.conf - blockinfile: - marker: -- {mark} ANSIBLE MANAGED BLOCK - block: | - net.listen('127.0.0.1', 44353, { kind = 'doh_legacy' }) - modules.load('http') - path: /etc/knot-resolver/kresd.conf - insertbefore: BOF diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/configure_doh2.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/configure_doh2.yaml deleted file mode 100644 index eebca2040..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/configure_doh2.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: doh2_config set up kresd.conf - blockinfile: - marker: -- {mark} ANSIBLE MANAGED BLOCK - block: | - net.listen('127.0.0.1', 44354, { kind = 'doh2' }) - path: /etc/knot-resolver/kresd.conf diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/main.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/main.yaml deleted file mode 100644 index 8d683c809..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/main.yaml +++ /dev/null @@ -1,71 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: Include distribution specific vars - include_vars: "{{ distro }}.yaml" - -- name: Update all packages - package: - name: '*' - state: latest - when: update_packages|bool - -- name: Install packages - package: - name: "{{ packages }}" - state: latest - # knot-utils may be missing on opensuse (depending on upstream vs downstream pkg) - failed_when: false - -- name: Always print package version at the end - block: - - - include: restart_kresd.yaml - - - include: test_udp.yaml - - include: test_tcp.yaml - - include: test_tls.yaml - - include: test_dnssec.yaml - - - include: test_kres_cache_gc.yaml - - - name: Test DoH (new implementation) - block: - - include: configure_doh2.yaml - - include: restart_kresd.yaml - - include: test_doh2.yaml - - - name: Test DoH (legacy) - block: - - name: Install knot-resolver-module-http - package: - name: knot-resolver-module-http - state: latest - - - include: configure_doh.yaml - when: ansible_distribution in ["CentOS", "Rocky", "Fedora", "Debian", "Ubuntu"] - - - include: restart_kresd.yaml - - include: test_doh.yaml - when: distro in ["Fedora", "Debian", "CentOS", "Rocky"] or (distro == "Ubuntu" and ansible_distribution_major_version|int >= 18) - - - name: Test dnstap module - block: - - name: Install knot-resolver-module-dnstap - package: - name: knot-resolver-module-dnstap - state: latest - - include: configure_dnstap.yaml - - include: restart_kresd.yaml - when: distro in ["Fedora", "Debian", "CentOS", "Rocky", "Ubuntu"] - - always: - - - name: Get installed package version - shell: "{{ show_package_version }}" - args: - warn: false - register: package_version - - - name: Show installed version - debug: - var: package_version.stdout diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/restart_kresd.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/restart_kresd.yaml deleted file mode 100644 index 00dbf5db2..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/restart_kresd.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- block: - - name: Restart kresd@1.service - service: - name: kresd@1.service - state: restarted - rescue: - - name: Get kresd@1.service journal - shell: journalctl -u kresd@1 --since -20s - register: journal - - name: Print journal - debug: - var: journal - - name: Restart kresd@*.service failed, see log above - shell: /bin/false diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/test_dnssec.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/test_dnssec.yaml deleted file mode 100644 index 1cc6ea39b..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/test_dnssec.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: dnssec_test rhybar.cz. +cd returns NOERROR - tags: - - test - shell: kdig +cd @127.0.0.1 rhybar.cz. - register: res - failed_when: '"status: NOERROR" not in res.stdout' - -- name: dnssec_test rhybar.cz. returns SERVFAIL - tags: - - test - shell: kdig +timeout=16 @127.0.0.1 rhybar.cz. - register: res - failed_when: '"status: SERVFAIL" not in res.stdout' diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/test_doh.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/test_doh.yaml deleted file mode 100644 index 2c200e178..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/test_doh.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: doh_test query localhost. A - get_url: - url: https://127.0.0.1:44353/doh?dns=1Y0BAAABAAAAAAAACWxvY2FsaG9zdAAAAQAB - sha256sum: e5c2710e6ecb78c089ab608ad5861b87be0d1c623c4d58b4eee3b21c06aa2008 - dest: /tmp/doh_test - mode: 0644 - validate_certs: false diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/test_doh2.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/test_doh2.yaml deleted file mode 100644 index 32cf2950e..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/test_doh2.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: doh2_test check kdig https support - shell: kdig --help | grep -q '+\S*https' - register: kdig_https - ignore_errors: true - -- name: doh2_test query localhost. A - # use curl instead of ansible builtins (get_url/uri) - # because they currently use unsupported HTTP/1.1 - shell: | - curl -k -o /tmp/doh_test https://127.0.0.1:44354/doh?dns=1Y0BAAABAAAAAAAACWxvY2FsaG9zdAAAAQAB - echo "e5c2710e6ecb78c089ab608ad5861b87be0d1c623c4d58b4eee3b21c06aa2008 /tmp/doh_test" > /tmp/doh_test.sha256 - sha256sum --check /tmp/doh_test.sha256 - args: - # disable warning about using curl - we know what we're doing - warn: false - when: kdig_https is failed - -- name: doh2_test kdig localhost. A - shell: | - kdig @127.0.0.1 -p 44354 +https nic.cz || exit 1 - kdig @127.0.0.1 -p 44354 +https-get nic.cz || exit 2 - when: kdig_https is succeeded diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/test_kres_cache_gc.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/test_kres_cache_gc.yaml deleted file mode 100644 index 3a7c9c90f..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/test_kres_cache_gc.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: check kres-cache-gc.service is active - shell: systemctl is-active -q kres-cache-gc.service diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/test_tcp.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/test_tcp.yaml deleted file mode 100644 index 1af18fd17..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/test_tcp.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: tcp_test resolve nic.cz - tags: - - test - shell: kdig +tcp @127.0.0.1 nic.cz - register: res - failed_when: '"status: NOERROR" not in res.stdout' diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/test_tls.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/test_tls.yaml deleted file mode 100644 index c780657b7..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/test_tls.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: tls_test resolve nic.cz - tags: - - test - shell: kdig +tls @127.0.0.1 nic.cz - register: res - failed_when: '"status: NOERROR" not in res.stdout' diff --git a/distro/tests/ansible-roles/knot_resolver/tasks/test_udp.yaml b/distro/tests/ansible-roles/knot_resolver/tasks/test_udp.yaml deleted file mode 100644 index 64023ffee..000000000 --- a/distro/tests/ansible-roles/knot_resolver/tasks/test_udp.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: udp_test resolve nic.cz - tags: - - test - shell: kdig @127.0.0.1 nic.cz - register: res - failed_when: '"status: NOERROR" not in res.stdout' diff --git a/distro/tests/ansible-roles/knot_resolver/vars/CentOS.yaml b/distro/tests/ansible-roles/knot_resolver/vars/CentOS.yaml deleted file mode 100644 index d69cb13de..000000000 --- a/distro/tests/ansible-roles/knot_resolver/vars/CentOS.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -show_package_version: rpm -qi knot-resolver | grep '^Version' -packages: - - knot-resolver - - knot-utils diff --git a/distro/tests/ansible-roles/knot_resolver/vars/Debian.yaml b/distro/tests/ansible-roles/knot_resolver/vars/Debian.yaml deleted file mode 100644 index bcdc37aec..000000000 --- a/distro/tests/ansible-roles/knot_resolver/vars/Debian.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -show_package_version: dpkg -s knot-resolver | grep '^Version' -packages: - - knot-resolver - - knot-dnsutils diff --git a/distro/tests/ansible-roles/knot_resolver/vars/Fedora.yaml b/distro/tests/ansible-roles/knot_resolver/vars/Fedora.yaml deleted file mode 100644 index d69cb13de..000000000 --- a/distro/tests/ansible-roles/knot_resolver/vars/Fedora.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -show_package_version: rpm -qi knot-resolver | grep '^Version' -packages: - - knot-resolver - - knot-utils diff --git a/distro/tests/ansible-roles/knot_resolver/vars/Rocky.yaml b/distro/tests/ansible-roles/knot_resolver/vars/Rocky.yaml deleted file mode 100644 index d69cb13de..000000000 --- a/distro/tests/ansible-roles/knot_resolver/vars/Rocky.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -show_package_version: rpm -qi knot-resolver | grep '^Version' -packages: - - knot-resolver - - knot-utils diff --git a/distro/tests/ansible-roles/knot_resolver/vars/Ubuntu.yaml b/distro/tests/ansible-roles/knot_resolver/vars/Ubuntu.yaml deleted file mode 100644 index bcdc37aec..000000000 --- a/distro/tests/ansible-roles/knot_resolver/vars/Ubuntu.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -show_package_version: dpkg -s knot-resolver | grep '^Version' -packages: - - knot-resolver - - knot-dnsutils diff --git a/distro/tests/ansible-roles/knot_resolver/vars/openSUSE_Leap.yaml b/distro/tests/ansible-roles/knot_resolver/vars/openSUSE_Leap.yaml deleted file mode 100644 index d69cb13de..000000000 --- a/distro/tests/ansible-roles/knot_resolver/vars/openSUSE_Leap.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -show_package_version: rpm -qi knot-resolver | grep '^Version' -packages: - - knot-resolver - - knot-utils diff --git a/distro/tests/ansible-roles/knot_resolver/vars/openSUSE_Tumbleweed.yaml b/distro/tests/ansible-roles/knot_resolver/vars/openSUSE_Tumbleweed.yaml deleted file mode 100644 index 39d5ef0ca..000000000 --- a/distro/tests/ansible-roles/knot_resolver/vars/openSUSE_Tumbleweed.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -show_package_version: rpm -qi knot-resolver | grep '^Version' -update_packages: true -packages: - - knot-resolver - - knot-utils diff --git a/distro/tests/ansible-roles/obs_repos/defaults/main.yaml b/distro/tests/ansible-roles/obs_repos/defaults/main.yaml deleted file mode 100644 index 05ffcb6c7..000000000 --- a/distro/tests/ansible-roles/obs_repos/defaults/main.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_distro: "{{ ansible_distribution | replace(' ', '_') }}" -obs_repofile_url: "https://download.opensuse.org/repositories/home:CZ-NIC:{{ item }}/{{ obs_repo_version }}/home:CZ-NIC:{{ item }}.repo" diff --git a/distro/tests/ansible-roles/obs_repos/tasks/CentOS.yaml b/distro/tests/ansible-roles/obs_repos/tasks/CentOS.yaml deleted file mode 100644 index 2333a9588..000000000 --- a/distro/tests/ansible-roles/obs_repos/tasks/CentOS.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: update CA certificates - yum: - name: ca-certificates - state: latest - -- name: Install EPEL - yum: - name: epel-release - state: present - -- name: Download repo file(s) - get_url: - url: "{{ obs_repofile_url }}" - dest: /etc/yum.repos.d/home:CZ-NIC:{{ item }}.repo - mode: 0644 - with_items: "{{ repos }}" diff --git a/distro/tests/ansible-roles/obs_repos/tasks/Debian.yaml b/distro/tests/ansible-roles/obs_repos/tasks/Debian.yaml deleted file mode 100644 index 6220f8955..000000000 --- a/distro/tests/ansible-roles/obs_repos/tasks/Debian.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: Add upstream package signing key - get_url: - url: https://gitlab.nic.cz/knot/knot-resolver-release/raw/master/cznic-obs.gpg.asc - dest: /etc/apt/trusted.gpg.d/cznic-obs.gpg.asc - mode: 0644 - -- name: Add OBS repo(s) - apt_repository: - repo: > - deb http://download.opensuse.org/repositories/home:/CZ-NIC:/{{ item }}/{{ obs_repo_version }}/ / - state: present - update_cache: true - with_items: "{{ repos }}" diff --git a/distro/tests/ansible-roles/obs_repos/tasks/Fedora.yaml b/distro/tests/ansible-roles/obs_repos/tasks/Fedora.yaml deleted file mode 100644 index 520e057c2..000000000 --- a/distro/tests/ansible-roles/obs_repos/tasks/Fedora.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: Download repo file(s) - get_url: - url: "{{ obs_repofile_url }}" - dest: "/etc/yum.repos.d/home:CZ-NIC:{{ item }}.repo" - mode: 0644 - with_items: "{{ repos }}" diff --git a/distro/tests/ansible-roles/obs_repos/tasks/Rocky.yaml b/distro/tests/ansible-roles/obs_repos/tasks/Rocky.yaml deleted file mode 100644 index fecfbeaaf..000000000 --- a/distro/tests/ansible-roles/obs_repos/tasks/Rocky.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: Install EPEL - yum: - name: epel-release - state: present - -- name: Download repo file(s) - get_url: - url: "{{ obs_repofile_url }}" - dest: /etc/yum.repos.d/home:CZ-NIC:{{ item }}.repo - mode: 0644 - with_items: "{{ repos }}" diff --git a/distro/tests/ansible-roles/obs_repos/tasks/Ubuntu.yaml b/distro/tests/ansible-roles/obs_repos/tasks/Ubuntu.yaml deleted file mode 100644 index ba424c47f..000000000 --- a/distro/tests/ansible-roles/obs_repos/tasks/Ubuntu.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: Add upstream package signing key - apt_key: - url: https://gitlab.nic.cz/knot/knot-resolver-release/raw/master/cznic-obs.gpg.asc - state: present - -- name: Add OBS repo(s) - apt_repository: - repo: > - deb http://download.opensuse.org/repositories/home:/CZ-NIC:/{{ item }}/{{ obs_repo_version }}/ / - state: present - update_cache: true - with_items: "{{ repos }}" diff --git a/distro/tests/ansible-roles/obs_repos/tasks/main.yaml b/distro/tests/ansible-roles/obs_repos/tasks/main.yaml deleted file mode 100644 index 6bae00189..000000000 --- a/distro/tests/ansible-roles/obs_repos/tasks/main.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: Include Debian specific vars - include_vars: "{{ obs_distro }}_{{ ansible_distribution_major_version }}.yaml" - when: obs_distro == "Debian" - -- name: Include distribution specific vars - include_vars: "{{ obs_distro }}.yaml" - when: obs_distro != "Debian" - -- name: Configure upstream repositories - include: "{{ obs_distro }}.yaml" diff --git a/distro/tests/ansible-roles/obs_repos/tasks/openSUSE_Leap.yaml b/distro/tests/ansible-roles/obs_repos/tasks/openSUSE_Leap.yaml deleted file mode 100644 index 84ab5a973..000000000 --- a/distro/tests/ansible-roles/obs_repos/tasks/openSUSE_Leap.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: Install python-xml dependency for zypper_repository - shell: zypper install -y python-xml - args: - warn: false - -- name: Add upstream repo(s) - zypper_repository: - repo: "{{ obs_repofile_url }}" - state: present - disable_gpg_check: true # auto_import_keys is broken - with_items: "{{ repos }}" - -- name: Refresh all repositories - zypper_repository: - repo: '*' - runrefresh: true - failed_when: false diff --git a/distro/tests/ansible-roles/obs_repos/tasks/openSUSE_Tumbleweed.yaml b/distro/tests/ansible-roles/obs_repos/tasks/openSUSE_Tumbleweed.yaml deleted file mode 100644 index c06301433..000000000 --- a/distro/tests/ansible-roles/obs_repos/tasks/openSUSE_Tumbleweed.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- name: Add upstream repo(s) - zypper_repository: - repo: "{{ obs_repofile_url }}" - state: present - disable_gpg_check: true # auto_import_keys is broken - with_items: "{{ repos }}" - -- name: Refresh all repositories - zypper_repository: - repo: '*' - runrefresh: true diff --git a/distro/tests/ansible-roles/obs_repos/vars/CentOS.yaml b/distro/tests/ansible-roles/obs_repos/vars/CentOS.yaml deleted file mode 100644 index 22b4795bb..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/CentOS.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_repo_version: "{{ obs_distro }}_{{ ansible_distribution_major_version }}_EPEL" diff --git a/distro/tests/ansible-roles/obs_repos/vars/Debian_10.yaml b/distro/tests/ansible-roles/obs_repos/vars/Debian_10.yaml deleted file mode 100644 index 5db857e6b..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/Debian_10.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_repo_version: "{{ obs_distro }}_{{ ansible_distribution_major_version }}" diff --git a/distro/tests/ansible-roles/obs_repos/vars/Debian_11.yaml b/distro/tests/ansible-roles/obs_repos/vars/Debian_11.yaml deleted file mode 120000 index 4babdf4e3..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/Debian_11.yaml +++ /dev/null @@ -1 +0,0 @@ -Debian_10.yaml \ No newline at end of file diff --git a/distro/tests/ansible-roles/obs_repos/vars/Debian_9.yaml b/distro/tests/ansible-roles/obs_repos/vars/Debian_9.yaml deleted file mode 100644 index 21cce2507..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/Debian_9.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_repo_version: "{{ obs_distro }}_{{ ansible_distribution_major_version }}.0" diff --git a/distro/tests/ansible-roles/obs_repos/vars/Fedora.yaml b/distro/tests/ansible-roles/obs_repos/vars/Fedora.yaml deleted file mode 100644 index 5db857e6b..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/Fedora.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_repo_version: "{{ obs_distro }}_{{ ansible_distribution_major_version }}" diff --git a/distro/tests/ansible-roles/obs_repos/vars/Rocky.yaml b/distro/tests/ansible-roles/obs_repos/vars/Rocky.yaml deleted file mode 100644 index b8b527446..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/Rocky.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_repo_version: "CentOS_{{ ansible_distribution_major_version }}_EPEL" diff --git a/distro/tests/ansible-roles/obs_repos/vars/Ubuntu.yaml b/distro/tests/ansible-roles/obs_repos/vars/Ubuntu.yaml deleted file mode 100644 index 4e5cd2c90..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/Ubuntu.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_repo_version: "x{{ obs_distro }}_{{ ansible_distribution_version }}" diff --git a/distro/tests/ansible-roles/obs_repos/vars/openSUSE_Leap.yaml b/distro/tests/ansible-roles/obs_repos/vars/openSUSE_Leap.yaml deleted file mode 100644 index 7dbd7d8ac..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/openSUSE_Leap.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_repo_version: "{{ obs_distro }}_{{ ansible_distribution_version }}" diff --git a/distro/tests/ansible-roles/obs_repos/vars/openSUSE_Tumbleweed.yaml b/distro/tests/ansible-roles/obs_repos/vars/openSUSE_Tumbleweed.yaml deleted file mode 100644 index d875db72c..000000000 --- a/distro/tests/ansible-roles/obs_repos/vars/openSUSE_Tumbleweed.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -obs_repo_version: "{{ obs_distro }}" diff --git a/distro/tests/centos7/Vagrantfile b/distro/tests/centos7/Vagrantfile deleted file mode 100644 index 2358be32d..000000000 --- a/distro/tests/centos7/Vagrantfile +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "centos/7" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "centos7_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - ansible.extra_vars = { - ansible_python_interpreter: "/usr/bin/python2" - } - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/centos7/ansible.cfg b/distro/tests/centos7/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/centos7/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/debian10/Vagrantfile b/distro/tests/debian10/Vagrantfile deleted file mode 100644 index 7f51f1a7d..000000000 --- a/distro/tests/debian10/Vagrantfile +++ /dev/null @@ -1,28 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - # debian/buster64 requires manual intervention for apt update as of 2019-07-18 - config.vm.box = "generic/debian10" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "debian10_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/debian10/ansible.cfg b/distro/tests/debian10/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/debian10/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/debian11/Vagrantfile b/distro/tests/debian11/Vagrantfile deleted file mode 100644 index 1ca31a635..000000000 --- a/distro/tests/debian11/Vagrantfile +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "generic/debian11" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "debian11_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/debian11/ansible.cfg b/distro/tests/debian11/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/debian11/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/debian9/Vagrantfile b/distro/tests/debian9/Vagrantfile deleted file mode 100644 index c4b6a2434..000000000 --- a/distro/tests/debian9/Vagrantfile +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "debian/stretch64" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "debian9_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/debian9/ansible.cfg b/distro/tests/debian9/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/debian9/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/fedora35/Vagrantfile b/distro/tests/fedora35/Vagrantfile deleted file mode 100644 index 1fe18eccf..000000000 --- a/distro/tests/fedora35/Vagrantfile +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "fedora/35-cloud-base" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "fedora35_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - ansible.extra_vars = { - ansible_python_interpreter: "/usr/bin/python3", - } - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/fedora35/ansible.cfg b/distro/tests/fedora35/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/fedora35/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/fedora36/Vagrantfile b/distro/tests/fedora36/Vagrantfile deleted file mode 100644 index 56659e59a..000000000 --- a/distro/tests/fedora36/Vagrantfile +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "fedora/36-cloud-base" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "fedora36_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - ansible.extra_vars = { - ansible_python_interpreter: "/usr/bin/python3", - } - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/fedora36/ansible.cfg b/distro/tests/fedora36/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/fedora36/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/knot-resolver-pkgtest.yaml b/distro/tests/knot-resolver-pkgtest.yaml deleted file mode 100644 index 83545bbc8..000000000 --- a/distro/tests/knot-resolver-pkgtest.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# SPDX-License-Identifier: GPL-3.0-or-later -- hosts: all - - remote_user: root - become: true - - vars_files: - - repos.yaml - - roles: - - obs_repos - - knot_resolver diff --git a/distro/tests/leap15/Vagrantfile b/distro/tests/leap15/Vagrantfile deleted file mode 100644 index a2f76468f..000000000 --- a/distro/tests/leap15/Vagrantfile +++ /dev/null @@ -1,29 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "generic/opensuse15" - - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "leap15_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - libvirt.disk_bus = "sata" - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/leap15/ansible.cfg b/distro/tests/leap15/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/leap15/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/repos.yaml b/distro/tests/repos.yaml deleted file mode 100644 index bd4bedd51..000000000 --- a/distro/tests/repos.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -repos: - - knot-resolver-latest - - knot-resolver-devel diff --git a/distro/tests/rocky8/Vagrantfile b/distro/tests/rocky8/Vagrantfile deleted file mode 100644 index f82c194fb..000000000 --- a/distro/tests/rocky8/Vagrantfile +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "generic/rocky8" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "rocky8_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - ansible.extra_vars = { - ansible_python_interpreter: "/usr/libexec/platform-python" - } - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/rocky8/ansible.cfg b/distro/tests/rocky8/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/rocky8/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/test-distro.sh b/distro/tests/test-distro.sh deleted file mode 100755 index 55b75d061..000000000 --- a/distro/tests/test-distro.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -x -# SPDX-License-Identifier: GPL-3.0-or-later - -# ./test-distro.sh {obs_repo} {distro} -# Example usage: ./test-distro.sh knot-resolver-devel debian9 - -pkgtestdir="$(dirname ${0})" -repofile="$pkgtestdir/repos.yaml" - -distro=$2 -repo=$1 - -# Select repos -echo -e "repos:\n - $repo" > $repofile -if [ "$repo" == "knot-resolver-devel" ]; then - # get Knot DNS from knot-resolver-latest - echo -e ' - knot-resolver-latest' >> $repofile -fi - -pushd "$pkgtestdir/$distro" -vagrant destroy -f &>/dev/null -vagrant up -ret=$? -vagrant destroy -f &>/dev/null -popd -exit $ret diff --git a/distro/tests/ubuntu1804/Vagrantfile b/distro/tests/ubuntu1804/Vagrantfile deleted file mode 100644 index 5c538950a..000000000 --- a/distro/tests/ubuntu1804/Vagrantfile +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "generic/ubuntu1804" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "ubuntu1804_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - ansible.extra_vars = { - ansible_python_interpreter: "/usr/bin/python3" - } - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/ubuntu1804/ansible.cfg b/distro/tests/ubuntu1804/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/ubuntu1804/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/ubuntu2004/Vagrantfile b/distro/tests/ubuntu2004/Vagrantfile deleted file mode 100644 index 3d5c40a51..000000000 --- a/distro/tests/ubuntu2004/Vagrantfile +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "generic/ubuntu2004" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "ubuntu2004_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - ansible.extra_vars = { - ansible_python_interpreter: "/usr/bin/python3" - } - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/ubuntu2004/ansible.cfg b/distro/tests/ubuntu2004/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/ubuntu2004/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/distro/tests/ubuntu2204/Vagrantfile b/distro/tests/ubuntu2204/Vagrantfile deleted file mode 100644 index e2b97507a..000000000 --- a/distro/tests/ubuntu2204/Vagrantfile +++ /dev/null @@ -1,30 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later -# -*- mode: ruby -*- -# vi: set ft=ruby : -# - -Vagrant.configure(2) do |config| - - config.vm.box = "generic/ubuntu2204" - config.vm.synced_folder ".", "/vagrant", disabled: true - - config.vm.define "ubuntu2204_knot-resolver" do |machine| - machine.vm.provision "ansible" do |ansible| - ansible.playbook = "../knot-resolver-pkgtest.yaml" - ansible.extra_vars = { - ansible_python_interpreter: "/usr/bin/python3" - } - end - end - - config.vm.provider :libvirt do |libvirt| - libvirt.cpus = 1 - libvirt.memory = 1024 - end - - config.vm.provider :virtualbox do |vbox| - vbox.cpus = 1 - vbox.memory = 1024 - end - -end diff --git a/distro/tests/ubuntu2204/ansible.cfg b/distro/tests/ubuntu2204/ansible.cfg deleted file mode 120000 index f80698e88..000000000 --- a/distro/tests/ubuntu2204/ansible.cfg +++ /dev/null @@ -1 +0,0 @@ -../.ansible.cfg \ No newline at end of file diff --git a/tests/packaging/README.rst b/tests/packaging/README.rst deleted file mode 100644 index 997f6667c..000000000 --- a/tests/packaging/README.rst +++ /dev/null @@ -1,87 +0,0 @@ -.. SPDX-License-Identifier: GPL-3.0-or-later - -Packaging tests -=============== - -Packaging tests used pytest, docker and each directory with subdirectory *.packaging* -is called as *component*. - -Run tests for all components: - -.. code-block:: - - pytest -r fEsxX tests/packaging - -List all components: - -.. code-block:: - - pytest tests/packaging --collect-only - -Run test for specific component (*doc/.packaging*): - -.. code-block:: - - pytest -r fEsxX tests/packaging -k test_collect[debian_10-doc/.packaging] - -.. note:: - - For debug add argument :code:`-s`. - -daemon/.packaging component ---------------------------- - -This is special component that is used by all others components. -For each distribution and version are created two docker images with this component. -One with building dependencies and one for running dependencies. -*Build docker image* is tagged as :code:`kr-packaging-tests--build` -and *Run docker image* is tagged as :code:`kr-packaging-tests--run`. - -Others components ------------------ - -All others components are based on *daemon/.packaging* component (docker image). -When component needs new building dependencies, new running dependencies -or some scripts that change build or run phase (see `File structure of each component`_), -new docker image is created. -*Build docker image* is tagged as :code:`kr-packaging-tests---build` -and *Run docker image* is tagged as :code:`kr-packaging-tests---run`. - -File structure of each component ------------------------------------- - -* - * - * builddeps - list of build dependencies - * rundeps - list of runtime dependencies - * pre-build.sh - script called before build phase - * post-build.sh - script called after build phase - * pre-run.sh - script called before run phase - * post-run.sh - script called after run phase - * install.sh and build.sh - scripts to rewrite standard commands for building and installing knot-resolvers - * pre-test.sh - script called immediately before testing -* test.config or test.sh - kresd config test or shell script (one of them must exists) - -Commands order to create docker image -------------------------------------- - -For *build docker image*: - -#. run pre-build.sh -#. install packages specified in the file *builddeps* -#. run build.sh -#. run install.sh -#. run post-build.sh - -For *run docker image*: - -#. run pre-run.sh -#. install packages specified in the file *rundeps* -#. run pre-test.sh -#. run test (:code:`kresd -c test.config` or :code:`test.sh`) -#. run post-build.sh - - -.. note:: - - knot-resolver builded in *build docker image* is automatically moved to *run docker image*. diff --git a/tests/packaging/conftest.py b/tests/packaging/conftest.py deleted file mode 100644 index 7279c15cb..000000000 --- a/tests/packaging/conftest.py +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -import pytest -import os - - -def pytest_configure(): - pytest.KR_PYTESTS_DIR = os.path.dirname(os.path.realpath(__file__)) - pytest.KR_ROOT_DIR = os.path.join(pytest.KR_PYTESTS_DIR, "..", "..") - pytest.KR_PREFIX = "kr-packaging-tests-" diff --git a/tests/packaging/test_packaging.py b/tests/packaging/test_packaging.py deleted file mode 100644 index 1a9bc4139..000000000 --- a/tests/packaging/test_packaging.py +++ /dev/null @@ -1,494 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -import os -import pytest -import docker -import logging -from pathlib import Path -from abc import ABC, abstractmethod - - -logging.basicConfig(level=logging.INFO) -logger = logging.getLogger(__name__) -logger.setLevel(logging.DEBUG) -client = docker.from_env() - - -class DockerCmdError(Exception): - """ Raised when shell command in Docker container failed """ - pass - - -class ContainerHandler(): - def __init__(self, image): - self.img_id = image - self.container = None - - def run(self): - self.container = client.containers.run(self.img_id, network_mode='host', - tty=True, detach=True) - logger.info('Run container ID={}'.format(self.container)) - - def stop(self): - self.container.kill() - - def exec_cmd(self, cmd, workdir): - # workaround: When exec_run is called in GitLab CI/CD workdir argument doesn't work. - inter_cmd = '' - if workdir is not None: - inter_cmd = 'cd {}; '.format(workdir) - - rcode, out = self.container.exec_run('/bin/sh -c \'' + inter_cmd + cmd + '\'') - if rcode != 0: - raise DockerCmdError(rcode, out) - - def getFiles(self, output, path): - strm, stat = self.container.get_archive(path) - with open(output, 'wb') as ofile: - for data in strm: - ofile.write(data) - - -class DockerImages(ABC): - def __init__(self, version): - self.version = version - self.module = None - self.distro = None - self.build_id = None - self.run_id = None - - @abstractmethod - def cmd_pkgs_install(self): - raise NotImplementedError - - @abstractmethod - def cmd_kresd_install(self): - raise NotImplementedError - - @abstractmethod - def cmd_kresd_build(self): - raise NotImplementedError - - def readDependencies(self, deps_file): - """Read dependencies from file""" - listf = None - try: - with open(deps_file, 'r') as f: - listf = f.read().splitlines() - except FileNotFoundError: - pass - - return listf - - def __genDockerFile(self, path, from_image=None): - """Generate Dockerfile for build image""" - if self.module is None: - raise AttributeError - - if from_image is None: - if os.path.isfile(os.path.join(self.module, self.distro, 'docker-image-name')): - with open(os.path.join(self.module, self.distro, 'docker-image-name')) as f: - from_image = f.read() - else: - from_image = '{0}:{1}'.format(self.distro, self.version) - - distro_dir = os.path.join(self.module, self.distro, self.version) - - dockerf = open(os.path.join(path, 'Dockerfile-build'), 'w') - - dockerf.write('FROM {}\n'.format(from_image)) - dockerf.write('WORKDIR /root/kresd\n') - if self.module == 'daemon/.packaging': - dockerf.write('COPY . /root/kresd\n') - # when this file doesn't exists, tzdata needs user interaction - dockerf.write('RUN if [ ! -f /etc/localtime ];' + - 'then ln -fs /usr/share/zoneinfo/Europe/Prague /etc/localtime; fi\n') - if os.path.isfile(os.path.join(distro_dir, 'pre-build.sh')): - dockerf.write('RUN {}\n'.format(os.path.join(distro_dir, 'pre-build.sh'))) - if os.path.isfile(os.path.join(distro_dir, 'builddeps')): - dockerf.write('RUN {0} {1}\n'.format(self.cmd_pkgs_install(), - ' '.join(self.readDependencies(os.path.join(distro_dir, 'builddeps'))))) - if os.path.isfile(os.path.join(distro_dir, 'build.sh')): - dockerf.write('RUN {}\n'.format(os.path.join(distro_dir, 'build.sh'))) - else: - dockerf.write('RUN {}\n'.format(self.cmd_kresd_build())) - if os.path.isfile(os.path.join(distro_dir, 'install.sh')): - dockerf.write('RUN {}\n'.format(os.path.join(distro_dir, 'install.sh'))) - else: - dockerf.write('RUN {}\n'.format(self.cmd_kresd_install())) - if os.path.isfile(os.path.join(distro_dir, 'post-build.sh')): - dockerf.write('RUN {}\n'.format(os.path.join(distro_dir, 'post-build.sh'))) - - dockerf.close() - - def __genDockerFile_run(self, path, build_id, from_image=None): - """Generate Dockerfile for run image""" - if self.module is None: - raise AttributeError - - if from_image is None: - if os.path.isfile(os.path.join(self.module, self.distro, 'docker-image-name')): - with open(os.path.join(self.module, self.distro, 'docker-image-name')) as f: - from_image = f.read() - else: - from_image = '{0}:{1}'.format(self.distro, self.version) - - distro_dir = os.path.join(self.module, self.distro, self.version) - - dockerf = open(os.path.join(path, 'Dockerfile-run'), 'w') - - dockerf.write('FROM {}\n'.format(from_image)) - dockerf.write('COPY --from={} /root/kresd /root/kresd\n'.format(build_id)) - dockerf.write('WORKDIR /root/kresd\n') - if os.path.isfile(os.path.join(distro_dir, 'pre-run.sh')): - dockerf.write('RUN {}\n'.format(os.path.join(distro_dir, 'pre-run.sh'))) - if os.path.isfile(os.path.join(distro_dir, 'rundeps')): - dockerf.write('RUN {0} {1}\n'.format(self.cmd_pkgs_install(), - ' '.join(self.readDependencies(os.path.join(distro_dir, 'rundeps'))))) - if os.path.isfile(os.path.join(distro_dir, 'pre-test.sh')): - dockerf.write('RUN {}\n'.format(os.path.join(distro_dir, 'pre-test.sh'))) - - dockerf.close() - - def build_printing_errors(self, path, dockerfile, network_mode, tag, rm): - try: - return client.images.build(path=path, dockerfile=dockerfile, - network_mode=network_mode, tag=tag, rm=rm) - except docker.errors.BuildError as e: - iterable = iter(e.build_log) - while True: - try: - item = next(iterable) - if item['stream']: - for l in item['stream'].splitlines(): - stripped = l.strip() - if stripped: - logging.error(stripped) - except StopIteration: - break - raise e - - def build(self, tmpdir, tag="", from_image=None): - self.__genDockerFile(tmpdir, from_image=from_image) - - logger.debug('tmpdir={}'.format(tmpdir)) - logger.debug('datadir={}'.format(pytest.KR_ROOT_DIR)) - logger.debug('tag={}'.format(tag)) - image = self.build_printing_errors(path=str(pytest.KR_ROOT_DIR), - dockerfile=os.path.join(tmpdir, 'Dockerfile-build'), - network_mode='host', tag=tag, rm=True) - logger.info('"Build image" ID={} created'.format(image[0].short_id)) - self.build_id = image[0].short_id - return self.build_id - - def build_run(self, tmpdir, build_id, from_image=None, tag=""): - self.__genDockerFile_run(tmpdir, build_id, from_image=from_image) - - logger.debug('tmpdir={}'.format(tmpdir)) - logger.debug('datadir={}'.format(tmpdir)) - logger.debug('tag={}'.format(tag)) - image = self.build_printing_errors(path=str(tmpdir), - dockerfile=os.path.join(tmpdir, 'Dockerfile-run'), - network_mode='host', tag=tag, rm=True) - logger.info('"Run image" ID={} created'.format(image[0].short_id)) - self.run_id = image[0].short_id - return self.run_id - - -class DebianImage(DockerImages): - def __init__(self, version): - super().__init__(version) - self.distro = 'debian' - - def cmd_pkgs_install(self): - return 'apt-get install -y ' - - def cmd_kresd_install(self): - return 'ninja -C build_packaging install >/dev/null' - - def cmd_kresd_build(self): - return """\\ - [ -d /root/kresd/build_packaging ] && rm -rf /root/kresd/build_packaging/; \\ - CFLAGS=\"$CFLAGS -Wall -pedantic -fno-omit-frame-pointer\"; \\ - LDFLAGS=\"$LDFLAGS -Wl,--as-needed\"; \\ - meson build_packaging \\ - --buildtype=plain \\ - --prefix=/root/kresd/install_packaging \\ - --libdir=lib \\ - --default-library=static \\ - -Dsystemd_files=enabled \\ - -Dclient=enabled \\ - -Dkeyfile_default=/usr/share/dns/root.key \\ - -Droot_hints=/usr/share/dns/root.hints \\ - -Dinstall_kresd_conf=enabled \\ - -Dunit_tests=enabled \\ - -Dc_args=\"${CFLAGS}\" \\ - -Dc_link_args=\"${LDFLAGS}\"; \\ - ninja -C build_packaging - """ - - -class UbuntuImage(DebianImage): - def __init__(self, version): - super().__init__(version) - self.distro = 'ubuntu' - - -class CentosImage(DockerImages): - def __init__(self, version): - super().__init__(version) - self.distro = 'centos' - - def cmd_pkgs_install(self): - return "yum install -y " - - def cmd_kresd_install(self): - return 'ninja-build -C build_packaging install' - - def cmd_kresd_build(self): - return """\\ - [ -d /root/kresd/build_packaging ] && rm -rf /root/kresd/build_packaging/; \\ - CFLAGS=\"$CFLAGS -Wall -pedantic -fno-omit-frame-pointer\"; \\ - LDFLAGS=\"$LDFLAGS -Wl,--as-needed\"; \\ - meson build_packaging \\ - --buildtype=plain \\ - --prefix=/root/kresd/install_packaging \\ - --sbindir=sbin \\ - --libdir=lib \\ - --includedir=include \\ - --sysconfdir=etc \\ - --default-library=static \\ - -Dsystemd_files=enabled \\ - -Dclient=enabled \\ - -Dunit_tests=enabled \\ - -Dmanaged_ta=enabled \\ - -Dkeyfile_default=/root/kresd/install_packaging/var/lib/knot-resolver/root.keys \\ - -Dinstall_root_keys=enabled \\ - -Dinstall_kresd_conf=enabled; \\ - ninja-build -C build_packaging - """ - - -class FedoraImage(DockerImages): - def __init__(self, version): - super().__init__(version) - self.distro = 'fedora' - - def cmd_pkgs_install(self): - return "dnf install -y " - - def cmd_kresd_install(self): - return 'ninja -C build_packaging install >/dev/null' - - def cmd_kresd_build(self): - return """\\ - [ -d /root/kresd/build_packaging ] && rm -rf /root/kresd/build_packaging/; \\ - CFLAGS=\"$CFLAGS -Wall -pedantic -fno-omit-frame-pointer\"; \\ - LDFLAGS=\"$LDFLAGS -Wl,--as-needed\"; \\ - meson build_packaging \\ - --buildtype=plain \\ - --prefix=/root/kresd/install_packaging \\ - --sbindir=sbin \\ - --libdir=lib \\ - --includedir=include \\ - --sysconfdir=etc \\ - --default-library=static \\ - -Dsystemd_files=enabled \\ - -Dclient=enabled \\ - -Dunit_tests=enabled \\ - -Dmanaged_ta=enabled \\ - -Dkeyfile_default=/root/kresd/install_packaging/var/lib/knot-resolver/root.keys \\ - -Dinstall_root_keys=enabled \\ - -Dinstall_kresd_conf=enabled; \\ - ninja -C build_packaging - """ - - -class LeapImage(FedoraImage): - def __init__(self, version): - super().__init__(version) - self.distro = 'leap' - - def cmd_pkgs_install(self): - return "zypper install -y " - - -def create_distro_image(name, version): - img = None - - if (name == 'debian'): - img = DebianImage(version) - elif (name == 'ubuntu'): - img = UbuntuImage(version) - elif (name == 'centos'): - img = CentosImage(version) - elif (name == 'fedora'): - img = FedoraImage(version) - elif (name == 'leap'): - img = LeapImage(version) - else: - img = None - - return img - - -def list_dirs(path, exclude=None): - """return all 'packaging' directories with full path""" - filtered_dirs = [] - - for rootpath, dirs, _ in os.walk(path): - - if (os.path.basename(rootpath) == '.packaging'): - fdir = os.path.relpath(rootpath, path) - if exclude is not None: - if fdir not in exclude: - filtered_dirs.append(fdir) - else: - filtered_dirs.append(fdir) - - return filtered_dirs - - -def list_tests_dirs(): - """return all 'packaging' directories""" - return list_dirs(pytest.KR_ROOT_DIR) - - -def list_distro_vers(distro_root): - """ - return list of { 'name': distro_name, 'version': distro_version) - pairs found in distro_root - """ - # transform list of paths like TOP/debian/10 into (debian, 10) - dist_ver = [{'name': p.parts[-2], 'version': p.parts[-1]} for p - in Path(distro_root).glob('*/*') if p.is_dir()] - - return list(dist_ver) - - -MODULES = list_tests_dirs() -DISTROS = list_distro_vers(os.path.join(pytest.KR_ROOT_DIR, 'daemon/.packaging')) -DISTROS_NAMES = ['{0}_{1}'.format(distro['name'], distro['version']) for distro in DISTROS] - - -@pytest.fixture(scope='session', params=DISTROS, ids=DISTROS_NAMES) -def buildenv(request, tmpdir_factory): - distro = request.param - - logger.debug('Creating main images for "{0} {1}"'.format(distro['name'], distro['version'])) - img = create_distro_image(distro['name'], distro['version']) - if img is None: - logger.warning('Unknown distro {}'.format(distro['name'])) - else: - img.module = 'daemon/.packaging' - tmpdir = tmpdir_factory.mktemp(distro['name']+distro['version']) - img.build(tmpdir, tag=pytest.KR_PREFIX+distro['name']+distro['version']+'-build') - img.build_run(tmpdir, img.build_id, - tag=pytest.KR_PREFIX+distro['name']+distro['version']+'-run') - - yield img -# client.images.remove(img.run_id) -# client.images.remove(img.build_id) - - -@pytest.mark.parametrize('module', MODULES) -def test_collect(module, buildenv, tmp_path): - logger.info(' ### Run test {} ###'.format(module)) - - if buildenv is None: - logger.error('Distro "{0} {1}" isn\'t implemented'.format(buildenv.distro, - buildenv.version)) - assert False - - rcode = None - buildmod = None - module_dir = os.path.join(pytest.KR_ROOT_DIR, module) - distro_dir = os.path.join(module_dir, buildenv.distro, buildenv.version) - - if os.path.isfile(os.path.join(distro_dir, 'NOTSUPPORTED')): - pytest.skip('Unsupported linux distribution ({0} {1}:{2})'.format(buildenv.distro, buildenv.version, module)) - - try: - if module == 'daemon/.packaging': - # use main "run image" without changes - logging.info('Use main "run image"') - ch = ContainerHandler(buildenv.run_id) - ch.run() - elif buildenv is not None: - if os.path.isfile(os.path.join(distro_dir, 'pre-build.sh')) \ - or os.path.isfile(os.path.join(distro_dir, 'builddeps')): - # create module specific "build image" - logger.info('Create new "build image"') - buildmod = create_distro_image(buildenv.distro, buildenv.version) - buildmod.module = module - buildmod.build(tmp_path, from_image=buildenv.build_id, - tag=pytest.KR_PREFIX+buildmod.distro+buildmod.version+'-' + - module.replace('/.packaging', '')+'-build') - - if buildmod is not None: - # new build image was made, create new module specific "run image" - logger.info('Create module specific "run image" from Dockerfile') - buildmod.build_run(tmp_path, buildmod.build_id, - tag=pytest.KR_PREFIX+buildmod.distro+buildmod.version+'-' + - module.replace('/.packaging', '')+'-run', from_image=buildenv.run_id) - ch = ContainerHandler(buildmod.run_id) - ch.run() - elif os.path.isfile(os.path.join(distro_dir, 'pre-run.sh')) \ - or os.path.isfile(os.path.join(distro_dir, 'rundeps')): - # use main "run image" and apply module specific changes - logger.info('Apply module specific changes to "run image"') - buildmod = buildenv - ch = ContainerHandler(buildmod.run_id) - ch.run() - - if os.path.isfile(os.path.join(distro_dir, 'pre-run.sh')): - ch.exec_cmd(os.path.join(module, buildenv.distro, buildenv.version, - 'pre-run.sh'), '/root/kresd/') - - if os.path.isfile(os.path.join(distro_dir, 'rundeps')): - logger.debug(buildmod.cmd_pkgs_install() + ' '.join( - buildmod.readDependencies(os.path.join(distro_dir, 'rundeps')))) - ch.exec_cmd(buildmod.cmd_pkgs_install() + ' '.join( - buildmod.readDependencies(os.path.join(distro_dir, 'rundeps'))), - '/root/kresd/') - - if os.path.isfile(os.path.join(distro_dir, 'pre-test.sh')): - ch.exec_cmd(os.path.join(module, buildenv.distro, buildenv.version, - 'pre-test.sh'), '/root/kresd/') - else: - # use main "run image" without changes - logging.info('Use main "run image"') - ch = ContainerHandler(buildenv.run_id) - ch.run() - - # run test - if os.path.isfile(os.path.join(module_dir, 'test.config')): - ch.exec_cmd('/root/kresd/install_packaging/sbin/kresd -n -c ' + os.path.join('..', - module, 'test.config'), '/root/kresd/install_packaging/') - elif os.path.isfile(os.path.join(module_dir, 'test.sh')): - ch.exec_cmd(os.path.join('..', module, 'test.sh'), - '/root/kresd/install_packaging/') - else: - ch.stop() - ch.container.remove() - logger.error('Test file (test.config or test.sh) not found') - assert False - - rcode = 0 - - if os.path.isfile(os.path.join(distro_dir, 'post-run.sh')): - ch.exec_cmd(os.path.join(module, buildenv.distro, buildenv.version, 'post-run.sh'), - '/root/kresd/') - - except DockerCmdError as err: - rcode, out = err.args - logger.debug('rcode: {}'.format(rcode)) - logger.error(out.decode('utf-8')) - finally: - ch.stop() - ch.container.remove() - if buildmod is not None and buildmod is not buildenv: - client.images.remove(buildmod.run_id) - client.images.remove(buildmod.build_id) - - assert(rcode == 0)