| Age | Commit message (Collapse) | Author | Files | Lines |
|
[tool.setuptools.data-files] does not support recursive directory
installation. The old setup.cfg [files] worked because PBR's
FilesConfig.expand_globs() used os.walk() to expand docker/*, but
this hook is not triggered by the pbr.build PEP-517 backend.
Move docker/ into kolla/ and use [tool.setuptools.package-data]
instead. Update kolla_worker._get_images_dir() to check the kolla
package directory first so both editable and regular installs work.
Change-Id: I4fc452c03740ef22ebbb4e8d0d86c4f4783e2d09
Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
|
|
Commit 79a234239516b94b1b79c7ddafcc4fbe4e3ba155 introduced an ability to
build 'in-house'/'not-built-in' projects with Kolla.
This commits extends this feature with an ability to use configure_user
macro for 'not-built-in' users.
The implementation is done the same way as for 'sources', i.e. engine
after registers new section structure as soon as it finds unknown
'<project>-user' section.
In addition, the documentation and CI are extended to cover
``--docker-dir`` option.
Change-Id: I690d9f3829083f2493bf286a1c45764b9699219b
|
|
This patch adds a way to patch files in a Docker
image built by Kolla. This is very useful for several
reasons, specifically:
- Custom modifications
- The stable branch of some library has a fix but no pip
package has been released
- Eliminates the need to package your own pip packages
- Eliminates the need to invent your own versioning to prevent
upstream versioning
- Eliminates the need to manage a pip server
- In other words, it eliminates the need to get a wheel into
the image and install it manually using any method not
previously mentioned
It is also highly desirable because, although Kolla can replace
the source for a service with a custom URL for a tarball or its
own Git repo, it cannot do this for dependencies pulled from pip.
I would also like to point out that this is a feature with its own
code path and works only if the user "inserts" a patch into the folder
patches/docker-image/something.patch and creates an analogous series
file for patch source code.
Simply said, this code will never interfere with the upstream build process
since this feature is not intended for use in upstream.
It is rather meant for downstream users who know what they are doing.
Now they just have an option to patch their images.
Everything works on all layers of the Docker image and stores a report
of applied patches which can then be seen in /etc.
This mechanism is similar as debian patch quilt.
Change-Id: I61d0790c5d4d070b7ea9e8c99c0a76ff5d22bf9d
|
|
ansible-core 2.16 requires py3.10+ on the host running
ansible-playbook - let's use Python 3.11 on RPM distros
to have the same version of ansible-core used on all
distributions.
Change-Id: I2caf2c972cd0283889fadde01bdd6a53e5f66ed9
|
|
notice that the td-agent command got renamed to fluentd.
see also the upgrade notes at[0].
for more details, refer to the changelog[1].
[0]: https://web.archive.org/web/20231006084137/https://www.fluentd.org/blog/upgrade-td-agent-v4-to-v5
[1]: https://github.com/fluent/fluent-package-builder/blob/b4b7017c09d78f2c404db62612733b40f69668a6/CHANGELOG.md#release-v500---20230729
Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/901509
Change-Id: I5e95363c6c180e330945fe3d98e97c7049bbd6f7
Signed-off-by: Sven Kieske <kieske@osism.tech>
|
|
Podman has default ulimit set to 1024, because
of that fluent build is failing.
Change-Id: I105351b58c530841e17fcba331fc4300eb8296f2
|
|
|
|
This reverts commit 497b40fe5a4984b959c63f0c5320311f5810192e.
Reason for revert: Should be fixed?
Change-Id: I524a4e1e34473fed523070eeeb9d0f3d0b1de26c
|
|
upper_constraints_remove() macro allows to remove line
upper_constraints_version_change() allows to change versions
This way we have cleaner way to alter u-c in those images which need it.
Change-Id: I8fc354b8aa4d03fcd3ecfb9cbfe75de67492a0e3
|
|
With binary install type dropped there is no need for this macro.
Change-Id: I7bdd29eb48a23faa04a98e785129d97258f05e64
|
|
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
|
|
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
|
|
We can just use python3 - not longer need to tell which exactly like it
was in py2/py3 times.
Change-Id: Ib02f13cd2ad0037228e8975bd3fc37f41f23846f
|
|
As a project we never built RHEL based images so support for them
was not tested.
Change-Id: I27dfe34ade088228d71f6857ec4f3ab28ee63915
|
|
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
|
|
* "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
|
|
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
|
|
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
|
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
|
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
|
|
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
|
|
Change-Id: I2fe57f7cd79724fa8a36bd702d75b013a68ecd1b
|
|
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>
|
|
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
|
|
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
|
|
As there is no 'td-agent' package image build fails on 'x86-64'.
We have to wait for TD Agent 4.
Change-Id: I03d38628eee0f0823a58cba3a70df22f29022956
|
|
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
|
|
|
|
Change-Id: I51c4a4a139e87fd82f411d07683f62453889de9a
|
|
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
|
|
- 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
|
|
- 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
|
|
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
|
|
Add configuration to allow the switch between dnf/yum or provide an
alternative package manager.
Change-Id: I913769fcf5875a12b4561958cf7c90b74cd116ea
|
|
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
|
|
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
|
|
We have code for it in four places so it is a good candidate for macro.
Change-Id: Icadcbbe5b386bdf688fd67e8160b40974f047377
|
|
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
|
|
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
|
|
Change-Id: I1b2b3d6708bfcd58864e26e6c1fc618fb421e9a2
|
|
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
|
|
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
|
|
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
|
|
fluentd_plugins_install should contain only plugin installation operations,
so that the override does not have to handle irrelevant operations
Change-Id: I8f810d194a1e638683df1f445c187b8d98629730
|
|
/var/lib/apt/lists/ can take several MBs so get rid of them after
packages are installed.
Change-Id: Icfff55d92fa5c865f09db5112da28bf452a5a221
|