From 41f2fc7432bf5ed8f6a18927af1fa25afbe0d5f7 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Tue, 27 Feb 2024 19:27:07 +0100 Subject: [PATCH] Add EL repos to supported by the role This patch add support and molecule testing for CentOS 9 Stream in addition to already supported Debian/Ubuntu versions. Change-Id: Ice095d479bcd8cd9592609329514efe565db6353 --- .zuul.yaml | 8 ++++ files/gpg/RPM-GPG-KEY-FRR | 85 +++++++++++++++++++++++++++++++++++++ molecule/default/verify.yml | 2 +- tasks/frr_install_dnf.yml | 39 +++++++++++++++++ tox.ini | 9 ++++ vars/redhat.yml | 33 ++++++++++++++ 6 files changed, 175 insertions(+), 1 deletion(-) create mode 100644 files/gpg/RPM-GPG-KEY-FRR create mode 100644 tasks/frr_install_dnf.yml create mode 100644 vars/redhat.yml diff --git a/.zuul.yaml b/.zuul.yaml index 5af297b..945ad5e 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -40,6 +40,12 @@ vars: tox_envlist: molecule-jammy +- job: + name: tox-molecule-stream9 + parent: tox-molecule + vars: + tox_envlist: molecule-stream9 + - project: check: jobs: @@ -48,6 +54,7 @@ - tox-molecule-buster - tox-molecule-bookworm - tox-molecule-jammy + - tox-molecule-stream9 gate: jobs: - ffrouting-deploy @@ -55,3 +62,4 @@ - tox-molecule-buster - tox-molecule-bookworm - tox-molecule-jammy + - tox-molecule-stream9 diff --git a/files/gpg/RPM-GPG-KEY-FRR b/files/gpg/RPM-GPG-KEY-FRR new file mode 100644 index 0000000..a414977 --- /dev/null +++ b/files/gpg/RPM-GPG-KEY-FRR @@ -0,0 +1,85 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBFpYNOkBEADFX24n0TD3myTzqnJcKsV5TT65WfTIdC44AS/jA2aGTdRV/uJK +0pb/KZdelO/+pkNeo4IuxBF3uOUYGLOB1JROJtaNT2Bg0EWwuT4V6mrBrFCGEuUW +6IWN26Sj5f7jynoTMClfZqBdO449kElwumqHfjUNUdsOaaH19euDg11tl7ppJx9u +3gEhzkmaYj0OmGU5uu938VdnFnwybD0BIIqJBdqPyDwQhc/eACnGmI/oOqbZqsnP +ntuNh69YYQ3pVzKQPs7hpCwMopMyW5beB06D2cS7k8V3ceviL+y1rvnQCh5hjARq +QKg8wjfahd2EHLPUwgKyVXIgxq9/bPwlJ60BXehVAgbv71Te5WM1bcZHq/ye/Wd6 +8kpSU3Q1JA+qSgyc2sBh7ZB2vA5IGFfrCgZZ/CCG/yhKaNbUwu//OAV8zUfX42Me +yGgEbay8wDUrK1iTwC3xExGP3ESC1tbflnB7mLdjMm1bHJx2xdoM0wGSeWEnFnfv +AYizVaXoE9oom8H/4iYIS+fO8Ted6oiU12W30BiajwBMy9tB4tUlxtJaMU/IrFWg +JRcmUp4yBylUHyMHnLUmd/gmp9hzCqwIp/gh7jL+Orh8LBf4J15o2e1xL2aVEQeY +rJt/FRxZqnLgNKbdmeBFLTaf0t31owPJ2sCYCFnme4bCMI4SdseBLPLYFwARAQAB +tFpOZXRERUYgQ0kgU3lzdGVtIChOZXRERUYgQ29udGlub3VzIEludGVncmF0aW9u +IFN5c3RlbSBTaWduYXR1cmUgS2V5KSA8Y2lzeXN0ZW1AbmV0ZGVmLm9yZz6JAjcE +EwEKACEFAlpYNOkCGwMFCwkIBwMFFQoJCAsFFgIDAQACHgECF4AACgkQ9mtakUBn +OoccYQ//YIuiCrPPdTjN1u1x2Tof/CtIx0IBFEaT7e9Dfy5OzCUzOmmeKZzuFDk+ +ZXBmOwazVUvy9PmXpzUqC5saNTRD5bWM//c45JAFwHo4ZRtaR/C0Gtrgv2yp0zX6 +u/M5Rn+6TyMbxkiKi0m/aZ/m08dylkNjQJmi2kuaR/c0sJHxCxMyWsE2NMG9TLXN +oqMAHdRcrrMZDQI21ze3G6+emS/TU2nvBk6IoT7rf3JJrNzt8yOASMnpL6xoelBN +Zs+w0MWa7obhXUJItretmNVnATfmUOxp+0zA7ultrIGYMhN6788hTqO9pVKI3ulO +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 +=jGX0 +-----END PGP PUBLIC KEY BLOCK----- diff --git a/molecule/default/verify.yml b/molecule/default/verify.yml index 1ecf320..9730946 100644 --- a/molecule/default/verify.yml +++ b/molecule/default/verify.yml @@ -40,7 +40,7 @@ - name: Fail if frr is down fail: msg: frr is not up - when: ansible_facts.services['frr'].state != 'running' + when: ansible_facts.services['frr.service'].state != 'running' - name: Get summary become: true diff --git a/tasks/frr_install_dnf.yml b/tasks/frr_install_dnf.yml new file mode 100644 index 0000000..895c574 --- /dev/null +++ b/tasks/frr_install_dnf.yml @@ -0,0 +1,39 @@ +--- +# Copyright 2024, Cleura AB. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: If a keyfile is provided, copy the gpg keyfile to the key location + copy: + src: "gpg/{{ key.key | basename }}" + dest: "{{ key.key }}" + mode: '0644' + with_items: "{{ frr_repos_keys }}" + loop_control: + loop_var: key + register: _dnf_apt_keys + until: _dnf_apt_keys is success + retries: 5 + delay: 2 + +- name: Configure repositories + yum_repository: + name: "{{ repo.name }}" + file: "{{ repo.filename }}" + description: "{{ repo.description }}" + baseurl: "{{ repo.baseurl }}" + gpgcheck: "{{ repo.gpgcheck | default('no') }}" + gpgkey: "{{ repo.gpgkey | default(omit) }}" + with_items: "{{ frr_repos }}" + loop_control: + loop_var: repo diff --git a/tox.ini b/tox.ini index ec5078f..2acfa0d 100644 --- a/tox.ini +++ b/tox.ini @@ -80,3 +80,12 @@ commands = setenv = {[molecule]setenv} docker_image_tag=ubuntu-systemd:jammy + +[testenv:molecule-stream9] +deps = + {[molecule]deps} +commands = + {[molecule]commands} +setenv = + {[molecule]setenv} + docker_image_tag=centos-systemd:stream9 diff --git a/vars/redhat.yml b/vars/redhat.yml new file mode 100644 index 0000000..0231fa6 --- /dev/null +++ b/vars/redhat.yml @@ -0,0 +1,33 @@ +--- +# Copyright 2024, Cleura AB. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +frr_repos_keys: + - key: /etc/pki/rpm-gpg/RPM-GPG-KEY-FRR + +frr_repos: + - name: frr + filename: frr-stable + description: "FRRouting Packages for Enterprise Linux $releasever - $basearch" + baseurl: https://rpm.frrouting.org/repo/el$releasever/frr + gpgkey: "file://{{ frr_repos_keys | map(attribute='key') | join('file://') }}" + - name: frr-extras + filename: frr-stable + description: "FRRouting Dependencies for Enterprise Linux 9 - $basearch" + baseurl: https://rpm.frrouting.org/repo/el$releasever/extras + gpgkey: "file://{{ frr_repos_keys | map(attribute='key') | join('file://') }}" + +frr_distro_packages: + - frr + - frr-pythontools