Ensure that the rally venv build is self contained

Rally ships it's own version of upper-constraints [1].

As we move openstack-ansible to using the new pip resolver this
causes several issues. The rally specific version of u-c contains
constraints for pip/setuptools/wheel which will inevitably be in
conflict with those in global-requirement-pins. This results in
several problems.

* Rally is branchless and so applying branch-specific versions
  of openstack u-c is incorrect

* Rally should be installed using the rally u-c rather than
  openstack u-c

* Rally should not use the repo server to build wheels as the repo
  server wheel build venv will have different versions of pip/
  setuptools/wheel to those specificed in rally u-c.

* Rally venv build should not be subject to openstack-ansible
  global-requirement-pins as these are in conflict with rally u-c.

This patch introduces the changes necessary to build rally in a self
contained manner on the utility host with no use of the repo server.
It also includes a revert of I73887784cbc3ce6089a42c67871dbc6c3d54acf6.

[1] https://opendev.org/openstack/rally-openstack/raw/branch/master/upper-constraints.txt

Change-Id: Idbd71ade1ab82d2d218e560b2f10c38116ff47e3
This commit is contained in:
Jonathan Rosser 2021-01-19 10:25:28 +00:00
parent 77944eef30
commit 03c7872536
4 changed files with 10 additions and 1 deletions

View File

@ -46,7 +46,7 @@ rally_database_connection_string: mysql+pymysql://{{ rally_galera_user }}:{{ ral
# NOTE(mnaser): This uses the Rally upper-constraints because it # NOTE(mnaser): This uses the Rally upper-constraints because it
# is branchless and maintains it's own constraints, # is branchless and maintains it's own constraints,
# outside of requirements. # outside of requirements.
rally_upper_constraints_url: "https://releases.openstack.org/constraints/upper/master" rally_upper_constraints_url: "https://opendev.org/openstack/rally-openstack/raw/branch/master/upper-constraints.txt"
rally_git_constraints: rally_git_constraints:
- "--constraint {{ rally_upper_constraints_url }}" - "--constraint {{ rally_upper_constraints_url }}"
rally_pip_packages: rally_pip_packages:

View File

@ -51,10 +51,13 @@
vars: vars:
venv_python_executable: "{{ rally_venv_python_executable }}" venv_python_executable: "{{ rally_venv_python_executable }}"
venv_build_constraints: "{{ rally_git_constraints }}" venv_build_constraints: "{{ rally_git_constraints }}"
venv_build_global_constraints: "{{ [] }}"
venv_build_distro_package_list: "{{ rally_devel_distro_packages }}"
venv_install_destination_path: "{{ rally_bin | dirname }}" venv_install_destination_path: "{{ rally_bin | dirname }}"
venv_install_distro_package_list: "{{ rally_distro_packages }}" venv_install_distro_package_list: "{{ rally_distro_packages }}"
venv_pip_install_args: "{{ rally_pip_install_args }}" venv_pip_install_args: "{{ rally_pip_install_args }}"
venv_pip_packages: "{{ rally_pip_packages }}" venv_pip_packages: "{{ rally_pip_packages }}"
venv_wheel_build_enable: false
venv_facts_when_changed: venv_facts_when_changed:
- section: "rally" - section: "rally"
option: "venv_tag" option: "venv_tag"

View File

@ -15,4 +15,7 @@
cache_timeout: 600 cache_timeout: 600
rally_devel_distro_packages:
- libpython3-dev
rally_distro_packages: [] rally_distro_packages: []

View File

@ -13,4 +13,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
rally_devel_distro_packages:
- python36-devel
rally_distro_packages: [] rally_distro_packages: []