repo: stop using repo_build + pip_install

This patch removes all references and stops using repo_build as
all the integrated roles have their wheels and virtualenvs
built inside the role.

This patch removes all references and usage of pip_install as we
no longer need to do this.

Change-Id: Ie48b738c9281578e48b1811481d2a8da3832dc1b
This commit is contained in:
Mohammed Naser 2019-03-28 13:32:54 -04:00 committed by Jesse Pretorius
parent 1f1cca42c5
commit c0db5c423b
22 changed files with 72 additions and 479 deletions

View File

@ -13,11 +13,6 @@
src: https://git.openstack.org/openstack/ansible-config_template src: https://git.openstack.org/openstack/ansible-config_template
version: master version: master
trackbranch: master trackbranch: master
- name: pip_install
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-pip_install
version: master
trackbranch: master
- name: galera_client - name: galera_client
scm: git scm: git
src: https://git.openstack.org/openstack/openstack-ansible-galera_client src: https://git.openstack.org/openstack/openstack-ansible-galera_client
@ -208,11 +203,6 @@
src: https://git.openstack.org/openstack/openstack-ansible-rabbitmq_server src: https://git.openstack.org/openstack/openstack-ansible-rabbitmq_server
version: master version: master
trackbranch: master trackbranch: master
- name: repo_build
scm: git
src: https://git.openstack.org/openstack/openstack-ansible-repo_build
version: master
trackbranch: master
- name: repo_server - name: repo_server
scm: git scm: git
src: https://git.openstack.org/openstack/openstack-ansible-repo_server src: https://git.openstack.org/openstack/openstack-ansible-repo_server

View File

@ -118,8 +118,6 @@ Infrastructure service roles
- :role_docs:`rabbitmq_server` - :role_docs:`rabbitmq_server`
- :role_docs:`repo_build`
- :role_docs:`repo_server` - :role_docs:`repo_server`
- :role_docs:`rsyslog_server` - :role_docs:`rsyslog_server`
@ -184,8 +182,6 @@ Other roles
- :role_docs:`lxc_hosts` - :role_docs:`lxc_hosts`
- :role_docs:`pip_install`
- :role_docs:`plugins` - :role_docs:`plugins`
- :role_docs:`openstack_hosts` - :role_docs:`openstack_hosts`

View File

@ -48,13 +48,23 @@ actively mirror the entire upstream PyPi repository but this may require
a significant amount of storage. Alternatively a caching pip proxy a significant amount of storage. Alternatively a caching pip proxy
can be used to retain local copies of only those packages which are required. can be used to retain local copies of only those packages which are required.
Example OpenStack-Ansible configuration for specifying a local pip mirror or In order to configure the build to use an alternative index, create the file
proxy: `/etc/pip.conf` with the following content and ensure that it is placed on
all hosts in the environment.
.. code-block:: shell-session
[global]
index-url = http://pip.example.org/simple
Then, in `/etc/openstack_deploy/user_variables.yml`, inform the deployment
that it needs to copy that file from the host into the container cache image.
.. code-block:: yaml .. code-block:: yaml
# Custom upstream pip index used when building repo server contents # Copy these files from the host into the containers
repo_build_pip_default_index: http://pip.example.org/simple lxc_container_cache_files_from_host:
- /etc/pip.conf
Distribution specific packages Distribution specific packages
------------------------------ ------------------------------

View File

@ -1,21 +0,0 @@
---
# 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 }}"
# Allow the deployer to force pip to download locally to the deployment host
# and copy it to the remote container for installation. Useful for environments
# where the containers lack internet access.
pip_offline_install: false

View File

@ -15,61 +15,3 @@
# Ensure that the package state matches the global setting # Ensure that the package state matches the global setting
repo_server_package_state: "{{ package_state }}" repo_server_package_state: "{{ package_state }}"
repo_build_package_state: "{{ package_state }}"
# Optionally set this variable to the location on the deployment
# host where a set of git clones may be sourced to stage the repo
# server.
#repo_build_git_cache: /opt/git/openstack/
# The folder in the repo container where the git clones should
# be synchronised to.
repo_build_git_dir: /var/www/repo/openstackgit
# The folder in the repo container which is bind-mounted to
# the host.
repo_service_home_folder: /var/www
# The folder on the repo container's host which will hold
# the git clones via the container-host bind-mount
repo_build_git_bind_mount: "/openstack/{{ inventory_hostname }}{{ repo_build_git_dir | replace(repo_service_home_folder, '') }}"
# The appropriate user:group names for the repo_build_git_dir
# folder/file attributes.
repo_service_user_name: nginx
repo_service_group_name: www-data
# Ensure that the repo service and the repo build use the same user:group
repo_build_service_user_name: "{{ repo_service_user_name }}"
repo_build_service_group_name: "{{ repo_service_group_name }}"
# The following package must always build from source.
#
# libvirt-python:
# A pre-built wheel can be missing libvirt capabilities from the installed
# version of libvirt-bin, leading to nova-compute failing to start.
#
# NOTE(hwoarang) cryptography may bundle openssl in the wheel and that
# causes symbol conflicts if a different openssl is provided by the
# distribution. As such, it's probably safer to re-build cryptography
# ourselves just to be sure that the correct distro libraries are used
# see https://github.com/pyca/cryptography/issues/3804
# This keeps popping up every now and then so it might worth keeping this
# around even if the upstream issue is resolved
# The upstream issue should be resolved now, and we are testing
# cryptography with the usage of wheels by removing it from no_binary.
repo_build_pip_no_binary:
- libvirt-python
# Set the build tag and the repo version
repo_build_release_tag: "{{ openstack_release }}"
repo_build_os_distro_version: "{{ os_distro_version }}"
# This is required because the nova package list has a conditional package
# based on this var.
nova_barbican_enabled: "{{ hostvars['localhost']['nova_barbican_enabled'] }}"
pkg_locations:
- "{{ playbook_dir }}/../"
- /etc/ansible/roles
- /etc/openstack_deploy

View File

@ -1,83 +0,0 @@
---
# Copyright 2016, 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.
# This set of tasks checks whether the repo is up yet. If it is it
# will use it as the source for constraints and as the default index.
# If it is not yet up, then it will use the upstream upper constraints
# for the SHA currently pinned and will set the default index to pypi.
- name: Backup the default pip_install_upper_constraints
run_once: yes
set_fact:
__pip_install_upper_constraints: "{{ pip_install_upper_constraints }}"
when:
- __pip_install_upper_constraints is not defined
- name: Backup the default pip_default_index
run_once: yes
set_fact:
__pip_default_index: "{{ pip_default_index }}"
when:
- __pip_default_index is not defined
- name: Test internal repo URL for the current upper constraints file
run_once: yes
uri:
url: "{{ __pip_install_upper_constraints }}"
method: "HEAD"
timeout: 3
register: upper_constraints_check
failed_when: false
tags:
- common-constraints
- name: Remove global requirement pins file from host
file:
path: "/opt/global-requirement-pins.txt"
state: absent
when: (upper_constraints_check.status | default(503)) == 200
tags:
- common-constraints
- name: Copy global requirement pins file to host
copy:
src: "../global-requirement-pins.txt"
dest: "/opt/global-requirement-pins.txt"
when: (upper_constraints_check.status | default(503)) != 200
tags:
- common-constraints
- name: Set pip install upper constraints
run_once: yes
set_fact:
pip_install_upper_constraints: >-
{{ ((upper_constraints_check.status | default(503)) != 200) | ternary(__upstream_constraints, __pip_install_upper_constraints) }}
vars:
# Use https when Python with native SNI support is available
__pip_install_upper_constraints_proto: "{{ (ansible_python_version is version_compare('2.7.9', '>=')) | ternary('https','http') }}"
__upstream_constraints: >-
/opt/global-requirement-pins.txt
--constraint {{ __pip_install_upper_constraints_proto }}://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?id={{ requirements_git_install_branch | regex_replace(' #.*$','') }}
tags:
- common-constraints
- name: Fall back to repo_build_pip_default_index
run_once: yes
set_fact:
pip_default_index: >-
{{ ((upper_constraints_check.status | default(503)) != 200) | ternary(repo_build_pip_default_index | default('https://pypi.python.org/simple'), __pip_default_index) }}
tags:
- common-constraints

View File

@ -73,8 +73,6 @@
pre_tasks: pre_tasks:
- include_tasks: common-tasks/package-cache-proxy.yml - include_tasks: common-tasks/package-cache-proxy.yml
when: install_method == "source" when: install_method == "source"
- include_tasks: common-tasks/set-pip-vars.yml
when: install_method == "source"
roles: roles:
- role: "openstack_hosts" - role: "openstack_hosts"
is_container: true is_container: true

View File

@ -24,8 +24,6 @@
tags: tags:
- lxc-hosts - lxc-hosts
pre_tasks: pre_tasks:
- include_tasks: common-tasks/set-pip-vars.yml
when: install_method == "source"
- name: Check the state of the default LXC service log directory - name: Check the state of the default LXC service log directory
stat: stat:
path: "/var/log/lxc" path: "/var/log/lxc"

View File

@ -110,9 +110,6 @@
- include_tasks: common-tasks/package-cache-proxy.yml - include_tasks: common-tasks/package-cache-proxy.yml
when: install_method == "source" when: install_method == "source"
- include_tasks: common-tasks/set-pip-vars.yml
when: install_method == "source"
roles: roles:
- role: "openstack_hosts" - role: "openstack_hosts"
is_container: true is_container: true

View File

@ -65,8 +65,3 @@ trove_install_method: distro
watcher_install_method: distro watcher_install_method: distro
zaqar_install_method: distro zaqar_install_method: distro
zun_install_method: distro zun_install_method: distro
# default variables for PIP since we are not using the repo server
pip_default_index: "https://pypi.python.org/simple"
tempest_venv_download: false

View File

@ -26,18 +26,3 @@ repo_release_path: "{{ openstack_repo_url }}/os-releases/{{ openstack_release }}
## OpenStack source options ## OpenStack source options
openstack_repo_url: "http://{{ internal_lb_vip_address }}:{{ repo_server_port }}" openstack_repo_url: "http://{{ internal_lb_vip_address }}:{{ repo_server_port }}"
openstack_repo_git_url: "git://{{ internal_lb_vip_address }}" openstack_repo_git_url: "git://{{ internal_lb_vip_address }}"
venv_base_download_url: "{{ openstack_repo_url }}/venvs/{{ openstack_release }}/{{ os_distro_version }}"
tempest_venv_download_url: "{{ venv_base_download_url }}/tempest-{{ openstack_release }}-{{ ansible_architecture | lower }}.tgz"
# The URL to the repo server's pypi reverse proxy simple index
pip_default_index: "{{ openstack_repo_url }}/simple"
# The upper constraints to apply to all pip installations
pip_install_upper_constraints: "{{ repo_release_path }}/requirements_absolute_requirements.txt"
# locations for fetching the default files from the git source
gnocchi_git_config_lookup_location: "{{ openstack_repo_url }}/openstackgit/gnocchi"
# locations for fetching the default files from the git source
ceilometer_git_config_lookup_location: "{{ openstack_repo_url }}/openstackgit/ceilometer"
# locations for fetching the default files from the git source
tacker_git_config_lookup_location: "{{ openstack_repo_url }}/openstackgit/tacker"
# locations for fetching the default files from the git source
keystone_git_config_lookup_location: "{{ openstack_repo_url }}/openstackgit/keystone"

View File

@ -188,10 +188,6 @@
venv_install_destination_path: "{{ venv_path }}" venv_install_destination_path: "{{ venv_path }}"
venv_pip_packages: venv_pip_packages:
- pika - pika
venv_build_host_wheel_path: "{{ repo_pypiserver_package_path | default('/var/www/repo/pools') }}"
venv_pip_install_args: >-
--index-url {{ repo_build_pip_default_index | default('https://pypi.python.org/simple') }}
--trusted-host {{ (repo_build_pip_default_index | default('https://pypi.python.org/simple')) | urlsplit('hostname') }}
- name: Copying test script - name: Copying test script
copy: copy:
src: "../scripts/rabbitmq-test.py" src: "../scripts/rabbitmq-test.py"

View File

@ -52,8 +52,6 @@
- include_tasks: common-tasks/package-cache-proxy.yml - include_tasks: common-tasks/package-cache-proxy.yml
when: install_method == "source" when: install_method == "source"
- include_tasks: common-tasks/set-pip-vars.yml
when: install_method == "source"
roles: roles:
- role: "openstack_hosts" - role: "openstack_hosts"
vars_files: vars_files:

View File

@ -1,102 +0,0 @@
---
# Copyright 2015, 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.
- name: Group repo servers by architecture
hosts: repo_all
# Serial 1 avoids race conditions, and makes sures the repo_servers
# are added in the same order as the repo_all inventory
serial: 1
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
tasks:
- name: Group repo servers by architecture and os version
group_by:
key: repo_servers_{{ ansible_distribution_version }}_{{ ansible_architecture }}
tags:
- always
- repo-build
# Use the 'add_host' module to create the repo_masters group which consists of a
# single host in each distribution/architecture combination. This ensures that
# the repo build happens per architecture and per distribution, covering the needs
# of each of these combinations when deploying.
- name: Prepare group of master repo servers
hosts: localhost
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
tasks:
- name: Prepare group of master repo servers
add_host:
name: "{{ groups[item][0] }}"
groups: repo_masters
with_items: "{{ groups | select('match', '^repo_servers_') | list }}"
changed_when: false
tags:
- always
- repo-build
- name: Build new repo packages for a given release
hosts: repo_masters
gather_facts: "{{ osa_gather_facts | default(True) }}"
any_errors_fatal: true
user: root
serial: 1
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
- include_tasks: common-tasks/set-pip-vars.yml
- name: Load local packages
debug:
msg: "Loading Packages"
with_py_pkgs: "{{ pkg_locations }}"
register: local_packages
tags:
- always
- name: Check if the git cache exists on deployment host
local_action:
module: stat
path: "{{ repo_build_git_cache }}"
register: _local_git_cache
when: repo_build_git_cache is defined
- name: Synchronise the contents of the git cache to the repo server
synchronize:
src: "{{ repo_build_git_cache }}"
dest: "{{ repo_build_git_dir }}"
when:
- _local_git_cache.stat is defined
- _local_git_cache.stat.exists
roles:
- role: "repo_build"
vars_files:
- defaults/repo_packages/openstack_services.yml
- "defaults/{{ install_method }}_install.yml"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- repo-build

View File

@ -13,5 +13,51 @@
# 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.
- import_playbook: repo-server.yml - name: Setup repo servers
- import_playbook: repo-build.yml hosts: repo_all
gather_facts: "{{ osa_gather_facts | default(True) }}"
user: root
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
- include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
vars:
list_of_bind_mounts:
- mount_path: "/openstack/{{ inventory_hostname }}"
bind_dir_path: "/var/www"
when: not is_metal
- include_tasks: common-tasks/unbound-clients.yml
when:
- hostvars['localhost']['resolvconf_enabled'] | bool
roles:
- role: "repo_server"
post_tasks:
- include_tasks: "common-tasks/rsyslog-client.yml"
vars:
rsyslog_client_log_rotate_file: "{{ rsyslog_var.log_rotate_file }}"
rsyslog_client_log_dir: "{{ rsyslog_var.log_dir }}"
rsyslog_client_log_files: "{{ rsyslog_var.log_files | default([]) }}"
rsyslog_client_config_name: "{{ rsyslog_var.config_name }}"
with_items:
- log_rotate_file: lsyncd_log_rotate
log_dir: "/var/log/lsyncd"
config_name: "99-lsyncd-rsyslog-client.conf"
- log_rotate_file: repo_nginx_log_rotate
log_dir: "/var/log/nginx"
log_files:
- /var/log/rsyncd.log
config_name: "99-repo-nginx-rsyslog-client.conf"
loop_control:
loop_var: rsyslog_var
vars_files:
- defaults/repo_packages/openstack_services.yml
- "defaults/{{ install_method }}_install.yml"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- repo-server

View File

@ -1,75 +0,0 @@
---
# Copyright 2014, 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.
- name: Setup repo servers
hosts: repo_all
gather_facts: "{{ osa_gather_facts | default(True) }}"
user: root
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
- include_tasks: common-tasks/set-pip-vars.yml
- name: Check if the git cache exists on deployment host
local_action:
module: stat
path: "{{ repo_build_git_cache }}"
register: _local_git_cache
when: repo_build_git_cache is defined
- include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
vars:
list_of_bind_mounts:
- mount_path: "/openstack/{{ inventory_hostname }}"
bind_dir_path: "/var/www"
when: not is_metal
- include_tasks: common-tasks/unbound-clients.yml
when:
- hostvars['localhost']['resolvconf_enabled'] | bool
roles:
- role: "repo_server"
post_tasks:
- include_tasks: "common-tasks/rsyslog-client.yml"
vars:
rsyslog_client_log_rotate_file: "{{ rsyslog_var.log_rotate_file }}"
rsyslog_client_log_dir: "{{ rsyslog_var.log_dir }}"
rsyslog_client_log_files: "{{ rsyslog_var.log_files | default([]) }}"
rsyslog_client_config_name: "{{ rsyslog_var.config_name }}"
with_items:
- log_rotate_file: pypiserver_log_rotate
log_dir: "/var/log/pypiserver"
config_name: "99-pypiserver-rsyslog-client.conf"
- log_rotate_file: lsyncd_log_rotate
log_dir: "/var/log/lsyncd"
config_name: "99-lsyncd-rsyslog-client.conf"
- log_rotate_file: repo_nginx_log_rotate
log_dir: "/var/log/nginx"
log_files:
- /var/log/rsyncd.log
config_name: "99-repo-nginx-rsyslog-client.conf"
loop_control:
loop_var: rsyslog_var
vars_files:
- defaults/repo_packages/openstack_services.yml
- "defaults/{{ install_method }}_install.yml"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- repo-server

View File

@ -1,37 +0,0 @@
---
# 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.
- name: Configure all nodes to use the repo container for python/apt packages
hosts: "{{ openstack_host_group | default('hosts') }}:all_containers"
vars:
pip_install: no
pip_configure: yes
vars_files:
- "defaults/repo_packages/openstack_services.yml"
- "defaults/{{ install_method }}_install.yml"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- always
- repo-config
pre_tasks:
- name: End playbook
meta: end_play
when:
- (install_method | default('source')) != "source"
- include_tasks: common-tasks/package-cache-proxy.yml
- include_tasks: common-tasks/set-pip-vars.yml
roles:
- pip_install

View File

@ -16,10 +16,6 @@
- import_playbook: unbound-install.yml - import_playbook: unbound-install.yml
- import_playbook: repo-install.yml - import_playbook: repo-install.yml
- import_playbook: haproxy-install.yml - import_playbook: haproxy-install.yml
# TODO(evrardjp): Remove the following when repo_build is done
# before lxc_container_create, and haproxy is moved with it as
# second step.
- import_playbook: repo-use.yml
- import_playbook: utility-install.yml - import_playbook: utility-install.yml
- import_playbook: memcached-install.yml - import_playbook: memcached-install.yml
- import_playbook: galera-install.yml - import_playbook: galera-install.yml

View File

@ -19,7 +19,10 @@
gather_facts: "{{ osa_gather_facts | default(True) }}" gather_facts: "{{ osa_gather_facts | default(True) }}"
environment: "{{ deployment_environment_variables | default({}) }}" environment: "{{ deployment_environment_variables | default({}) }}"
vars_files: vars_files:
- "defaults/repo_packages/openstack_services.yml"
- "defaults/{{ install_method }}_install.yml" - "defaults/{{ install_method }}_install.yml"
vars:
utility_upper_constraints_url: "{{ requirements_git_url | default('https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=' ~ requirements_git_install_branch | default('master')) }}"
tags: tags:
- utility - utility
pre_tasks: pre_tasks:
@ -81,7 +84,7 @@
block: block:
- name: Get list of repo packages - name: Get list of repo packages
uri: uri:
url: "{{ repo_release_path }}/requirements_absolute_requirements.txt" url: "{{ utility_upper_constraints_url }}"
return_content: yes return_content: yes
register: _abs_reqs register: _abs_reqs
run_once: true run_once: true
@ -93,7 +96,7 @@
_openstack_client_list: >- _openstack_client_list: >-
{%- set package_list = [] %} {%- set package_list = [] %}
{%- for l in _abs_reqs.content.split('\n') %} {%- for l in _abs_reqs.content.split('\n') %}
{%- if (l is match('^python_.*client==.*$')) or (l is match('^(aodh|gnocchi)client==.*$')) %} {%- if (l is match('^python-.*client==.*$')) or (l is match('^(aodh|gnocchi)client==.*$')) %}
{%- set _ = package_list.append(l | regex_replace('==.*$', '')) %} {%- set _ = package_list.append(l | regex_replace('==.*$', '')) %}
{%- endif %} {%- endif %}
{%- endfor %} {%- endfor %}
@ -107,14 +110,14 @@
name: "python_venv_build" name: "python_venv_build"
vars: vars:
venv_install_destination_path: "{{ utility_venv_bin | dirname }}" venv_install_destination_path: "{{ utility_venv_bin | dirname }}"
venv_pip_install_args: >- venv_pip_install_args: "{{ pip_install_options | default('') }}"
{{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''),'') }} venv_build_constraints:
{{ pip_install_options | default('') }} - "--constraint {{ utility_upper_constraints_url }}"
venv_pip_packages: "{{ _openstack_client_list | union(utility_pip_packages) }}" venv_pip_packages: "{{ _openstack_client_list | union(utility_pip_packages) }}"
- name: Create symlinks for openstack clients - name: Create symlinks for openstack clients
shell: | shell: |
{% set _bin_name = item | regex_replace('^(?:python_)?(\w*)(?:client)$', '\\1') %} {% set _bin_name = item | regex_replace('^(?:python-)?(\w*)(?:client)$', '\\1') %}
if [[ -e "{{ utility_venv_bin }}/{{ _bin_name }}" ]]; then if [[ -e "{{ utility_venv_bin }}/{{ _bin_name }}" ]]; then
ln -sfn {{ utility_venv_bin }}/{{ _bin_name }} /usr/local/bin/{{ _bin_name }} ln -sfn {{ utility_venv_bin }}/{{ _bin_name }} /usr/local/bin/{{ _bin_name }}
fi fi

View File

@ -25,10 +25,6 @@
environment: "{{ deployment_environment_variables | default({}) }}" environment: "{{ deployment_environment_variables | default({}) }}"
vars: vars:
ansible_python_interpreter: "/usr/bin/python" ansible_python_interpreter: "/usr/bin/python"
pip_install_upper_constraints_proto: "{{ ansible_python_version | version_compare('2.7.9', '>=') | ternary('https','http') }}"
pip_install_upper_constraints: >-
{{ (playbook_dir ~ '/../global-requirement-pins.txt') | realpath }}
--constraint {{ pip_install_upper_constraints_proto }}://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?id={{ requirements_git_install_branch | regex_replace(' #.*$','') }}
sftp_subsystem: sftp_subsystem:
'apt': 'sftp /usr/lib/openssh/sftp-server' 'apt': 'sftp /usr/lib/openssh/sftp-server'
'yum': 'sftp /usr/libexec/openssh/sftp-server' 'yum': 'sftp /usr/libexec/openssh/sftp-server'

View File

@ -78,7 +78,6 @@
echo "lxc_centos_package_baseurl: 'http://${NODEPOOL_MIRROR_HOST}:8080/copr-lxc2/epel-7-x86_64/'" >> ${NODEPOOL_OVERRIDES} echo "lxc_centos_package_baseurl: 'http://${NODEPOOL_MIRROR_HOST}:8080/copr-lxc2/epel-7-x86_64/'" >> ${NODEPOOL_OVERRIDES}
echo "lxc_centos_package_key: 'http://${NODEPOOL_MIRROR_HOST}:8080/copr-lxc2/pubkey.gpg'" >> ${NODEPOOL_OVERRIDES} echo "lxc_centos_package_key: 'http://${NODEPOOL_MIRROR_HOST}:8080/copr-lxc2/pubkey.gpg'" >> ${NODEPOOL_OVERRIDES}
echo "nova_virt_type: 'qemu'" >> ${NODEPOOL_OVERRIDES} echo "nova_virt_type: 'qemu'" >> ${NODEPOOL_OVERRIDES}
echo "repo_build_pip_default_index: '${NODEPOOL_PYPI_MIRROR}'" >> ${NODEPOOL_OVERRIDES}
# NOTE(mnaser): We need to make sure we pull the latest RDO mirror # NOTE(mnaser): We need to make sure we pull the latest RDO mirror
# which is hashed to avoid cache going stale during CI. # which is hashed to avoid cache going stale during CI.
@ -95,17 +94,6 @@
tags: tags:
- skip_ansible_lint - skip_ansible_lint
- name: Discover the OpenStack-Infra pypi/wheel mirror
shell: |
source /etc/ci/mirror_info.sh
echo "${NODEPOOL_PYPI_MIRROR}"
echo "${NODEPOOL_WHEEL_MIRROR}"
args:
executable: /bin/bash
register: _pypi_wheel_mirror
tags:
- skip_ansible_lint
- name: Discover the OpenStack-Infra LXC reverse proxy - name: Discover the OpenStack-Infra LXC reverse proxy
shell: | shell: |
source /etc/ci/mirror_info.sh source /etc/ci/mirror_info.sh
@ -133,18 +121,6 @@
- "91.189.91.21 images.linuxcontainers.org us.images.linuxcontainers.org" - "91.189.91.21 images.linuxcontainers.org us.images.linuxcontainers.org"
- "91.189.88.37 images.linuxcontainers.org uk.images.linuxcontainers.org" - "91.189.88.37 images.linuxcontainers.org uk.images.linuxcontainers.org"
- name: Set facts when outside of OpenStack-Infra
when:
- not nodepool_dir.stat.exists
block:
- name: Determine the fastest available OpenStack-Infra wheel mirror
command: "{{ bootstrap_host_aio_script_path }}/fastest-infra-wheel-mirror.py"
register: fastest_wheel_mirror
- name: Set repo_build_pip_extra_indexes fact
set_fact:
repo_build_pip_extra_indexes: "{{ fastest_wheel_mirror.stdout_lines }}"
# NOTE(mhayden): The OpenStack CI images for CentOS 7 recently set SELinux to # NOTE(mhayden): The OpenStack CI images for CentOS 7 recently set SELinux to
# Enforcing mode by default. While I am normally a supporter of this change, # Enforcing mode by default. While I am normally a supporter of this change,
# the SELinux policy work for CentOS 7 is not done yet. # the SELinux policy work for CentOS 7 is not done yet.

View File

@ -158,12 +158,6 @@ lxc_net_address: 10.255.255.1
lxc_net_netmask: 255.255.255.0 lxc_net_netmask: 255.255.255.0
lxc_net_dhcp_range: 10.255.255.2,10.255.255.253 lxc_net_dhcp_range: 10.255.255.2,10.255.255.253
{% if repo_build_pip_extra_indexes is defined and repo_build_pip_extra_indexes | length > 0 %}
## Wheel mirrors for the repo_build to use
repo_build_pip_extra_indexes:
{{ repo_build_pip_extra_indexes | to_nice_yaml }}
{% endif %}
{% if _lxc_mirror is defined and _lxc_mirror.stdout_lines is defined %} {% if _lxc_mirror is defined and _lxc_mirror.stdout_lines is defined %}
## images.linuxcontainers.org reverse proxy ## images.linuxcontainers.org reverse proxy
lxc_image_cache_server_mirrors: lxc_image_cache_server_mirrors:
@ -199,11 +193,6 @@ nova_service_negate:
- "nova-agent.service" - "nova-agent.service"
- "nova-resetnetwork.service" - "nova-resetnetwork.service"
{% if _pypi_wheel_mirror is defined and _pypi_wheel_mirror.stdout_lines is defined %}
repo_build_pip_extra_indexes:
- "{{ _pypi_wheel_mirror.stdout_lines[1] }}"
{% endif %}
# Set all the distros to the same value: a "quiet" print # Set all the distros to the same value: a "quiet" print
# of kernel log messages. # of kernel log messages.
openstack_user_kernel_options: openstack_user_kernel_options: