From c0db5c423b615da729f25f260934fec2a2eed3df Mon Sep 17 00:00:00 2001 From: Mohammed Naser Date: Thu, 28 Mar 2019 13:32:54 -0400 Subject: [PATCH] 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 --- ansible-role-requirements.yml | 10 -- deploy-guide/source/configure.rst | 4 - .../user/limited-connectivity/index.rst | 18 +++- inventory/group_vars/all/pip.yml | 21 ---- inventory/group_vars/repo_all.yml | 60 +---------- playbooks/common-tasks/set-pip-vars.yml | 83 -------------- playbooks/containers-lxc-create.yml | 2 - playbooks/containers-lxc-host.yml | 2 - playbooks/containers-nspawn-create.yml | 3 - playbooks/defaults/distro_install.yml | 5 - playbooks/defaults/source_install.yml | 15 --- playbooks/healthcheck-infrastructure.yml | 4 - playbooks/openstack-hosts-setup.yml | 2 - playbooks/repo-build.yml | 102 ------------------ playbooks/repo-install.yml | 50 ++++++++- playbooks/repo-server.yml | 75 ------------- playbooks/repo-use.yml | 37 ------- playbooks/setup-infrastructure.yml | 4 - playbooks/utility-install.yml | 15 +-- tests/bootstrap-aio.yml | 4 - .../tasks/prepare_aio_config.yml | 24 ----- .../templates/user_variables.aio.yml.j2 | 11 -- 22 files changed, 72 insertions(+), 479 deletions(-) delete mode 100644 inventory/group_vars/all/pip.yml delete mode 100644 playbooks/common-tasks/set-pip-vars.yml delete mode 100644 playbooks/repo-build.yml delete mode 100644 playbooks/repo-server.yml delete mode 100644 playbooks/repo-use.yml diff --git a/ansible-role-requirements.yml b/ansible-role-requirements.yml index 6629d4fdce..ea2763f9e5 100644 --- a/ansible-role-requirements.yml +++ b/ansible-role-requirements.yml @@ -13,11 +13,6 @@ src: https://git.openstack.org/openstack/ansible-config_template version: 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 scm: git src: https://git.openstack.org/openstack/openstack-ansible-galera_client @@ -208,11 +203,6 @@ src: https://git.openstack.org/openstack/openstack-ansible-rabbitmq_server version: 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 scm: git src: https://git.openstack.org/openstack/openstack-ansible-repo_server diff --git a/deploy-guide/source/configure.rst b/deploy-guide/source/configure.rst index 09ec363c53..e50a171374 100644 --- a/deploy-guide/source/configure.rst +++ b/deploy-guide/source/configure.rst @@ -118,8 +118,6 @@ Infrastructure service roles - :role_docs:`rabbitmq_server` -- :role_docs:`repo_build` - - :role_docs:`repo_server` - :role_docs:`rsyslog_server` @@ -184,8 +182,6 @@ Other roles - :role_docs:`lxc_hosts` -- :role_docs:`pip_install` - - :role_docs:`plugins` - :role_docs:`openstack_hosts` diff --git a/doc/source/user/limited-connectivity/index.rst b/doc/source/user/limited-connectivity/index.rst index fba5a509b0..e31debefa7 100644 --- a/doc/source/user/limited-connectivity/index.rst +++ b/doc/source/user/limited-connectivity/index.rst @@ -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 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 -proxy: +In order to configure the build to use an alternative index, create the file +`/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 - # Custom upstream pip index used when building repo server contents - repo_build_pip_default_index: http://pip.example.org/simple + # Copy these files from the host into the containers + lxc_container_cache_files_from_host: + - /etc/pip.conf Distribution specific packages ------------------------------ diff --git a/inventory/group_vars/all/pip.yml b/inventory/group_vars/all/pip.yml deleted file mode 100644 index d7df458d57..0000000000 --- a/inventory/group_vars/all/pip.yml +++ /dev/null @@ -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 diff --git a/inventory/group_vars/repo_all.yml b/inventory/group_vars/repo_all.yml index 3992905c7d..0b582ce27a 100644 --- a/inventory/group_vars/repo_all.yml +++ b/inventory/group_vars/repo_all.yml @@ -14,62 +14,4 @@ # limitations under the License. # Ensure that the package state matches the global setting -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 +repo_server_package_state: "{{ package_state }}" \ No newline at end of file diff --git a/playbooks/common-tasks/set-pip-vars.yml b/playbooks/common-tasks/set-pip-vars.yml deleted file mode 100644 index 3887321d7c..0000000000 --- a/playbooks/common-tasks/set-pip-vars.yml +++ /dev/null @@ -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 diff --git a/playbooks/containers-lxc-create.yml b/playbooks/containers-lxc-create.yml index fedff37a24..a55ca2b4d8 100644 --- a/playbooks/containers-lxc-create.yml +++ b/playbooks/containers-lxc-create.yml @@ -73,8 +73,6 @@ pre_tasks: - include_tasks: common-tasks/package-cache-proxy.yml when: install_method == "source" - - include_tasks: common-tasks/set-pip-vars.yml - when: install_method == "source" roles: - role: "openstack_hosts" is_container: true diff --git a/playbooks/containers-lxc-host.yml b/playbooks/containers-lxc-host.yml index 24d2b8ef61..b95aa702e0 100644 --- a/playbooks/containers-lxc-host.yml +++ b/playbooks/containers-lxc-host.yml @@ -24,8 +24,6 @@ tags: - lxc-hosts 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 stat: path: "/var/log/lxc" diff --git a/playbooks/containers-nspawn-create.yml b/playbooks/containers-nspawn-create.yml index 1f886d41a4..b2408a2a46 100644 --- a/playbooks/containers-nspawn-create.yml +++ b/playbooks/containers-nspawn-create.yml @@ -110,9 +110,6 @@ - include_tasks: common-tasks/package-cache-proxy.yml when: install_method == "source" - - - include_tasks: common-tasks/set-pip-vars.yml - when: install_method == "source" roles: - role: "openstack_hosts" is_container: true diff --git a/playbooks/defaults/distro_install.yml b/playbooks/defaults/distro_install.yml index 64fa3c5fca..447d2d8c89 100644 --- a/playbooks/defaults/distro_install.yml +++ b/playbooks/defaults/distro_install.yml @@ -65,8 +65,3 @@ trove_install_method: distro watcher_install_method: distro zaqar_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 diff --git a/playbooks/defaults/source_install.yml b/playbooks/defaults/source_install.yml index 0f5d0639cb..d0d1d9f0ac 100644 --- a/playbooks/defaults/source_install.yml +++ b/playbooks/defaults/source_install.yml @@ -26,18 +26,3 @@ repo_release_path: "{{ openstack_repo_url }}/os-releases/{{ openstack_release }} ## OpenStack source options openstack_repo_url: "http://{{ internal_lb_vip_address }}:{{ repo_server_port }}" 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" diff --git a/playbooks/healthcheck-infrastructure.yml b/playbooks/healthcheck-infrastructure.yml index f232805948..59405d33c1 100644 --- a/playbooks/healthcheck-infrastructure.yml +++ b/playbooks/healthcheck-infrastructure.yml @@ -188,10 +188,6 @@ venv_install_destination_path: "{{ venv_path }}" venv_pip_packages: - 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 copy: src: "../scripts/rabbitmq-test.py" diff --git a/playbooks/openstack-hosts-setup.yml b/playbooks/openstack-hosts-setup.yml index 0814908e6c..b6ccf39218 100644 --- a/playbooks/openstack-hosts-setup.yml +++ b/playbooks/openstack-hosts-setup.yml @@ -52,8 +52,6 @@ - include_tasks: common-tasks/package-cache-proxy.yml when: install_method == "source" - - include_tasks: common-tasks/set-pip-vars.yml - when: install_method == "source" roles: - role: "openstack_hosts" vars_files: diff --git a/playbooks/repo-build.yml b/playbooks/repo-build.yml deleted file mode 100644 index 4270388511..0000000000 --- a/playbooks/repo-build.yml +++ /dev/null @@ -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 diff --git a/playbooks/repo-install.yml b/playbooks/repo-install.yml index 7cb711ec96..d8f0ab63cd 100644 --- a/playbooks/repo-install.yml +++ b/playbooks/repo-install.yml @@ -13,5 +13,51 @@ # See the License for the specific language governing permissions and # limitations under the License. -- import_playbook: repo-server.yml -- import_playbook: repo-build.yml +- 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/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 diff --git a/playbooks/repo-server.yml b/playbooks/repo-server.yml deleted file mode 100644 index 10dae8d6ec..0000000000 --- a/playbooks/repo-server.yml +++ /dev/null @@ -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 diff --git a/playbooks/repo-use.yml b/playbooks/repo-use.yml deleted file mode 100644 index 8448466e04..0000000000 --- a/playbooks/repo-use.yml +++ /dev/null @@ -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 diff --git a/playbooks/setup-infrastructure.yml b/playbooks/setup-infrastructure.yml index 1f0cffdceb..8a2e3764c1 100644 --- a/playbooks/setup-infrastructure.yml +++ b/playbooks/setup-infrastructure.yml @@ -16,10 +16,6 @@ - import_playbook: unbound-install.yml - import_playbook: repo-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: memcached-install.yml - import_playbook: galera-install.yml diff --git a/playbooks/utility-install.yml b/playbooks/utility-install.yml index 1dc134298f..23182101e8 100644 --- a/playbooks/utility-install.yml +++ b/playbooks/utility-install.yml @@ -19,7 +19,10 @@ gather_facts: "{{ osa_gather_facts | default(True) }}" environment: "{{ deployment_environment_variables | default({}) }}" vars_files: + - "defaults/repo_packages/openstack_services.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: - utility pre_tasks: @@ -81,7 +84,7 @@ block: - name: Get list of repo packages uri: - url: "{{ repo_release_path }}/requirements_absolute_requirements.txt" + url: "{{ utility_upper_constraints_url }}" return_content: yes register: _abs_reqs run_once: true @@ -93,7 +96,7 @@ _openstack_client_list: >- {%- set package_list = [] %} {%- 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('==.*$', '')) %} {%- endif %} {%- endfor %} @@ -107,14 +110,14 @@ name: "python_venv_build" vars: venv_install_destination_path: "{{ utility_venv_bin | dirname }}" - venv_pip_install_args: >- - {{ (pip_install_upper_constraints is defined) | ternary('--constraint ' + pip_install_upper_constraints | default(''),'') }} - {{ pip_install_options | default('') }} + venv_pip_install_args: "{{ pip_install_options | default('') }}" + venv_build_constraints: + - "--constraint {{ utility_upper_constraints_url }}" venv_pip_packages: "{{ _openstack_client_list | union(utility_pip_packages) }}" - name: Create symlinks for openstack clients 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 ln -sfn {{ utility_venv_bin }}/{{ _bin_name }} /usr/local/bin/{{ _bin_name }} fi diff --git a/tests/bootstrap-aio.yml b/tests/bootstrap-aio.yml index 0f53efef0c..00cb0d5bba 100644 --- a/tests/bootstrap-aio.yml +++ b/tests/bootstrap-aio.yml @@ -25,10 +25,6 @@ environment: "{{ deployment_environment_variables | default({}) }}" vars: 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: 'apt': 'sftp /usr/lib/openssh/sftp-server' 'yum': 'sftp /usr/libexec/openssh/sftp-server' diff --git a/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml b/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml index 1e9f08a812..44da9febce 100644 --- a/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml +++ b/tests/roles/bootstrap-host/tasks/prepare_aio_config.yml @@ -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_key: 'http://${NODEPOOL_MIRROR_HOST}:8080/copr-lxc2/pubkey.gpg'" >> ${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 # which is hashed to avoid cache going stale during CI. @@ -95,17 +94,6 @@ tags: - 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 shell: | source /etc/ci/mirror_info.sh @@ -133,18 +121,6 @@ - "91.189.91.21 images.linuxcontainers.org us.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 # Enforcing mode by default. While I am normally a supporter of this change, # the SELinux policy work for CentOS 7 is not done yet. diff --git a/tests/roles/bootstrap-host/templates/user_variables.aio.yml.j2 b/tests/roles/bootstrap-host/templates/user_variables.aio.yml.j2 index 7701cdc916..322db9b342 100644 --- a/tests/roles/bootstrap-host/templates/user_variables.aio.yml.j2 +++ b/tests/roles/bootstrap-host/templates/user_variables.aio.yml.j2 @@ -158,12 +158,6 @@ lxc_net_address: 10.255.255.1 lxc_net_netmask: 255.255.255.0 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 %} ## images.linuxcontainers.org reverse proxy lxc_image_cache_server_mirrors: @@ -199,11 +193,6 @@ nova_service_negate: - "nova-agent.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 # of kernel log messages. openstack_user_kernel_options: