Merge "centos: disable EPEL by default"
This commit is contained in:
commit
3ddc0b9820
|
@ -269,6 +269,7 @@ RUN yum-config-manager --enable rhel-7-server-optional-rpms \
|
|||
|
||||
# Install base packages
|
||||
{{ macros.install_packages( base_centos_packages | customizable("centos_packages") | customizable("centos_binary_packages") | customizable("centos_source_packages") ) }}
|
||||
{{ macros.disable_extra_repos('epel') }}
|
||||
|
||||
{# endif for base_package_type rpm #}
|
||||
{% elif base_package_type == 'deb' %}
|
||||
|
|
|
@ -88,10 +88,6 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
|
|||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
{% if distro_package_manager == 'yum' %}
|
||||
# make sure, collectd is pulled from centos-opstools
|
||||
RUN yum-config-manager --disable epel
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{{ macros.install_packages(collectd_packages | customizable("packages")) }}
|
||||
|
|
|
@ -94,6 +94,12 @@ RUN usermod --append --home {{ homedir }} --groups kolla {{ name }} \
|
|||
|
||||
{% macro enable_extra_repos(repos) %}
|
||||
|
||||
{{ enable_repos(repos) }}
|
||||
{{ handle_repos(repos, 'enable') }}
|
||||
|
||||
{% endmacro %}
|
||||
|
||||
{% macro disable_extra_repos(repos) %}
|
||||
|
||||
{{ handle_repos(repos, 'disable') }}
|
||||
|
||||
{% endmacro %}
|
||||
|
|
|
@ -20,7 +20,7 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build
|
|||
|
||||
{% if base_distro in ['centos'] %}
|
||||
# make sure qpid is pulled from centos-openstack-RELEASE (RDO) repo
|
||||
RUN {% if distro_package_manager == 'dnf' %}dnf config-manager{% else %}yum-config-manager{% endif %} --disable epel centos-release-opstools extras
|
||||
{{ macros.disable_extra_repos(['extras', 'opstools']) }}
|
||||
{% endif %}
|
||||
|
||||
{{ macros.install_packages(qdrouterd_packages | customizable("packages")) }}
|
||||
|
|
|
@ -924,7 +924,7 @@ class KollaWorker(object):
|
|||
|
||||
return {
|
||||
'debian_package_install': jinja_methods.debian_package_install,
|
||||
'enable_repos': jinja_methods.enable_repos,
|
||||
'handle_repos': jinja_methods.handle_repos,
|
||||
}
|
||||
|
||||
def get_users(self):
|
||||
|
|
|
@ -72,7 +72,7 @@ def debian_package_install(packages, clean_package_cache=True):
|
|||
|
||||
|
||||
@contextfunction
|
||||
def enable_repos(context, reponames):
|
||||
def handle_repos(context, reponames, mode):
|
||||
"""NOTE(hrw): we need to handle CentOS, Debian and Ubuntu with one macro.
|
||||
|
||||
Repo names have to be simple names mapped to proper ones. So 'ceph' ==
|
||||
|
@ -80,6 +80,14 @@ def enable_repos(context, reponames):
|
|||
something else for Debian.
|
||||
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
|
||||
|
||||
repofile = os.path.dirname(os.path.realpath(__file__)) + '/repos.yaml'
|
||||
with open(repofile, 'r') as repos_file:
|
||||
repo_data = {}
|
||||
|
@ -102,10 +110,11 @@ def enable_repos(context, reponames):
|
|||
for repo in reponames:
|
||||
try:
|
||||
if base_package_type == 'rpm':
|
||||
commands += ' --enable %s' % repo_list[repo]
|
||||
commands += ' %s %s' % (rpm_switch, repo_list[repo])
|
||||
elif base_package_type == 'deb':
|
||||
commands += 'echo "%s" ' % repo_list[repo]
|
||||
commands += '>/etc/apt/sources.list.d/%s.list && ' % repo
|
||||
if mode == 'enable':
|
||||
commands += 'echo "%s" ' % repo_list[repo]
|
||||
commands += '>/etc/apt/sources.list.d/%s.list && ' % repo
|
||||
except KeyError:
|
||||
# NOTE(hrw): we ignore missing repositories for a given
|
||||
# distro/arch
|
||||
|
|
|
@ -2,27 +2,36 @@
|
|||
centos:
|
||||
ceph: "centos-ceph-nautilus"
|
||||
elasticsearch: "elasticsearch-kibana-logstash-5.x"
|
||||
epel: "epel"
|
||||
extras: "extras"
|
||||
grafana: "grafana"
|
||||
hacluster: "network_ha-clustering_Stable"
|
||||
influxdb: "influxdb"
|
||||
kibana: "elasticsearch-kibana-logstash-5.x"
|
||||
nfs-ganesha: "centos-nfs-ganesha28"
|
||||
opendaylight: "opendaylight"
|
||||
opstools: "centos-release-opstools"
|
||||
rabbitmq: "rabbitmq_rabbitmq-server"
|
||||
td-agent: "treasuredata"
|
||||
|
||||
centos-aarch64:
|
||||
ceph: "centos-ceph-nautilus"
|
||||
elasticsearch: "elasticsearch-kibana-logstash-5.x"
|
||||
epel: "epel"
|
||||
extras: "extras"
|
||||
grafana: "grafana"
|
||||
nfs-ganesha: "centos-nfs-ganesha28"
|
||||
opendaylight: "opendaylight"
|
||||
opstools: "centos-release-opstools"
|
||||
rabbitmq: "rabbitmq_rabbitmq-server"
|
||||
|
||||
centos-ppc64le:
|
||||
ceph: "centos-ceph-nautilus"
|
||||
elasticsearch: "elasticsearch-kibana-logstash-5.x"
|
||||
epel: "epel"
|
||||
extras: "extras"
|
||||
nfs-ganesha: "centos-nfs-ganesha28"
|
||||
opstools: "centos-release-opstools"
|
||||
rabbitmq: "rabbitmq_rabbitmq-server"
|
||||
|
||||
# NOTE(hrw): empty dict to avoid TypeError
|
||||
|
|
|
@ -30,7 +30,7 @@ class MethodsTest(base.TestCase):
|
|||
'distro_package_manager': 'yum'
|
||||
}
|
||||
|
||||
result = methods.enable_repos(template_vars, ['grafana'])
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'enable')
|
||||
expectCmd = ''
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
|
@ -42,7 +42,7 @@ class MethodsTest(base.TestCase):
|
|||
'distro_package_manager': 'yum'
|
||||
}
|
||||
|
||||
result = methods.enable_repos(template_vars, ['grafana'])
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'enable')
|
||||
expectCmd = 'RUN yum-config-manager --enable grafana'
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
|
@ -54,7 +54,8 @@ class MethodsTest(base.TestCase):
|
|||
'distro_package_manager': 'yum'
|
||||
}
|
||||
|
||||
result = methods.enable_repos(template_vars, ['missing_repo'])
|
||||
result = methods.handle_repos(template_vars, ['missing_repo'],
|
||||
'enable')
|
||||
expectCmd = ''
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
|
@ -66,7 +67,8 @@ class MethodsTest(base.TestCase):
|
|||
'distro_package_manager': 'yum'
|
||||
}
|
||||
|
||||
result = methods.enable_repos(template_vars, ['grafana', 'ceph'])
|
||||
result = methods.handle_repos(template_vars, ['grafana', 'ceph'],
|
||||
'enable')
|
||||
expectCmd = 'RUN yum-config-manager --enable grafana '
|
||||
expectCmd += '--enable centos-ceph-nautilus'
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
@ -78,7 +80,7 @@ class MethodsTest(base.TestCase):
|
|||
'base_package_type': 'deb'
|
||||
}
|
||||
|
||||
result = methods.enable_repos(template_vars, ['grafana'])
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'enable')
|
||||
expectCmd = 'RUN echo "deb https://packages.grafana.com/oss/deb '
|
||||
expectCmd += 'stable main" >/etc/apt/sources.list.d/grafana.list'
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
@ -90,7 +92,8 @@ class MethodsTest(base.TestCase):
|
|||
'base_package_type': 'deb'
|
||||
}
|
||||
|
||||
result = methods.enable_repos(template_vars, ['missing_repo'])
|
||||
result = methods.handle_repos(template_vars, ['missing_repo'],
|
||||
'enable')
|
||||
expectCmd = ''
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
|
@ -101,10 +104,49 @@ class MethodsTest(base.TestCase):
|
|||
'base_package_type': 'deb'
|
||||
}
|
||||
|
||||
result = methods.enable_repos(template_vars, ['grafana', 'kibana'])
|
||||
result = methods.handle_repos(template_vars, ['grafana', 'kibana'],
|
||||
'enable')
|
||||
expectCmd = 'RUN echo "deb https://packages.grafana.com/oss/deb '
|
||||
expectCmd += 'stable main" >/etc/apt/sources.list.d/grafana.list && '
|
||||
expectCmd += 'echo "deb [arch=amd64] '
|
||||
expectCmd += 'https://artifacts.elastic.co/packages/5.x/apt stable '
|
||||
expectCmd += 'main" >/etc/apt/sources.list.d/kibana.list'
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_disable_repos_centos(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'centos',
|
||||
'base_package_type': 'rpm',
|
||||
'distro_package_manager': 'yum'
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'disable')
|
||||
expectCmd = 'RUN yum-config-manager --disable grafana'
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
||||
def test_disable_repos_centos_multiple(self):
|
||||
template_vars = {
|
||||
'base_arch': 'x86_64',
|
||||
'base_distro': 'centos',
|
||||
'base_package_type': 'rpm',
|
||||
'distro_package_manager': 'yum'
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana', 'ceph'],
|
||||
'disable')
|
||||
expectCmd = 'RUN yum-config-manager --disable grafana '
|
||||
expectCmd += '--disable centos-ceph-nautilus'
|
||||
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'
|
||||
}
|
||||
|
||||
result = methods.handle_repos(template_vars, ['grafana'], 'disable')
|
||||
expectCmd = ''
|
||||
self.assertEqual(expectCmd, result)
|
||||
|
|
Loading…
Reference in New Issue