As repo_build role has been succesfully replaced with
python_venv_build role, we have no need in it's futher maintaining and
releasing.
Depends-On: https://review.opendev.org/717715
Change-Id: Iaf1d6da8192afbbd18c64e2b58d54fa5804fe43c
Add file to the reno documentation build to show release notes for
stable/train.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/train.
Change-Id: I910dc1663e1d86b2169e14dac22e2069be716784
Sem-Ver: feature
Add file to the reno documentation build to show release notes for
stable/stein.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/stein.
Change-Id: I9ec8b24a1a3c8e7c0cc02a5f19772f6a4191431f
Sem-Ver: feature
Add an option to define a default set of python packages to install
within a virtual environment. This can be used to install a package
wihin a virtual environment that may be outside of a normal package
list but for a given service.
Change-Id: Iace13b8b4156b0aa6a919cf2b1f3a0c4376a74ee
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
Release notes are version independent, so remove version/release
values. We've found that projects now require the service package
to be installed in order to build release notes, and this is entirely
due to the current convention of pulling in the version information.
Release notes should not need installation in order to build, so this
unnecessary version setting needs to be removed.
This is needed for new release notes publishing, see
I56909152975f731a9d2c21b2825b972195e48ee8 and the discussion starting
at
http://lists.openstack.org/pipermail/openstack-dev/2017-November/124480.html
.
Change-Id: I53f389c07c2278e1646b6be17864797a043ef855
This patch implements an initial set of jobs intended to match
the current job execution method. It does not intend to improve
how the jobs are executed - only to replicate what is currently
in openstack-infra/openstack-zuul-jobs and provide the platform
to iterate on.
Change-Id: I075faca888afaad8a987e3113478747b4bd61067
As part of the docs migration work[0] for Pike we need to switch to use the
openstackdocstheme.
[0]https://review.openstack.org/#/c/472275/
Change-Id: I848f1cae03649076b6bf8ae28247164efcb3e4b1
Some tasks are no longer necessary in Pike
and the variable removed was deprecated in
Mitaka, so it's time to go.
Change-Id: Ibabe46967582929a441e66848c5267f0460a358b
The repo build role will now store all wheels and venvs in directories
containg information about the OS in which the bits were build on. The
intention here is to ensure that all installation are able to support
multi-OS without running into issues caused by system packages and
different core libs. This change builds upon the multi-archetecture
support we already have.
Closes-Bug: 1641131
Change-Id: I3f36afa307e02a38d73b860fc23ed94a09882c34
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
Now that the external repository management is done in pip-install
role, we don't need this wiring anymore.
Everything will be consistent across all the roles that include
pip-install.
Change-Id: I370135ab49dd75c2c3632b9f807b609c539bd4d6
Apt cannot have 2 mirrors with the same content in 2 different files.
If a deployer has an apt mirror with uca, the deployer
still need to add a repository, but will also need to define the
filename used, in order to avoid clashes.
This commit makes possible to decide the filename for the repo, and
has the same behavior as Newton, allowing a backport.
Change-Id: Ie95dc9a90ad1772dc2e938fb1432d37a9c01f131
Releasenote translation publishing is being prepared. 'locale_dirs'
needs to be defined in conf.py to generate translated version of the
release notes.
Note that this repository might not get translated release notes - or
no translations at all - but we add the entry here nevertheless to
prepare for it.
Change-Id: I9a9a9b8d28b54249f25aa85579fa5594d1ea0bfc
This change causes the contents of /etc/environment to be
evaluated so that deployments in environments with HTTP
proxies can be successful.
Change-Id: Ida2a0465bea8b87bcb7a71c61661852ac1417391
Closes-Bug: 1625405
This prevents pip SSL certificate verification failures in
environments with internally signed certificates by allowing the
certificate location to be specified in the pip_install_options
variable.
The pip_install_options variable is also added to the role defaults.
Change-Id: I447e5378254f88ac4fa87a9db3d34221a21e3685
Partial-Bug: 1621596
In order to make it easier to differentiate between the lists of
python packages, distribution packages, downloaded packages,
package pins and other similar variables the variable names are
being changed to ensure that they have a more explicit suffix
that defines the purpose and makes the naming more consistent.
This is to facilitate a lookup plugin which will be able to look
up all the package lists and present them as a consolidated piece
of data which may be used for artifact preparation.
Change-Id: I4f8accf0fd4f7a7de53c486fe389106181945f70
This patch adds support for building across multiple repo servers,
with artifacts for each CPU architecture being tagged appropriately,
then synchronizing the built artifacts back to the primary repo server
for distribution out to all repo servers deployed.
Partially Implements: bp/multi-arch-repo
Needed-By: I045de3ac8b81cadbcb34102f1a2db5bff74c32a6
Change-Id: I31756f8383e6d69d2f80caf6a85c4c5021bfc46d
The current repo build process clones all git repositories for all
OpenStack services, regardless of whether they're actually going to
be used.
To reduce the repo build time, this patch will only clone the
git repositories for OpenStack services where there is one or more
members in the service inventory group.
Depends-On: I6a0508e8aaa4993bc68e72e3d2988d6db6470f6d
Change-Id: I6e5a554d6f87058ef5cb63adf7995b066cb6fd78
The current repo build process builds wheels for all OpenStack services,
regardless of whether they're actually going to be used.
To reduce the repo build time, this patch will only build wheels for
OpenStack services where there is one or more members in the service
inventory group.
An updated set of test vars is included based on a recent stable/mitaka
output of the py_pkgs lookup based on the below-mentioned dependant
patch.
Depends-On: I5e981c818a1da50aa0ae15630655a8dfac4f3db7
Change-Id: Idda16b4f382eee57c7469af898859d6d81d4eb30
The current repo build process has the following issues:
1. The constraints consruction doesn't properly handle two constraints
which use the same name, but have different version specs. eg:
ovs===2.5.0;python_version=='2.7'
ovs===2.6.0.dev2;python_version=='3.4'
This is a problem in both the constraints construction, and
in the testing.
2. The pip packages installed on the repo server in order to
construct the repo do not respect the global pins or the upper
constraint overrides.
3. The constraints are selected based on the requirements specified.
This makes the process unnecessarily complex and hard to test.
4. The global pins are not applied to the constructed constraints,
so the wrong packages get built and installed.
5. The tests aren't thoroughly checking that the constraints are
correct.
This patch corrects all of these issues and hopefully makes the
mechanism for constructing constraints more readily apparent, and
therefore easier to maintain.
Change-Id: If52d073d43081468e2faf2cd063c4b211c29994f
Related-Bug: #1605846
Closes-Bug: #1609056
The current method of installing the distribution packages required is
set in the tasks and cannot be changed by a deployer.
Currently the apt task always installs the latest package. This results
in unexpected binary changes when a deployer may simply be trying to
execute a configuration change.
This patch adds the ability for a deployer to change the desired state
so that the results are predictable.
Change-Id: Ic570c4029b06918e223f21da02012f330911ad51
This patch adds a new list variable which allows a deployer to
override OpenStack's upper-constraints for the repo build
process.
Change-Id: I46ba9345a85c43f2a1f24ea1819132e7474e6909
Co-Authored-By: Jimmy McCrory <jimmy.mccrory@gmail.com>
This patch provides the ability for the repo server to take advantage
of a pre-staged git cache on the deployment host, such as that provided
on OpenStack-CI's nodes.
This reduces the execution time of the build process by:
- only executing a repo clone for invalid or missing repositories
- only updating the clone if the existing clone doesn't already have
the version required
Due to the way OpenStack-CI stages the cache (from a file based origin
which is not accessible) it is also necessary to adjust the origin
remote instead of creating a new remote as was done previously,
otherwise the 'git fetch' execution would fail.
The patch includes changes to the tests to pre-stage two repositories
and mangle them intentionally to test the resilience of the clone
process.
Change-Id: Ibe70ba27b9a716e9385a5db46cd745bc0d538d63
The pip_constraint_update filter overrides pip versions from the second
provided list to the first. Update the 'Set upper constraints' task so
that upper-constraints correctly take priority over the local
requirements packages versions.
A test has been included to validate that the role built package
constraints file is correctly applying the upper-constraints from the
openstack requirements repo.
Closes-Bug: 1605846
Change-Id: I53864a34f3ba56a84ed658fa3952aba3c509e0b1
The current repo build process builds venvs for all OpenStack services,
regardless of whether they're actually going to be used.
To reduce the repo build time, this patch will only build venvs for
OpenStack services where there is one or more members in the service
inventory group.
Change-Id: I01e6cdaa7a1a4aa07d2118c0badfea25b85b3249
When the UCA repo is enabled for nova, a newer version of libvirt will
be installed. The repo_build role will also need to have the UCA repo
enabled to install the same version of libvirt-dev so that a
corresponding libvirt-python wheel will be built.
The test preparation implements an override of the URL for OpenStack-CI
to make use of the local mirrors.
Change-Id: I6d5532e862e98929cff868f940c202875d1ee560
This patch updates the sphinx configuration for docs and releasenotes
to make it easier to replicate across repositories and to comply with
pep8 testing without exceptions.
Change-Id: I877356ceb4b5ed31fb4d6c939cc4b5afdd38ec66
This change enables our repo-build process to store the package sources
for all of our requirements within a given release. This change enables
the ability to have a multi-archetecture / multi-distro / multi-interpreter
deployment.
Because a python wheel can be tied to a particular archetecture, distro, or
interpreter wheels alone can not be relied on to power a mixed environment. The
source is needed to ensure pip is able to resolve a package depenedency even if
a pre-built wheel does not meet the python or system requirements. To enable
this a task has been added to the repo_build.yml file to first download all of
the sources in non-binary format, once downloaded the sources are used to build
all of the wheels locally.
Change-Id: Ib081c24f67e92c165cba14848ff86e20fe6c1530
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
Paramiko version 2.0 has been released. It now uses the Python library
cryptography. Installing this requires additional system packages. This
commit adds in the appropriate packages required by cryptography based
on its documentation [1].
An alternative approach would have been to constrain the version of
Paramiko however the project describes the 1.x versions as relying on
insecure dependencies [2].
[1] https://cryptography.io/en/latest/installation/
[2] http://www.paramiko.org/installing.html
Change-Id: I57c9ca3f0d0163d9345f892f780c699b930a6942