summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2019-03-21 12:44:13 +0000
committerGerrit Code Review <review@openstack.org>2019-03-21 12:44:13 +0000
commita911010054ef514cdc28aad71f0a6869a830dd87 (patch)
treed83f247824c8bd5de92a9a3ab5d425d5f1807c36
parent49cfe69875aade7884518e95e8df081dbddfb6cc (diff)
parentd1702568960bee8524204794c68085529c4b8b08 (diff)
downloadkolla-a911010054ef514cdc28aad71f0a6869a830dd87.tar.gz
kolla-a911010054ef514cdc28aad71f0a6869a830dd87.zip
Merge "Introduce clean_package_cache"
-rw-r--r--docker/base/Dockerfile.j212
-rw-r--r--docker/macros.j26
-rwxr-xr-xkolla/common/config.py4
-rwxr-xr-xkolla/image/build.py5
-rw-r--r--kolla/template/methods.py7
-rw-r--r--releasenotes/notes/clean_package_cache-fa08d1808a2f2b49.yaml6
6 files changed, 27 insertions, 13 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index 8f9a34d93..1276c09fb 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -156,9 +156,9 @@ RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
rpm --import {{ key }} \
{% endfor -%}
{%- if base_centos_yum_repo_keys|customizable('centos_yum_repo_keys')|length == 0 %}RUN {% else %} && {% endif -%}
- yum -y update --security --sec-severity=Important --sec-severity=Critical \
+ yum -y update --security --sec-severity=Important --sec-severity=Critical{% if clean_package_cache %} \
&& yum clean all \
- && rm -rf /var/cache/yum
+ && rm -rf /var/cache/yum{% endif %}
{% endif %}
{# Endif for base_distro centos #}
@@ -180,9 +180,9 @@ RUN yum-config-manager --enable rhel-7-server-optional-rpms \
&& yum-config-manager --enable rhel-7-server-rhceph-2-osd-rpms \
&& yum-config-manager --enable rhel-7-server-rhceph-2-mon-rpms \
&& yum-config-manager --enable rhel-7-server-rhceph-2-tools-rpms \
- && yum -y update --security --sec-severity=Important --sec-severity=Critical \
+ && yum -y update --security --sec-severity=Important --sec-severity=Critical{% if clean_package_cache %} \
&& yum clean all \
- && rm -rf /var/cache/yum
+ && rm -rf /var/cache/yum{% endif %}
{% endblock %}
{% endif %}
@@ -210,9 +210,9 @@ RUN yum -y install \
&& yum-config-manager --enable ol7_optional_latest ol7_addons \
&& yum -y install \
yum-plugin-priorities \
- && yum -y update --security --sec-severity=Important --sec-severity=Critical \
+ && yum -y update --security --sec-severity=Important --sec-severity=Critical{% if clean_package_cache %} \
&& yum clean all \
- && rm -rf /var/cache/yum
+ && rm -rf /var/cache/yum{% endif %}
{% endblock %}
{% endif %}
diff --git a/docker/macros.j2 b/docker/macros.j2
index 3e1353e71..dcc9bb0bb 100644
--- a/docker/macros.j2
+++ b/docker/macros.j2
@@ -1,14 +1,16 @@
{% macro install_packages(packages) -%}
{% if packages is defined and packages|length > 0 -%}
{% if base_package_type == 'rpm' -%}
- RUN {{ distro_package_manager }} -y install {{ packages | join(' ') }} && {{ distro_package_manager }} clean all && rm -rf /var/cache/{{ distro_package_manager }}
+ RUN {{ distro_package_manager }} -y install {{ packages | join(' ') }}
+ {%- if clean_package_cache %} \
+ && {{ distro_package_manager }} clean all && rm -rf /var/cache/{{ distro_package_manager }}{% endif %}
{%- elif base_package_type == 'deb' -%}
{#-
debian_package_install is a utility method to build up an appropriate
set of commands to install packages in a debian-based environment that
may include URL links to a .deb package
-#}
- RUN {{ debian_package_install(packages) }}
+ RUN {{ debian_package_install(packages, clean_package_cache) }}
{%- endif %}
{%- endif %}
{%- endmacro %}
diff --git a/kolla/common/config.py b/kolla/common/config.py
index 22a991d61..4f2f250d6 100755
--- a/kolla/common/config.py
+++ b/kolla/common/config.py
@@ -283,7 +283,9 @@ _BASE_OPTS = [
cfg.BoolOpt('squash-cleanup', default=True,
help='Remove source image from Docker after squashing'),
cfg.StrOpt('squash-tmp-dir',
- help='Temporary directory to be used during squashing')
+ help='Temporary directory to be used during squashing'),
+ cfg.BoolOpt('clean_package_cache', default=True,
+ help='Clean all package cache.')
]
diff --git a/kolla/image/build.py b/kolla/image/build.py
index 373ba63e8..6fbe58408 100755
--- a/kolla/image/build.py
+++ b/kolla/image/build.py
@@ -715,6 +715,8 @@ class KollaWorker(object):
package_manager = 'apt'
self.distro_package_manager = package_manager
+ self.clean_package_cache = self.conf.clean_package_cache
+
# Determine base packaging type for use in Dockerfiles.
if self.conf.base_package_type:
self.base_package_type = self.conf.base_package_type
@@ -933,7 +935,8 @@ class KollaWorker(object):
'distro_python_version': self.distro_python_version,
'distro_package_manager': self.distro_package_manager,
'rpm_setup': self.rpm_setup,
- 'build_date': build_date}
+ 'build_date': build_date,
+ 'clean_package_cache': self.clean_package_cache}
env = jinja2.Environment( # nosec: not used to render HTML
loader=jinja2.FileSystemLoader(self.working_dir))
env.filters.update(self._get_filters())
diff --git a/kolla/template/methods.py b/kolla/template/methods.py
index e11fa61cc..017b219c7 100644
--- a/kolla/template/methods.py
+++ b/kolla/template/methods.py
@@ -13,7 +13,7 @@
# limitations under the License.
-def debian_package_install(packages):
+def debian_package_install(packages, clean_package_cache=True):
"""Jinja utility method for building debian-based package install command.
apt-get is not capable of installing .deb files from a URL and the
@@ -48,8 +48,9 @@ def debian_package_install(packages):
cmds.append('apt-get -y install --no-install-recommends {}'.format(
' '.join(reg_packages)
))
- cmds.append('apt-get clean')
- cmds.append('rm -rf /var/lib/apt/lists/*')
+ if clean_package_cache:
+ cmds.append('apt-get clean')
+ cmds.append('rm -rf /var/lib/apt/lists/*')
# handle URL packages
for url in url_packages:
diff --git a/releasenotes/notes/clean_package_cache-fa08d1808a2f2b49.yaml b/releasenotes/notes/clean_package_cache-fa08d1808a2f2b49.yaml
new file mode 100644
index 000000000..84a0800c5
--- /dev/null
+++ b/releasenotes/notes/clean_package_cache-fa08d1808a2f2b49.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ clean_package_cache is a parameter (set to True by default for backward
+ compatibility) that controls the package cache cleaning when building the
+ images.