summaryrefslogtreecommitdiff
path: root/docker/macros.j2
AgeCommit message (Collapse)AuthorFilesLines
2022-04-11drop add_binary_source_envs() macroMarcin Juszkiewicz1-4/+0
With binary install type dropped there is no need for this macro. Change-Id: I7bdd29eb48a23faa04a98e785129d97258f05e64
2022-03-30macros/pip: revert to old setuptools wayMarcin Juszkiewicz1-1/+1
AArch64 builds fail with "AttributeError: install_layout". This is due to setuptools issue in Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1003252 Switching setuptools to use distutils from stdlib makes error go away. Backports: Xena, Wallaby (this is where it was first reported). Change-Id: I97102e18e4ec47bca94d17d964936f039580b06b
2021-12-29Clean up fluentd image recipeRadosław Piliszek1-6/+2
Since Xena, there is no arch supported other than x86_64 and aarch64. Additionally, the conditional for x86_64 Debian does not seem to be needed now with current td-agent. Moreover, drop two plugins that are relevant only to fluentd 0.12, one of which (parser) causes fluentd 0.12 (!) to be installed. Modern fluentd has both built-in. Finally, drop the labels as they are no longer useful. Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/823093 Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/823094 Change-Id: I7326cd8fcfa459dedcb6404e5287f0f5aeeed6cb
2021-09-16Do not use distro_python_version for interpreterMarcin Juszkiewicz1-1/+1
We can just use python3 - not longer need to tell which exactly like it was in py2/py3 times. Change-Id: Ib02f13cd2ad0037228e8975bd3fc37f41f23846f
2021-07-28drop leftovers of RHEL supportMarcin Juszkiewicz1-2/+1
As a project we never built RHEL based images so support for them was not tested. Change-Id: I27dfe34ade088228d71f6857ec4f3ab28ee63915
2020-09-21create 'add_binary_source_envs' macro and use itMarcin Juszkiewicz1-0/+5
There is small subset of images where we need to know which install_type or install_metatype is used. So add them only there (and their children). Change-Id: Ib7d5e36b958d6c8daf2989df32e29fa24b46c62a Implements: blueprint infra-images
2020-09-17Improve pip install process for offline deployment.Gaël THEROND (Fl1nt)1-11/+2
* "Use distribution-provided pip" * "Use python's pip module invocation method" * "Install pip earlier in order to avoid multiple installation" * "Remove pip_version variable requirement and call" Change-Id: Id0e738044a1931f9d611a7281a48ea4a593f1cf1 Closes-bug: #1893204
2020-04-15Remove support for CentOS 7Marcin Juszkiewicz1-10/+1
With the move to RHEL/CentOS 8 we no longer have Python 2 in our images so there is no need for checking which Python version (2.x or 3.x) is used inside of containers. We also no longer have to support yum as a value for distro_package_manager. Partially-Implements: blueprint centos-rhel-8 Change-Id: Ie45cf3465fedddbde7856961527421883ba3d5c9
2020-04-06Upgrade RabbitMQ to 3.8Dincer Celik1-9/+0
Upgrade and pin RabbitMQ to 3.8. Upgrade Erlang to 22 to meet requirements: https://www.rabbitmq.com/which-erlang.html Start using bintray repository provided by RabbitMQ. Linaro builds will be used for aarch64. Implements: blueprint rabbitmq-version-upgrade Closes-Bug: #1848452 Change-Id: I3d775fd832f2603181da89009cebc1370a61a023
2020-01-29Merge "CentOS 8: base and openstack-base images"Zuul1-0/+4
2020-01-09CentOS 8: base and openstack-base imagesMark Goddard1-0/+4
Adds support to the base and openstack-base images for CentOS 8. These images have been removed from the list of unbuildable images, and replaced with all dependent images. Change-Id: I18fba8a5c2f99b700990cbf41c76077a1ec2408a Partially-Implements: blueprint centos-rhel-8
2020-01-02centos: disable EPEL by defaultMarcin Juszkiewicz1-1/+7
Our images use 'scsi-target-utils' from EPEL and then can be built without it. So let's disable this repository right after installing package from it. Images can enable EPEL with 'enable_extra_repos' macro. Also added 'disable_extra_repos' macro as we have some images in a need. Change-Id: Id70474e7602b531b63fdc11ae690fd9ed33def74
2019-12-06Revert "Introduce macro to remove Py3 only plugins on CentOS 7"Mark Goddard1-10/+0
This reverts the following commits: df987c9d3fca40e0a7529e48a3626dfdd58e2168 d866c63a32a494b8643b166c3b1e36e463a7502f 6b40b655f124d0a95f1b7d89ce04236606a02010 These are no longer necessary as we are using stable/train branch for source images until CentOS 8 / python 3 support is available and working. Change-Id: I5aedf1141862d51c5bb676a7393fc131c452c914 Related: blueprint centos-rhel-python-3
2019-12-05Introduce macro to remove Py3 only plugins on CentOS 7Marcin Juszkiewicz1-0/+10
As CentOS 7 is Python 2 we need a way to remove plugins used in OpenStack components once they switch to be Python 3 only. 'remove_py3_only_plugins_for_py2' macro does exactly that. This change also disables networking-bgpvpn for python 2. Change-Id: Ib90aabc485f1c831d3d41cc0f70052f8fffc3fe6 Related: blueprint drop-py2-support
2019-12-04Merge "Enable repos only when needed"Zuul1-0/+6
2019-11-29drop *_existing_user_fix macrosMarcin Juszkiewicz1-27/+0
Commit 109706aa8b26f6f915e1cadae89de8135c3b68bf bumped 'system' users beyond range used by Kolla. So Debian/Ubuntu does not complain that system users created by packages exist already on package install. Change-Id: I9bf4b240839d46088ac668f26cf065dd5e3775c2
2019-11-29Enable repos only when neededMarcin Juszkiewicz1-0/+6
Disable external repositories by default and enable only when needed. Depends-on: https://review.opendev.org/696480 Implements: blueprint repos-off-by-default Change-Id: Icf2a8397a8349e0fe849d88d160409fd234480a9
2019-11-13Remove deprecated imagesRadosław Piliszek1-6/+0
Change-Id: I2fe57f7cd79724fa8a36bd702d75b013a68ecd1b
2019-09-25Debian: switch fluentd to td-agent on x86_64Radosław Piliszek1-2/+2
This patch uses the newly added td-agent repo on Debian. It also makes code more robust regarding different distro handling. We now have td-agent everywhere on x86_64. Change-Id: I4d2449d7d100c68084f937ef9981596fc1625375 Signed-off-by: Radosław Piliszek <radoslaw.piliszek@gmail.com>
2019-09-18Remove support for OracleLinuxMark Goddard1-1/+1
We have agreed to remove support for Oracle Linux. http://lists.openstack.org/pipermail/openstack-discuss/2019-June/006896.html Change-Id: I961dfba1aeef2c509ecdaf376dfe6928926ffb39 Depends-On: https://review.opendev.org/682858
2019-09-04Change fluentd to td-agent on CentOSMichal Nasiadka1-7/+3
Fluentd packages in CentOS Opstools SIG repos is very old, because of old-ish ruby (2.0) packaged with CentOS 7. On the other hand - TreasureData packages for fluentd are packaged with embedded ruby as dependencies - so this change moves to those. Thanks to that we are able to move from fluentd 0.12 to 1.4.2. Still we need ruby-devel for non-td-agent distros, because we download monasca output plugin as source and build it during installation. * Bump up td.repo to version 3 * Merge sudoers into one file * Change fluentd plugin install macro to reflect changes Depends-On: https://review.opendev.org/679209/ Depends-On: https://review.opendev.org/679885/ Change-Id: I40a81103317ac044d9311b2505593056cf313bd2
2019-08-19fluentd: there is no 'td-agent' for Debian/x86-64Marcin Juszkiewicz1-1/+1
As there is no 'td-agent' package image build fails on 'x86-64'. We have to wait for TD Agent 4. Change-Id: I03d38628eee0f0823a58cba3a70df22f29022956
2019-05-29Use td-agent-gem to install fluentd monasca plugin on ubuntuMark Goddard1-8/+9
If monasca is enabled on ubuntu, we see the following error in fluentd: [error]: config error file="/etc/td-agent/td-agent.conf" error_class=Fluent::ConfigError error="Unknown output plugin 'monasca'. Run 'gem search -rd fluent-plugin' to find plugins" This is because we use 'fluent-gem install' to install the gem, which works on CentOS but on Ubuntu it is necessary to use 'td-agent-gem install'. Change-Id: I515f9764ca93a41a871e520696193a9298856d08 Closes-Bug: #1830147
2019-05-28Merge "Install fluentd gem on debian/ubuntu for non x86_64"Zuul1-1/+5
2019-05-07Update kubectl v1.5.4 to v1.11.0chenming1-1/+1
Change-Id: I51c4a4a139e87fd82f411d07683f62453889de9a
2019-03-28Install fluentd gem on debian/ubuntu for non x86_64Pedro Alvarez1-1/+5
The package used to install fluentd on debian/ubuntu is not available for architectures other than x86_64. For those cases install fluentd as a gem until the package 'td-agent' is available for more architectures. Change-Id: Ic1b25b37d06b429a112f1418a79d385d505bb1e9
2019-03-21cleanup in base for yum install entriesJon Schlueter1-6/+7
- introduce install_packages(..., chain=True) to allow chaining on onto existing RUN commands - introduce install_packages(..., clean) which defaults correctly but allows you to override if you want to avoid doing extra package manager cleanup - refactored several calls in base to make use of these new features In general this allows for macros.install_packages to be chained after other calls for example RUN foo && {{ macros.install_packages(..., chain=True) }} Change-Id: I4b2fe8e13ee3c0fffe77a1179a7af5b534496996
2019-03-21refactor to pull out rpm_security_update macroJon Schlueter1-0/+8
- pulled out the repeated code from 3 paths in base and moved it into docker/macros - created macros.rpm_security_update - made sure the new macro could be customized for cleanup caches - update macro to use distro_package_manager Change-Id: Ic79ff42d913e1cbb68be66743e4f79f0bcff47f5
2019-03-17Introduce clean_package_cacheEmilien Macchi1-2/+4
Default to true (to maintain backward compatibility), this parameter will allow to disable the Package cache cleaning when building the Kolla images. In TripleO, we are investigating how we can accelerate the builds by not cleaning the Yum cache and this patch will help us to do so. Also included same for deb package_install method. Co-Authored-By: Jon Schlueter <jschluet@redhat.com> Change-Id: I0adc85302dfe0411d362c899f3e0d6a0019680d4
2019-03-12Add distro_package_manager configurationAlex Schultz1-1/+1
Add configuration to allow the switch between dnf/yum or provide an alternative package manager. Change-Id: I913769fcf5875a12b4561958cf7c90b74cd116ea
2019-03-12Add python3 packages for RHEL systemsAlex Schultz1-2/+2
RDO is currently working on python3 support for the next version of CentOS/RHEL based systems. This package uses the distro_python3 flag that was added as part of I4028991bad92c0e8e21066cc4173c06ce5eba393 to use the python3 specific package names. This change only adds python3 package names for RHEL systems. Conflicts-With: https://review.openstack.org/#/c/636457/ Change-Id: Iad6b70b433a0dd1b0f8ae6790fd280594517661a Related-Blueprint: python3-support
2019-03-12replace 'distro_python3' variable with 'distro_python_version'Marcin Juszkiewicz1-1/+6
RHEL7 derived distros use Python 2.7 RHEL8 uses Python 3.6 Ubuntu 18.04 uses Python 3.6, but we haven't enabled it yet. Debian:buster uses Python 3.7, but we haven't enabled it yet. We have several places in code where "/lib/pythonX.Y/site-packages" is used so we need to know value of X.Y rather than py2/py3 switch. How to check for Python 2: {% if distro_python_version == '2.7' %} Breaks: Iad6b70b433a0dd1b0f8ae6790fd280594517661a Change-Id: Ie24f109af19ae0438c21e0d43cb3cc947812b4ce
2019-03-11Introduce 'get_pip' macroMarcin Juszkiewicz1-0/+6
We have code for it in four places so it is a good candidate for macro. Change-Id: Icadcbbe5b386bdf688fd67e8160b40974f047377
2019-02-28debian/ubuntu: make use of Python3 based packagesMarcin Juszkiewicz1-2/+5
Both Ubuntu Stein UCA and Debian 'buster' migrated their OpenStack packages to Python 3. Note that Debian 'buster' is not released yet and contains Rocky packages. Stein ones will be available later. Co-Authored-By: Lee Yarwood <lyarwood@redhat.com> Co-Authored-By: Eduardo Gonzalez <dabarren@gmail.com> Change-Id: I160f79cc57f54ec3eac857c5babd1a6e2656d228
2019-02-19debian/ubuntu: introduce 'debian_arch' variableMarcin Juszkiewicz1-11/+1
Many images have 'if x86_64 then amd64 elif aarch64 then arm64' check to comply with Debian like architecture names in several projects. This patch creates 'debian_arch' variable which can be used in all Docker files (similar to 'base_arch' one). All required images got converted to use it. Change-Id: I9c5e6f13d6c9b24fe323408512bd5aef290111ad
2019-01-04Add support rabbitmq promethues pluginzhubingbing1-0/+9
Change-Id: I1b2b3d6708bfcd58864e26e6c1fc618fb421e9a2
2018-09-10Download binaries more securelyMartin André1-1/+2
Obtain binaries from encrypted source when we're unable to check for their signatures. This should provide better security than downloading the files over HTTP but does not replace signature verification or file integrity check. Related-Bug: #1791674 Change-Id: I7d6eed9ab14ceb130ea4f5f03d893ddaaa0a7acd
2018-02-01Use absolute path in install_pip macroMartin André1-1/+1
This lets us use the macro in the case there was a WORKDIR instruction that changed the working directory from / earlier in the dockerfile. Change-Id: I2369c9997ef189e7084fac7b5ace014f6f76d698 Closes-Bug: #1746682
2017-12-14mongodb: handle "user already exists" error on DebianMarcin Juszkiewicz1-11/+18
When we install 'mongodb-server' package in Debian/stable it errors out because 'mongodb' user already exists. It was reported [1] and got resolved in Debian/testing. 1. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858903 Change-Id: Iabfcbf68a3aea9d7b09b72eb3e8325f09c2f9d31
2017-11-24Clean fluentd_plugins_install blockMartin Mágr1-0/+11
fluentd_plugins_install should contain only plugin installation operations, so that the override does not have to handle irrelevant operations Change-Id: I8f810d194a1e638683df1f445c187b8d98629730
2017-11-02Cleanup APT lists after installing packagesChristian Berendt1-3/+6
/var/lib/apt/lists/ can take several MBs so get rid of them after packages are installed. Change-Id: Icfff55d92fa5c865f09db5112da28bf452a5a221
2017-09-19Remove yum cacheEduardo Gonzalez1-1/+1
Change-Id: I92c8626b8ee4d5d3dd102a9fe378c4f41a7f2154
2017-07-05introduces support for the OVS DPDK dataplaneSean Mooney1-1/+7
- DPDK is a userspace library for high-performance networking. - This change enable support of Open vSwitch with the DPDK accelerated netdev datapath. - This change provided binary and source support via a template-override. - This change provides an example template override file and corresponding documentation. Co-Authored-By: Mauricio Lima <mauriciolimab@gmail.com> Partial-Implements: blueprint ovs-dpdk Change-Id: I7c3a5dddeca1886fe1c7681ce8d5bebde08f3102
2017-06-27Add opendaylight install fixEduardo Gonzalez1-0/+9
Opendaylight package fails to install with existing odl user. This change adds a macro to fix the package install. Similar to haproxy install fix. Change-Id: Ie646769fe12b8f3f4c758b678b23c2d98c2e8027 Closes-Bug: #1700502
2017-06-15Permit changing yum configuration in the base imageMartin André1-1/+1
This commit allows to configure yum settings via a yum.conf file that is shipped in the base image and make it overridable with the base_yum_conf jinja2 block. Change-Id: I76a84ec008fec5696cadefdbdeb4204a32421c4b Closes-Bug: #1698134
2017-05-29Remove all Heka related remaining stuffBertrand Lallau1-1/+1
Heka has been removed and replaced by fluentd. Refer to https://review.openstack.org/#/c/437874/ Change-Id: I989e5d71b5ba4d036dd45c02b3923c5bf27a04ed
2017-05-12introduce 'install_kubectl' macroMarcin Juszkiewicz1-0/+14
Both kubetoolbox and magnum-conductor install 'kubectl'. In different versions. And only for x86-64. New macro knows how to handle other architectures. AArch64 binary is fetched properly, other architectures (ppc64le for now) gets info that there is no binary upstream. Also updated to v1.5.4 as this one is used by kube/* images. Change-Id: Ia491d6ec7156201742f28b5d1018f2794529b5b4 Partially-Implements: blueprint multiarch-and-arm64-containers
2017-04-06Remove Ubuntu Trove postinst script hackBertrand Lallau1-11/+0
trove-common version 1:7.0.0-0ubuntu1~cloud0 coming from the following repo https://github.com/openstack/kolla/blob/master/docker/base/sources.list.ubuntu#L11 has been fixed. Temporary hack must be removed. Change-Id: I19ce6f0a5d5f0fe0d390fcb05f775f860abd146c
2017-04-04debian: enable all images enabled for UbuntuMarcin Juszkiewicz1-1/+1
Debian support is not maintained in Kolla so it got a bit behind Ubuntu one. This changeset enables Debian for all images. Jessie (even with backports) may be too old for some images though. Also unify distro check to ['debian', 'ubuntu'] to keep alphabetical order like it is done for RPM distributions. Partially-Implements: blueprint multiarch-and-arm64-containers Change-Id: I056233fbfa277e0e2360c07c3f80d9558c554357
2017-03-29make yum fail on missing packagesMarcin Juszkiewicz1-1/+1
By default yum skips missing packages. As a result built images may not contain what we expect them to have (often found on non-x86 architectures). There is an option to make it fail in same way as APT does in Debian world. And this patch makes use of it so broken images just fail: INFO:kolla.image.build.openstack-base:No package Percona-Server-shared-56 available. INFO:kolla.image.build.openstack-base:Error: Not tolerating missing names on install, stopping. INFO:kolla.image.build.openstack-base: INFO:kolla.image.build.openstack-base:Removing intermediate container d5e506330b08 ERROR:kolla.image.build.openstack-base:Error'd with the following message Closes-Bug: #1675401 Change-Id: Ib6b9e6b8cc216ce283cd043fa3600db7c0cc2a98