Add support for rpm to repos.yaml
Add the ability to configure repositories in the same way as we do Debuntu ones - via repos.yaml. Removes .repo files from base - since these are not needed there anymore. gpgcheck = 1 is default in docker/base/dnf.conf Change-Id: I7df7d452c45c57c434d5b4ad15a87963e4d6d0d4 Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
exclude_paths:
|
||||
- .cache/ # implicit unless exclude_paths is defined in config
|
||||
- zuul.d/
|
||||
- kolla/template/repos.yaml
|
||||
offline: true
|
||||
parseable: true
|
||||
profile: basic
|
||||
|
@@ -54,46 +54,12 @@ COPY dnf.conf /etc/dnf/dnf.conf
|
||||
{% endblock %}
|
||||
|
||||
#### BEGIN REPO ENABLEMENT
|
||||
{% set base_yum_repo_files = [
|
||||
'docker-ce.repo',
|
||||
'grafana.repo',
|
||||
'influxdb.repo',
|
||||
'kolla_el10.repo',
|
||||
'mariadb.repo',
|
||||
'opensearch.repo',
|
||||
'proxysql.repo',
|
||||
'rabbitmq_rabbitmq-server.repo',
|
||||
'td.repo',
|
||||
] %}
|
||||
|
||||
{% set base_yum_url_packages = [
|
||||
] %}
|
||||
|
||||
{% set base_yum_repo_keys = [
|
||||
] %}
|
||||
|
||||
{% if base_arch == 'x86_64' %}
|
||||
{% set base_yum_repo_files = base_yum_repo_files + [
|
||||
'rabbitmq_rabbitmq-erlang.repo',
|
||||
] %}
|
||||
|
||||
{% elif base_arch == 'aarch64' %}
|
||||
{% set base_yum_repo_files = base_yum_repo_files + [
|
||||
'copr-rabbitmq-erlang.repo',
|
||||
] %}
|
||||
|
||||
{#
|
||||
SHA1 keys are not supported in RHEL9: https://github.com/rpm-software-management/rpm/issues/1977
|
||||
'https://packages.erlang-solutions.com/rpm/erlang_solutions.asc',
|
||||
#}
|
||||
{% set base_yum_repo_keys = base_yum_repo_keys + [
|
||||
] %}
|
||||
{% endif %}
|
||||
|
||||
{%- for repo_file in base_yum_repo_files | customizable('yum_repo_files') %}
|
||||
COPY {{ repo_file }} /etc/yum.repos.d/{{ repo_file }}
|
||||
{%- endfor %}
|
||||
|
||||
{% block base_centos_repo_overrides_post_copy %}{% endblock %}
|
||||
|
||||
# Install what is needed for en_US.UTF-8
|
||||
@@ -142,24 +108,9 @@ RUN rm -f /etc/rpm/macros.image-language-conf \
|
||||
{% set base_centos_yum_repo_packages = base_centos_yum_repo_packages + [
|
||||
'dnf-plugins-core'
|
||||
] %}
|
||||
{% set base_centos_yum_repos_to_enable = [
|
||||
] %}
|
||||
|
||||
{% set base_centos_yum_repos_to_disable = [
|
||||
'centos-ceph-squid',
|
||||
'centos-nfv-openvswitch',
|
||||
'epel',
|
||||
'influxdb',
|
||||
'opensearch-3.x',
|
||||
'opensearch-dashboards-3.x',
|
||||
] %}
|
||||
|
||||
RUN {{ macros.install_packages(base_centos_yum_repo_packages | customizable("centos_yum_repo_packages"), chain=True, clean=False) }}
|
||||
|
||||
{%- for repo in base_centos_yum_repos_to_enable | customizable('centos_yum_repos_to_enable') %} && dnf config-manager --enable {{ repo }} {% endfor -%}
|
||||
|
||||
{%- for repo in base_centos_yum_repos_to_disable | customizable('centos_yum_repos_to_disable') %} && dnf config-manager --disable {{ repo }} {% endfor -%}
|
||||
|
||||
{%- for key in base_centos_yum_repo_keys | customizable('centos_yum_repo_keys') %} && rpm --import {{ key }} {% endfor %} \
|
||||
{% block base_centos_repo_overrides_post_yum %}{% endblock -%}
|
||||
&& {{ macros.rpm_security_update(clean_package_cache) }}
|
||||
@@ -203,8 +154,7 @@ RUN dnf config-manager --save --setopt=*.metalink="https://mirrors.fedoraproject
|
||||
|
||||
# Install base packages
|
||||
{{ macros.enable_extra_repos(['epel']) }}
|
||||
{{ macros.install_packages( base_centos_packages | customizable("centos_packages") | customizable("centos_binary_packages") | customizable("centos_source_packages") ) }}
|
||||
{{ macros.disable_extra_repos(['epel']) }}
|
||||
{{ macros.install_packages(base_centos_packages | customizable("centos_packages") | customizable("centos_binary_packages") | customizable("centos_source_packages")) }}
|
||||
|
||||
{# endif for base_package_type rpm #}
|
||||
{% elif base_package_type == 'deb' %}
|
||||
|
@@ -1,11 +0,0 @@
|
||||
# NOTE(hrw): this repository contains rebuild of Erlang package from RabbitMQ team
|
||||
# from https://github.com/rabbitmq/erlang-rpm/
|
||||
# Thanks to COPR we have aarch64 packages for Rocky Linux
|
||||
|
||||
[copr-rabbitmq-erlang]
|
||||
name=openstack-kolla COPR with Erlang build for RabbitMQ
|
||||
baseurl=https://download.copr.fedorainfracloud.org/results/@openstack-kolla/rabbitmq-erlang-27/rhel-$releasever-aarch64/
|
||||
gpgcheck=1
|
||||
enabled=0
|
||||
gpgkey=https://download.copr.fedorainfracloud.org/results/@openstack-kolla/rabbitmq-erlang-27/pubkey.gpg
|
||||
repo_gpgcheck=0
|
@@ -1,6 +0,0 @@
|
||||
[docker-ce]
|
||||
name=Docker CE Stable - $basearch
|
||||
baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=https://download.docker.com/linux/centos/gpg
|
@@ -1,8 +0,0 @@
|
||||
[grafana]
|
||||
name=grafana
|
||||
baseurl=https://rpm.grafana.com
|
||||
enabled=0
|
||||
gpgcheck=1
|
||||
gpgkey=https://rpm.grafana.com/gpg.key
|
||||
sslverify=1
|
||||
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
|
@@ -1,6 +0,0 @@
|
||||
[influxdb]
|
||||
name = InfluxDB Repository - RHEL $releasever
|
||||
baseurl = https://repos.influxdata.com/stable/$basearch/main
|
||||
enabled = 0
|
||||
gpgcheck = 1
|
||||
gpgkey = https://repos.influxdata.com/influxdata-archive.key
|
@@ -1,10 +0,0 @@
|
||||
[kolla_el10]
|
||||
name=Copr repo for el10-missing owned by @openstack-kolla
|
||||
baseurl=https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/epel-10-$basearch/
|
||||
type=rpm-md
|
||||
skip_if_unavailable=True
|
||||
gpgcheck=1
|
||||
gpgkey=https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/pubkey.gpg
|
||||
repo_gpgcheck=0
|
||||
enabled=0
|
||||
enabled_metadata=1
|
@@ -1,7 +0,0 @@
|
||||
[mariadb]
|
||||
name = MariaDB Server
|
||||
baseurl = https://dlm.mariadb.com/repo/mariadb-server/10.11/yum/rhel/$releasever/$basearch
|
||||
gpgcheck = 1
|
||||
enabled = 0
|
||||
module_hotfixes = 1
|
||||
gpgkey = https://downloads.mariadb.com/MariaDB/RPM-GPG-KEY-MariaDB
|
@@ -1,19 +0,0 @@
|
||||
[opensearch-3.x]
|
||||
name=OpenSearch 3.x
|
||||
baseurl=https://artifacts.opensearch.org/releases/bundle/opensearch/3.x/yum
|
||||
enabled=0
|
||||
repo_gpgcheck=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://artifacts.opensearch.org/publickeys/opensearch-release.pgp
|
||||
autorefresh=1
|
||||
type=rpm-md
|
||||
|
||||
[opensearch-dashboards-3.x]
|
||||
name=OpenSearch Dashboards 3.x
|
||||
baseurl=https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/3.x/yum
|
||||
enabled=0
|
||||
repo_gpgcheck=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://artifacts.opensearch.org/publickeys/opensearch-release.pgp
|
||||
autorefresh=1
|
||||
type=rpm-md
|
@@ -1,7 +0,0 @@
|
||||
[proxysql]
|
||||
name = ProxySQL
|
||||
# NOTE(mnasiadka): No EL10 packages yet
|
||||
baseurl = https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/almalinux/9
|
||||
gpgkey = https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key
|
||||
gpgcheck = 1
|
||||
enabled = 0
|
@@ -1,9 +0,0 @@
|
||||
[rabbitmq_rabbitmq-erlang]
|
||||
name=rabbitmq_rabbitmq-erlang
|
||||
# Use a set of mirrors maintained by the RabbitMQ core team.
|
||||
# The mirrors have significantly higher bandwidth quotas.
|
||||
baseurl=https://yum1.rabbitmq.com/erlang/el/9/$basearch
|
||||
https://yum2.rabbitmq.com/erlang/el/9/$basearch
|
||||
gpgcheck=1
|
||||
enabled=0
|
||||
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key
|
@@ -1,9 +0,0 @@
|
||||
[rabbitmq_rabbitmq-server]
|
||||
name=rabbitmq_rabbitmq-server
|
||||
baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
gpgcheck=1
|
||||
enabled=0
|
||||
# Cloudsmith's repository key and RabbitMQ package signing key
|
||||
gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
|
@@ -1,7 +0,0 @@
|
||||
[fluent-package-lts]
|
||||
name=Fluentd Project
|
||||
# NOTE(mnasiadka): Use EL9 packages for now - 10 are not available yet
|
||||
baseurl=https://packages.treasuredata.com/lts/5/redhat/9/$basearch
|
||||
gpgcheck=1
|
||||
gpgkey=https://packages.treasuredata.com/GPG-KEY-td-agent
|
||||
enabled=0
|
@@ -10,6 +10,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from kolla.image.utils import LOG
|
||||
import os
|
||||
import typing as t
|
||||
|
||||
@@ -17,6 +18,29 @@ import yaml
|
||||
|
||||
from jinja2 import pass_context
|
||||
|
||||
APT_ARCH = " && echo 'Architectures: {arch}' \
|
||||
>>/etc/apt/sources.list.d/{repo}.sources"
|
||||
APT_REPO = "echo 'Uris: {url}' >/etc/apt/sources.list.d/{repo}.sources && \
|
||||
echo 'Components: {component}' >>/etc/apt/sources.list.d/{repo}.sources && \
|
||||
echo 'Types: deb' >>/etc/apt/sources.list.d/{repo}.sources && \
|
||||
echo 'Suites: {suite}' >>/etc/apt/sources.list.d/{repo}.sources && \
|
||||
echo 'Signed-By: /etc/kolla/apt-keys/{gpg_key}' \
|
||||
>>/etc/apt/sources.list.d/{repo}.sources"
|
||||
DNF_BASEURL = " && echo 'baseurl={baseurl}' >>/etc/yum.repos.d/{repo}.repo"
|
||||
DNF_DISABLE = "dnf config-manager --disable {name} || true"
|
||||
DNF_ENABLE = "dnf config-manager --enable {name} || true"
|
||||
DNF_GPGCHECK = " && echo 'gpgcheck={gpgcheck}' >>/etc/yum.repos.d/{repo}.repo"
|
||||
DNF_GPGKEY = " && echo 'gpgkey={gpgkey}' >>/etc/yum.repos.d/{repo}.repo"
|
||||
DNF_GPGKEY_ADD = " && echo ' {gpgkey}' >>/etc/yum.repos.d/{repo}.repo"
|
||||
DNF_METALINK = " && echo 'metalink={metalink}' >>/etc/yum.repos.d/{repo}.repo"
|
||||
DNF_MIRRORLIST = " && \
|
||||
echo 'mirrorlist={mirrorlist}' >>/etc/yum.repos.d/{repo}.repo"
|
||||
DNF_REPO = "echo '[{name}]' >/etc/yum.repos.d/{repo}.repo && \
|
||||
echo 'name={name}' >>/etc/yum.repos.d/{repo}.repo && \
|
||||
echo 'enabled=1' >>/etc/yum.repos.d/{repo}.repo"
|
||||
DNF_REPO_GPGCHECK = " && echo 'repo_gpgcheck={repo_gpgcheck}' \
|
||||
>>/etc/yum.repos.d/{repo}.repo"
|
||||
|
||||
|
||||
def debian_package_install(packages, clean_package_cache=True):
|
||||
"""Jinja utility method for building debian-based package install command.
|
||||
@@ -81,13 +105,6 @@ def handle_repos(context, reponames, mode):
|
||||
Distro/arch are not required to have all entries - we ignore missing ones.
|
||||
"""
|
||||
|
||||
if mode == 'enable':
|
||||
rpm_switch = '--enable'
|
||||
elif mode == 'disable':
|
||||
rpm_switch = '--disable'
|
||||
else:
|
||||
raise KeyError
|
||||
|
||||
if not isinstance(reponames, list):
|
||||
raise TypeError("First argument should be a list of repositories")
|
||||
|
||||
@@ -104,6 +121,7 @@ def handle_repos(context, reponames, mode):
|
||||
base_package_type = context.get('base_package_type')
|
||||
base_distro = context.get('base_distro')
|
||||
base_arch = context.get('base_arch')
|
||||
image_name = context.get('image_name')
|
||||
|
||||
commands = ''
|
||||
|
||||
@@ -113,40 +131,82 @@ def handle_repos(context, reponames, mode):
|
||||
# NOTE(hrw): Fallback to distro list
|
||||
repo_list = repo_data[base_distro]
|
||||
|
||||
for repo in reponames:
|
||||
for index, repo in enumerate(reponames):
|
||||
try:
|
||||
_repo = repo_list[repo]
|
||||
if base_package_type == 'rpm':
|
||||
commands += ' %s %s' % (rpm_switch, repo_list[repo])
|
||||
elif base_package_type == 'deb':
|
||||
if mode == 'enable':
|
||||
commands += f"""echo 'Uris: {repo_list[repo]['url']}' \
|
||||
>/etc/apt/sources.list.d/{repo}.sources \
|
||||
&& echo 'Components: {repo_list[repo]['component']}' \
|
||||
>>/etc/apt/sources.list.d/{repo}.sources \
|
||||
&& echo 'Types: deb' >>/etc/apt/sources.list.d/{repo}.sources \
|
||||
&& echo 'Suites: {repo_list[repo]['suite']}' \
|
||||
>>/etc/apt/sources.list.d/{repo}.sources \
|
||||
&& echo 'Signed-By: /etc/kolla/apt-keys/{repo_list[repo]['gpg_key']}' \
|
||||
>>/etc/apt/sources.list.d/{repo}.sources \
|
||||
&& """
|
||||
if repo_list[repo]['arch']:
|
||||
commands += f"""echo 'Architectures: \
|
||||
{repo_list[repo]['arch']}' \
|
||||
>>/etc/apt/sources.list.d/{repo}.sources \
|
||||
&& """
|
||||
except KeyError:
|
||||
# NOTE(hrw): we ignore missing repositories for a given
|
||||
# distro/arch
|
||||
pass
|
||||
if not _repo.get('distro'):
|
||||
commands += DNF_REPO.format(
|
||||
name=_repo['name'],
|
||||
repo=repo,
|
||||
)
|
||||
if _repo.get('gpgcheck'):
|
||||
commands += DNF_GPGCHECK.format(
|
||||
gpgcheck=_repo['gpgcheck'],
|
||||
repo=repo)
|
||||
|
||||
if base_package_type == 'rpm' and commands:
|
||||
# NOTE(hrw): if commands is empty then no repos are enabled
|
||||
# otherwise we need to add command to handle repositories
|
||||
# NOTE(hrw) dnf errors out if we enable unknown repo
|
||||
commands = 'dnf config-manager %s || true' % commands
|
||||
elif base_package_type == 'deb':
|
||||
# NOTE(hrw): Debian commands end with '&&'
|
||||
commands = commands[0:-4]
|
||||
if _repo.get('repo_gpgcheck'):
|
||||
commands += DNF_REPO_GPGCHECK.format(
|
||||
repo_gpgcheck=_repo['repo_gpgcheck'],
|
||||
repo=repo)
|
||||
|
||||
# NOTE(mnasiadka): Support multiple gpgkeys
|
||||
gpgkeys = _repo['gpgkey'].splitlines()
|
||||
for _, gpgkey in enumerate(gpgkeys):
|
||||
if _ == 0:
|
||||
commands += DNF_GPGKEY.format(gpgkey=gpgkey,
|
||||
repo=repo)
|
||||
else:
|
||||
commands += DNF_GPGKEY_ADD.format(
|
||||
gpgkey=gpgkey,
|
||||
repo=repo)
|
||||
else:
|
||||
commands += DNF_ENABLE.format(name=_repo['name'])
|
||||
|
||||
if 'baseurl' in _repo:
|
||||
# NOTE(mnasiadka): Support multiple baseurls
|
||||
baseurl = _repo['baseurl'].splitlines()
|
||||
for url in baseurl:
|
||||
commands += DNF_BASEURL.format(baseurl=url,
|
||||
repo=repo)
|
||||
elif 'metalink' in _repo:
|
||||
commands += DNF_METALINK.format(
|
||||
metalink=_repo['metalink'], repo=repo
|
||||
)
|
||||
|
||||
elif 'mirrorlist' in _repo:
|
||||
commands += DNF_MIRRORLIST.format(
|
||||
mirrorlist=_repo['mirrorlist'], repo=repo
|
||||
)
|
||||
|
||||
if index != len(reponames) - 1:
|
||||
commands += " && "
|
||||
|
||||
elif mode == 'disable' and _repo.get('distro'):
|
||||
commands += DNF_DISABLE.format(name=_repo['name'])
|
||||
|
||||
elif base_package_type == "deb":
|
||||
if mode == "enable":
|
||||
commands += APT_REPO.format(
|
||||
component=_repo['component'],
|
||||
gpg_key=_repo['gpg_key'],
|
||||
suite=_repo['suite'],
|
||||
url=_repo['url'],
|
||||
repo=repo,
|
||||
)
|
||||
|
||||
if 'arch' in _repo:
|
||||
commands += APT_ARCH.format(
|
||||
arch=_repo['arch'], repo=repo
|
||||
)
|
||||
|
||||
if index != len(reponames) - 1:
|
||||
commands += ' && '
|
||||
except KeyError as e:
|
||||
LOG.exception("Error enabling repository %s in image %s", e,
|
||||
image_name)
|
||||
raise
|
||||
|
||||
if commands:
|
||||
commands = "RUN %s" % commands
|
||||
|
@@ -1,43 +1,157 @@
|
||||
---
|
||||
centos:
|
||||
ceph: "centos-ceph-squid"
|
||||
crb: "crb"
|
||||
docker-ce: "docker-ce"
|
||||
epel: "epel"
|
||||
erlang: "rabbitmq_rabbitmq-erlang"
|
||||
extras: "extras"
|
||||
fluentd: "fluent-package-lts"
|
||||
grafana: "grafana"
|
||||
hacluster: "highavailability"
|
||||
influxdb: "influxdb"
|
||||
kolla_el10: "kolla_el10"
|
||||
mariadb: "mariadb"
|
||||
opensearch: "opensearch-3.x"
|
||||
opensearch-dashboards: "opensearch-dashboards-3.x"
|
||||
openvswitch: "centos-nfv-openvswitch"
|
||||
opstools: "centos-opstools"
|
||||
proxysql: "proxysql"
|
||||
rabbitmq: "rabbitmq_rabbitmq-server"
|
||||
ceph:
|
||||
gpgkey: "https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage"
|
||||
metalink: "https://mirrors.centos.org/metalink?repo=centos-storage-sig-ceph-squid-9-stream&arch=$basearch"
|
||||
name: "centos-ceph-squid"
|
||||
crb:
|
||||
distro: True
|
||||
name: "crb"
|
||||
docker-ce:
|
||||
gpgkey: "https://download.docker.com/linux/centos/gpg"
|
||||
baseurl: "https://download.docker.com/linux/centos/$releasever/$basearch/stable"
|
||||
name: "docker-ce"
|
||||
epel:
|
||||
gpgkey: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-$releasever"
|
||||
metalink: "https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir"
|
||||
name: "epel"
|
||||
erlang:
|
||||
baseurl: |
|
||||
https://yum1.rabbitmq.com/erlang/el/9/$basearch
|
||||
https://yum2.rabbitmq.com/erlang/el/9/$basearch
|
||||
gpgkey: "https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key"
|
||||
name: "rabbitmq_rabbitmq-erlang"
|
||||
extras:
|
||||
distro: True
|
||||
name: "extras"
|
||||
fluentd:
|
||||
baseurl: "https://packages.treasuredata.com/lts/5/redhat/9/$basearch"
|
||||
gpgkey: "https://packages.treasuredata.com/GPG-KEY-td-agent"
|
||||
name: "fluent-package-lts"
|
||||
grafana:
|
||||
baseurl: "https://rpm.grafana.com"
|
||||
gpgkey: "https://rpm.grafana.com/gpg.key"
|
||||
name: "grafana"
|
||||
hacluster:
|
||||
name: "highavailability"
|
||||
distro: true
|
||||
influxdb:
|
||||
baseurl: "https://repos.influxdata.com/rhel/9/$basearch/stable"
|
||||
gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key"
|
||||
name: "influxdb"
|
||||
kolla_el10:
|
||||
baseurl: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/epel-10-$basearch/"
|
||||
gpgkey: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/pubkey.gpg"
|
||||
name: "kolla_el10"
|
||||
mariadb:
|
||||
baseurl: "https://dlm.mariadb.com/repo/mariadb-server/10.11/yum/rhel/$releasever/$basearch"
|
||||
gpgkey: "https://downloads.mariadb.com/MariaDB/RPM-GPG-KEY-MariaDB"
|
||||
name: "mariadb"
|
||||
opensearch:
|
||||
baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch/3.x/yum"
|
||||
gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp"
|
||||
repo_gpgcheck: 1
|
||||
name: "opensearch32.x"
|
||||
opensearch-dashboards:
|
||||
baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/3.x/yum"
|
||||
gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp"
|
||||
repo_gpgcheck: 1
|
||||
name: "opensearch-dashboards-3.x"
|
||||
openvswitch:
|
||||
gpgkey: "https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-NFV"
|
||||
metalink: "https://mirrors.centos.org/metalink?repo=centos-nfv-sig-openvswitch-2-$stream&arch=$basearch&protocol=https,http"
|
||||
name: "centos-nfv-openvswitch"
|
||||
opstools:
|
||||
distro: True
|
||||
name: "opstools"
|
||||
proxysql:
|
||||
baseurl: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/almalinux/9"
|
||||
gpgkey: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key"
|
||||
name: "proxysql"
|
||||
rabbitmq:
|
||||
baseurl: |
|
||||
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
gpgkey: |
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
|
||||
name: "rabbitmq_rabbitmq-server"
|
||||
|
||||
centos-aarch64:
|
||||
ceph: "centos-ceph-squid"
|
||||
crb: "crb"
|
||||
docker-ce: "docker-ce"
|
||||
epel: "epel"
|
||||
erlang: "copr-rabbitmq-erlang"
|
||||
extras: "extras"
|
||||
fluentd: "fluent-package-lts"
|
||||
grafana: "grafana"
|
||||
hacluster: "highavailability"
|
||||
influxdb: "influxdb"
|
||||
kolla_el10: "kolla_el10"
|
||||
mariadb: "mariadb"
|
||||
opensearch: "opensearch-3.x"
|
||||
opensearch-dashboards: "opensearch-dashboards-3.x"
|
||||
openvswitch: "centos-nfv-openvswitch"
|
||||
opstools: "centos-opstools"
|
||||
proxysql: "proxysql"
|
||||
rabbitmq: "rabbitmq_rabbitmq-server"
|
||||
ceph:
|
||||
gpgkey: "https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage"
|
||||
metalink: "https://mirrors.centos.org/metalink?repo=centos-storage-sig-ceph-squid-9-stream&arch=$basearch"
|
||||
name: "centos-ceph-squid"
|
||||
crb:
|
||||
distro: True
|
||||
name: "crb"
|
||||
docker-ce:
|
||||
gpgkey: "https://download.docker.com/linux/centos/gpg"
|
||||
baseurl: "https://download.docker.com/linux/centos/$releasever/$basearch/stable"
|
||||
name: "docker-ce"
|
||||
epel:
|
||||
gpgkey: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-$releasever"
|
||||
metalink: "https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir"
|
||||
name: "epel"
|
||||
erlang:
|
||||
baseurl: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/rabbitmq-erlang-27/rhel-$releasever-aarch64/"
|
||||
gpgkey: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/rabbitmq-erlang-27/pubkey.gpg"
|
||||
name: "copr-rabbitmq-erlang"
|
||||
extras:
|
||||
distro: True
|
||||
name: "extras"
|
||||
fluentd:
|
||||
baseurl: "https://packages.treasuredata.com/lts/5/redhat/9/$basearch"
|
||||
gpgkey: "https://packages.treasuredata.com/GPG-KEY-td-agent"
|
||||
name: "fluent-package-lts"
|
||||
grafana:
|
||||
baseurl: "https://rpm.grafana.com"
|
||||
gpgkey: "https://rpm.grafana.com/gpg.key"
|
||||
name: "grafana"
|
||||
hacluster:
|
||||
name: "highavailability"
|
||||
distro: true
|
||||
influxdb:
|
||||
baseurl: "https://repos.influxdata.com/rhel/9/$basearch/stable"
|
||||
gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key"
|
||||
name: "influxdb"
|
||||
kolla_el10:
|
||||
baseurl: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/epel-10-$basearch/"
|
||||
gpgkey: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/pubkey.gpg"
|
||||
name: "kolla_el10"
|
||||
mariadb:
|
||||
baseurl: "https://dlm.mariadb.com/repo/mariadb-server/10.11/yum/rhel/$releasever/$basearch"
|
||||
gpgkey: "https://downloads.mariadb.com/MariaDB/RPM-GPG-KEY-MariaDB"
|
||||
name: "mariadb"
|
||||
opensearch:
|
||||
baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch/3.x/yum"
|
||||
gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp"
|
||||
repo_gpgcheck: 1
|
||||
name: "opensearch32.x"
|
||||
opensearch-dashboards:
|
||||
baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/3.x/yum"
|
||||
gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp"
|
||||
repo_gpgcheck: 1
|
||||
name: "opensearch-dashboards-3.x"
|
||||
openvswitch:
|
||||
gpgkey: "https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-NFV"
|
||||
metalink: "https://mirrors.centos.org/metalink?repo=centos-nfv-sig-openvswitch-2-$stream&arch=$basearch&protocol=https,http"
|
||||
name: "centos-nfv-openvswitch"
|
||||
opstools:
|
||||
distro: True
|
||||
name: "opstools"
|
||||
proxysql:
|
||||
baseurl: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/almalinux/9"
|
||||
gpgkey: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key"
|
||||
name: "proxysql"
|
||||
rabbitmq:
|
||||
baseurl: |
|
||||
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
gpgkey: |
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
|
||||
name: "rabbitmq_rabbitmq-server"
|
||||
|
||||
# NOTE(mnasiadka): For RabbitMQ Debuntu suite names is following:
|
||||
# https://www.rabbitmq.com/install-debian.html#apt-cloudsmith
|
||||
@@ -150,44 +264,158 @@ debian-aarch64:
|
||||
gpg_key: "rabbitmq.gpg"
|
||||
|
||||
rocky:
|
||||
ceph: "centos-ceph-squid"
|
||||
crb: "crb"
|
||||
docker-ce: "docker-ce"
|
||||
epel: "epel"
|
||||
erlang: "rabbitmq_rabbitmq-erlang"
|
||||
extras: "extras"
|
||||
fluentd: "fluent-package-lts"
|
||||
grafana: "grafana"
|
||||
hacluster: "highavailability"
|
||||
influxdb: "influxdb"
|
||||
kolla_el10: "kolla_el10"
|
||||
mariadb: "mariadb"
|
||||
opensearch: "opensearch-3.x"
|
||||
opensearch-dashboards: "opensearch-dashboards-3.x"
|
||||
openvswitch: "centos-nfv-openvswitch"
|
||||
opstools: "centos-opstools"
|
||||
proxysql: "proxysql"
|
||||
rabbitmq: "rabbitmq_rabbitmq-server"
|
||||
ceph:
|
||||
gpgkey: "https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage"
|
||||
metalink: "https://mirrors.centos.org/metalink?repo=centos-storage-sig-ceph-squid-9-stream&arch=$basearch"
|
||||
name: "centos-ceph-squid"
|
||||
crb:
|
||||
distro: True
|
||||
name: "crb"
|
||||
docker-ce:
|
||||
gpgkey: "https://download.docker.com/linux/centos/gpg"
|
||||
baseurl: "https://download.docker.com/linux/centos/$releasever/$basearch/stable"
|
||||
name: "docker-ce"
|
||||
epel:
|
||||
gpgkey: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-$releasever"
|
||||
metalink: "https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir"
|
||||
name: "epel"
|
||||
erlang:
|
||||
baseurl: |
|
||||
https://yum1.rabbitmq.com/erlang/el/9/$basearch
|
||||
https://yum2.rabbitmq.com/erlang/el/9/$basearch
|
||||
gpgkey: "https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key"
|
||||
name: "rabbitmq_rabbitmq-erlang"
|
||||
extras:
|
||||
distro: True
|
||||
name: "extras"
|
||||
fluentd:
|
||||
baseurl: "https://packages.treasuredata.com/lts/5/redhat/9/$basearch"
|
||||
gpgkey: "https://packages.treasuredata.com/GPG-KEY-td-agent"
|
||||
name: "fluent-package-lts"
|
||||
grafana:
|
||||
baseurl: "https://rpm.grafana.com"
|
||||
gpgkey: "https://rpm.grafana.com/gpg.key"
|
||||
name: "grafana"
|
||||
hacluster:
|
||||
name: "highavailability"
|
||||
distro: true
|
||||
influxdb:
|
||||
baseurl: "https://repos.influxdata.com/rhel/9/$basearch/stable"
|
||||
gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key"
|
||||
name: "influxdb"
|
||||
kolla_el10:
|
||||
baseurl: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/epel-10-$basearch/"
|
||||
gpgkey: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/pubkey.gpg"
|
||||
name: "kolla_el10"
|
||||
mariadb:
|
||||
baseurl: "https://dlm.mariadb.com/repo/mariadb-server/10.11/yum/rhel/$releasever/$basearch"
|
||||
gpgkey: "https://downloads.mariadb.com/MariaDB/RPM-GPG-KEY-MariaDB"
|
||||
name: "mariadb"
|
||||
opensearch:
|
||||
baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch/3.x/yum"
|
||||
gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp"
|
||||
repo_gpgcheck: 1
|
||||
name: "opensearch32.x"
|
||||
opensearch-dashboards:
|
||||
baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/3.x/yum"
|
||||
gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp"
|
||||
repo_gpgcheck: 1
|
||||
name: "opensearch-dashboards-3.x"
|
||||
openvswitch:
|
||||
gpgkey: "https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-NFV"
|
||||
metalink: "https://mirrors.centos.org/metalink?repo=centos-nfv-sig-openvswitch-2-$stream&arch=$basearch&protocol=https,http"
|
||||
name: "centos-nfv-openvswitch"
|
||||
opstools:
|
||||
distro: True
|
||||
name: "opstools"
|
||||
proxysql:
|
||||
baseurl: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/almalinux/9"
|
||||
gpgkey: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key"
|
||||
name: "proxysql"
|
||||
rabbitmq:
|
||||
baseurl: |
|
||||
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
gpgkey: |
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
|
||||
name: "rabbitmq_rabbitmq-server"
|
||||
|
||||
rocky-aarch64:
|
||||
ceph: "centos-ceph-squid"
|
||||
crb: "crb"
|
||||
docker-ce: "docker-ce"
|
||||
epel: "epel"
|
||||
erlang: "copr-rabbitmq-erlang"
|
||||
extras: "extras"
|
||||
fluentd: "fluent-package-lts"
|
||||
grafana: "grafana"
|
||||
influxdb: "influxdb"
|
||||
kolla_el10: "kolla_el10"
|
||||
hacluster: "highavailability"
|
||||
mariadb: "mariadb"
|
||||
opensearch: "opensearch-3.x"
|
||||
opensearch-dashboards: "opensearch-dashboards-3.x"
|
||||
openvswitch: "centos-nfv-openvswitch"
|
||||
opstools: "centos-opstools"
|
||||
proxysql: "proxysql"
|
||||
rabbitmq: "rabbitmq_rabbitmq-server"
|
||||
ceph:
|
||||
gpgkey: "https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage"
|
||||
metalink: "https://mirrors.centos.org/metalink?repo=centos-storage-sig-ceph-squid-9-stream&arch=$basearch"
|
||||
name: "centos-ceph-squid"
|
||||
crb:
|
||||
distro: True
|
||||
name: "crb"
|
||||
docker-ce:
|
||||
gpgkey: "https://download.docker.com/linux/centos/gpg"
|
||||
baseurl: "https://download.docker.com/linux/centos/$releasever/$basearch/stable"
|
||||
name: "docker-ce"
|
||||
epel:
|
||||
gpgkey: "https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-$releasever"
|
||||
metalink: "https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir"
|
||||
name: "epel"
|
||||
erlang:
|
||||
baseurl: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/rabbitmq-erlang-27/rhel-$releasever-aarch64/"
|
||||
gpgkey: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/rabbitmq-erlang-27/pubkey.gpg"
|
||||
name: "copr-rabbitmq-erlang"
|
||||
extras:
|
||||
distro: True
|
||||
name: "extras"
|
||||
fluentd:
|
||||
baseurl: "https://packages.treasuredata.com/lts/5/redhat/9/$basearch"
|
||||
gpgkey: "https://packages.treasuredata.com/GPG-KEY-td-agent"
|
||||
name: "fluent-package-lts"
|
||||
grafana:
|
||||
baseurl: "https://rpm.grafana.com"
|
||||
gpgkey: "https://rpm.grafana.com/gpg.key"
|
||||
name: "grafana"
|
||||
hacluster:
|
||||
name: "highavailability"
|
||||
distro: true
|
||||
influxdb:
|
||||
baseurl: "https://repos.influxdata.com/rhel/9/$basearch/stable"
|
||||
gpgkey: "https://repos.influxdata.com/influxdata-archive_compat.key"
|
||||
name: "influxdb"
|
||||
kolla_el10:
|
||||
baseurl: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/epel-10-$basearch/"
|
||||
gpgkey: "https://download.copr.fedorainfracloud.org/results/@openstack-kolla/el10-missing/pubkey.gpg"
|
||||
name: "kolla_el10"
|
||||
mariadb:
|
||||
baseurl: "https://dlm.mariadb.com/repo/mariadb-server/10.11/yum/rhel/$releasever/$basearch"
|
||||
gpgkey: "https://downloads.mariadb.com/MariaDB/RPM-GPG-KEY-MariaDB"
|
||||
name: "mariadb"
|
||||
opensearch:
|
||||
baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch/3.x/yum"
|
||||
gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp"
|
||||
repo_gpgcheck: 1
|
||||
name: "opensearch32.x"
|
||||
opensearch-dashboards:
|
||||
baseurl: "https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/3.x/yum"
|
||||
gpgkey: "https://artifacts.opensearch.org/publickeys/opensearch-release.pgp"
|
||||
repo_gpgcheck: 1
|
||||
name: "opensearch-dashboards-3.x"
|
||||
openvswitch:
|
||||
gpgkey: "https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-NFV"
|
||||
metalink: "https://mirrors.centos.org/metalink?repo=centos-nfv-sig-openvswitch-2-$stream&arch=$basearch&protocol=https,http"
|
||||
name: "centos-nfv-openvswitch"
|
||||
opstools:
|
||||
distro: True
|
||||
name: "opstools"
|
||||
proxysql:
|
||||
baseurl: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/almalinux/9"
|
||||
gpgkey: "https://repo.proxysql.com/ProxySQL/proxysql-3.0.x/repo_pub_key"
|
||||
name: "proxysql"
|
||||
rabbitmq:
|
||||
baseurl: |
|
||||
https://yum1.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
https://yum2.rabbitmq.com/rabbitmq/el/9/noarch
|
||||
gpgkey: |
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key
|
||||
https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc
|
||||
name: "rabbitmq_rabbitmq-server"
|
||||
|
||||
ubuntu:
|
||||
docker-ce:
|
||||
|
@@ -22,50 +22,155 @@ class MethodsTest(base.TestCase):
|
||||
expectCmd = 'apt-get -y install --no-install-recommends package2.deb'
|
||||
self.assertEqual(expectCmd, result.split("&&")[1].strip())
|
||||
|
||||
def test_enable_repos_centos(self):
|
||||
def test_enable_repos_centos_baseurl(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'centos',
|
||||
'base_package_type': 'rpm',
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'enable')
|
||||
expectCmd = 'RUN dnf config-manager --enable grafana || true'
|
||||
result = methods.handle_repos(template_vars, ["grafana"], "enable")
|
||||
expectCmd = "RUN echo '[grafana]' "
|
||||
expectCmd += ">/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'name=grafana' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'enabled=1' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'gpgkey=https://rpm.grafana.com/gpg.key' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'baseurl=https://rpm.grafana.com' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo"
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_enable_repos_centos_missing_repo(self):
|
||||
def test_enable_repos_centos_metalink(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'centos',
|
||||
'base_package_type': 'rpm',
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['missing_repo'],
|
||||
'enable')
|
||||
expectCmd = ''
|
||||
result = methods.handle_repos(template_vars, ["ceph"], "enable")
|
||||
expectCmd = "RUN echo '[centos-ceph-squid]' "
|
||||
expectCmd += ">/etc/yum.repos.d/ceph.repo && "
|
||||
expectCmd += "echo 'name=centos-ceph-squid' "
|
||||
expectCmd += ">>/etc/yum.repos.d/ceph.repo && "
|
||||
expectCmd += "echo 'enabled=1' "
|
||||
expectCmd += ">>/etc/yum.repos.d/ceph.repo && "
|
||||
expectCmd += "echo 'gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage' " # noqa: E501
|
||||
expectCmd += ">>/etc/yum.repos.d/ceph.repo && "
|
||||
expectCmd += "echo 'metalink=https://mirrors.centos.org/metalink?repo=centos-storage-sig-ceph-squid-9-stream&arch=$basearch' " # noqa: E501
|
||||
expectCmd += ">>/etc/yum.repos.d/ceph.repo"
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_enable_repos_centos_arch(self):
|
||||
template_vars = {
|
||||
"base_arch": "aarch64",
|
||||
"base_distro": "centos",
|
||||
"base_package_type": "rpm",
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ["grafana"], "enable")
|
||||
expectCmd = "RUN echo '[grafana]' "
|
||||
expectCmd += ">/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'name=grafana' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'enabled=1' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'gpgkey=https://rpm.grafana.com/gpg.key' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'baseurl=https://rpm.grafana.com' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo"
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_enable_repos_centos_multiple(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'centos',
|
||||
'base_package_type': 'rpm',
|
||||
"base_arch": "x86_64",
|
||||
"base_distro": "centos",
|
||||
"base_package_type": "rpm",
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana', 'ceph'],
|
||||
'enable')
|
||||
expectCmd = 'RUN dnf config-manager --enable grafana '
|
||||
expectCmd += '--enable centos-ceph-squid || true'
|
||||
result = methods.handle_repos(template_vars,
|
||||
["grafana", "rabbitmq"], "enable")
|
||||
expectCmd = "RUN echo '[grafana]' "
|
||||
expectCmd += ">/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'name=grafana' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'enabled=1' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'gpgkey=https://rpm.grafana.com/gpg.key' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'baseurl=https://rpm.grafana.com' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
|
||||
expectCmd += "echo '[rabbitmq_rabbitmq-server]' "
|
||||
expectCmd += ">/etc/yum.repos.d/rabbitmq.repo && "
|
||||
expectCmd += "echo 'name=rabbitmq_rabbitmq-server' "
|
||||
expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && "
|
||||
expectCmd += "echo 'enabled=1' "
|
||||
expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && "
|
||||
expectCmd += "echo 'gpgkey=https://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-server.9F4587F226208342.key' " # noqa
|
||||
expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && "
|
||||
expectCmd += "echo ' https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc' " # noqa
|
||||
expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && "
|
||||
expectCmd += "echo 'baseurl=https://yum1.rabbitmq.com/rabbitmq/el/9/noarch' " # noqa
|
||||
expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo && "
|
||||
expectCmd += "echo 'baseurl=https://yum2.rabbitmq.com/rabbitmq/el/9/noarch' " # noqa
|
||||
expectCmd += ">>/etc/yum.repos.d/rabbitmq.repo"
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_enable_repos_centos_distro_enable(self):
|
||||
template_vars = {
|
||||
"base_arch": "x86_64",
|
||||
"base_distro": "centos",
|
||||
"base_package_type": "rpm",
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars,
|
||||
['crb'], 'enable')
|
||||
expectCmd = "RUN dnf config-manager --enable crb || true"
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_enable_repos_centos_distro_disable(self):
|
||||
template_vars = {
|
||||
"base_arch": "x86_64",
|
||||
"base_distro": "centos",
|
||||
"base_package_type": "rpm",
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['crb'], 'disable')
|
||||
expectCmd = "RUN dnf config-manager --disable crb || true"
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_enable_repos_centos_distro_enable_multiple(self):
|
||||
template_vars = {
|
||||
"base_arch": "x86_64",
|
||||
"base_distro": "centos",
|
||||
"base_package_type": "rpm",
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars,
|
||||
['crb', 'grafana'], 'enable')
|
||||
expectCmd = "RUN dnf config-manager --enable crb || true && "
|
||||
expectCmd += "echo '[grafana]' "
|
||||
expectCmd += ">/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'name=grafana' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'enabled=1' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'gpgkey=https://rpm.grafana.com/gpg.key' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo && "
|
||||
expectCmd += "echo 'baseurl=https://rpm.grafana.com' "
|
||||
expectCmd += ">>/etc/yum.repos.d/grafana.repo"
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_enable_repos_debian(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'debian',
|
||||
'base_package_type': 'deb'
|
||||
"base_arch": "x86_64",
|
||||
"base_distro": "debian",
|
||||
"base_package_type": "deb",
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'enable')
|
||||
result = methods.handle_repos(template_vars, ["grafana"], "enable")
|
||||
expectCmd = "RUN echo 'Uris: https://apt.grafana.com' "
|
||||
expectCmd += ">/etc/apt/sources.list.d/grafana.sources && "
|
||||
expectCmd += "echo 'Components: main' "
|
||||
@@ -82,10 +187,10 @@ class MethodsTest(base.TestCase):
|
||||
template_vars = {
|
||||
'base_arch': 'aarch64',
|
||||
'base_distro': 'debian',
|
||||
'base_package_type': 'deb'
|
||||
'base_package_type': 'deb',
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['rabbitmq'], 'enable')
|
||||
result = methods.handle_repos(template_vars, ["rabbitmq"], "enable")
|
||||
expectCmd = "RUN echo 'Uris: https://ppa1.rabbitmq.com/rabbitmq/rabbitmq-server/deb/debian' " # noqa: E501
|
||||
expectCmd += ">/etc/apt/sources.list.d/rabbitmq.sources && "
|
||||
expectCmd += "echo 'Components: main' "
|
||||
@@ -104,23 +209,21 @@ class MethodsTest(base.TestCase):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'debian',
|
||||
'base_package_type': 'deb'
|
||||
'base_package_type': 'deb',
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['missing_repo'],
|
||||
'enable')
|
||||
expectCmd = ''
|
||||
self.assertEqual(expectCmd, result)
|
||||
self.assertRaises(KeyError, methods.handle_repos, template_vars,
|
||||
['missing_repo'], 'enable')
|
||||
|
||||
def test_enable_repos_debian_multiple(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'debian',
|
||||
'base_package_type': 'deb'
|
||||
'base_package_type': 'deb',
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana', 'rabbitmq'],
|
||||
'enable')
|
||||
result = methods.handle_repos(template_vars,
|
||||
['grafana', 'rabbitmq'], 'enable')
|
||||
expectCmd = "RUN echo 'Uris: https://apt.grafana.com' "
|
||||
expectCmd += ">/etc/apt/sources.list.d/grafana.sources && "
|
||||
expectCmd += "echo 'Components: main' "
|
||||
@@ -146,47 +249,23 @@ class MethodsTest(base.TestCase):
|
||||
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_disable_repos_centos(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'centos',
|
||||
'base_package_type': 'rpm',
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'disable')
|
||||
expectCmd = 'RUN dnf config-manager --disable grafana || true'
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_disable_repos_centos_multiple(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'centos',
|
||||
'base_package_type': 'rpm',
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana', 'ceph'],
|
||||
'disable')
|
||||
expectCmd = 'RUN dnf config-manager --disable grafana '
|
||||
expectCmd += '--disable centos-ceph-squid || true'
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
# NOTE(hrw): there is no disabling of repos for Debian/Ubuntu
|
||||
def test_disable_repos_debian(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'debian',
|
||||
'base_package_type': 'deb'
|
||||
'base_package_type': 'deb',
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'disable')
|
||||
expectCmd = ''
|
||||
result = methods.handle_repos(template_vars, ["grafana"], "disable")
|
||||
expectCmd = ""
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_handle_repos_string(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'debian',
|
||||
'base_package_type': 'deb'
|
||||
'base_package_type': 'deb',
|
||||
}
|
||||
|
||||
self.assertRaisesRegex(TypeError,
|
||||
|
@@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Adds support for configuring RPM distributions repositories
|
||||
using ``repos.yaml`` functionality.
|
@@ -65,18 +65,7 @@ RUN if [ -f /usr/etc/npmrc ]; then \
|
||||
fi \
|
||||
&& rm -f /etc/npmrc
|
||||
|
||||
{% if base_distro in ['centos', 'rocky'] %}
|
||||
{# NOTE(hrw): Some images have two footer blocks.
|
||||
For example neutron-infobox-ipam-agent being
|
||||
child of neutron-server.
|
||||
#}
|
||||
RUN if [ -d /etc/yum.repos.d/not-for-ci/ ]; then \
|
||||
cd /etc/yum.repos.d/ && \
|
||||
rm ci-{{ base_distro }}.repo && \
|
||||
mv not-for-ci/*.repo . && \
|
||||
rm -rf not-for-ci; \
|
||||
fi;
|
||||
{% elif base_distro == "debian" %}
|
||||
{% if base_distro == "debian" %}
|
||||
RUN sed -i -e "s|\[trusted=yes\] http://{{ nodepool_mirror_host }}|http://deb.debian.org|" \
|
||||
-e "s|\[trusted=yes\] http://{{ nodepool_mirror_host }}|http://security.debian.org|" \
|
||||
/etc/apt/sources.list
|
||||
|
Reference in New Issue
Block a user