5f7000e185
The current ansible bootstrap process tried to pin the versions of pip, setuptools and wheel on the host and also uses inherited python packages from the host. This causes problems when the host has a version of setuptools which is cannot be changed (perhaps due to some bug) or when the host has otherwise undesirable python packages. The ansible bootstrap process only needs to be concerned with whether pip is installed and understands how to use constraints. From there we can bootstrap the venv using get-pip and completely avoid package conflicts with the host. Once Ansible is bootstrapped, the pip_install role will ensure that pip, setuptools and wheel are correctly bootstrapped and pinned across all hosts. The pip_install role now uses constraints for the initial get-pip [1], so we can also remove the list of pip pins from group_vars. We remove pip, setuptools and wheel from the requirements.txt to allow the packages on the host to be installed in the bootstrap without forcing a change of pip/setuptools/wheel at the same time (which causes failures in some circumstances). [1] https://review.openstack.org/483905 Change-Id: Ida84fb6bb726e1332f0e29ade51b67a5721f0785
27 lines
1.1 KiB
YAML
27 lines
1.1 KiB
YAML
---
|
|
# Copyright 2017, Rackspace US, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
pip_install_package_state: "{{ package_state }}"
|
|
|
|
pip_links:
|
|
- { name: "openstack_release", link: "{{ repo_release_path }}/" }
|
|
pip_lock_to_internal_repo: "{{ (pip_links | length) >= 1 }}"
|
|
|
|
# The upper constraints to apply to all pip installations
|
|
pip_install_upper_constraints: "{{ repo_release_path }}/requirements_absolute_requirements.txt"
|
|
|
|
# The URL to retrieve the get-pip.py installation script
|
|
pip_upstream_url: "{{ (pip_offline_install | bool) | ternary('https://bootstrap.pypa.io/get-pip.py', repo_release_path ~ '/get-pip.py') }}"
|