Add discovery and build for multiple CPU architectures

This adds support for discovery of repo build servers for multiple
CPU architectures. When multiple architectures are detected among the
repo servers, this patch allows repo-install to assign and store a list
of 'master' build servers for each CPU architecture, then use this to
build artifacts independently for each CPU architecture in the deployment.

Partially-Implements: bp/multi-arch-repo

Change-Id: Ibfb77cc4ce87c9064f9af84946c5a9bbba5e1fb4
This commit is contained in:
Adam Reznechek 2016-07-25 08:54:41 -05:00
parent e1c2f89808
commit 108ea96349
2 changed files with 26 additions and 1 deletions

View File

@ -13,14 +13,28 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Group repo servers by architecture
hosts: repo_all
tasks:
- name: Group repo servers by architecture
group_by:
key: repo_servers_{{ ansible_architecture }}
tags:
- "repo-build"
# repo_all[0] is built last to ensure it has all build artifacts for final indexing
- name: Build new repo packages for a given release
hosts: repo_all[0]
hosts: repo_all[1:],repo_all[0]
gather_facts: true
user: root
serial: 1
pre_tasks:
- name: Load local packages
debug:
msg: "Loading Packages"
when:
- "groups['repo_servers_{{ ansible_architecture }}'] | length > 0"
- "inventory_hostname == groups['repo_servers_{{ ansible_architecture }}'][0]"
with_py_pkgs: "{{ pkg_locations }}"
register: local_packages
tags:
@ -28,6 +42,9 @@
roles:
- role: "repo_build"
repo_build_release_tag: "{{ openstack_release }}"
when:
- "groups['repo_servers_{{ ansible_architecture }}'] | length > 0"
- "inventory_hostname == groups['repo_servers_{{ ansible_architecture }}'][0]"
tags:
- "repo-build"
vars:

View File

@ -0,0 +1,8 @@
---
features:
- The repo install process is now able to support building and synchronizing
artifacts for multiple CPU architectures. To support multiple architectures,
one or more repo servers must be created for each CPU architecture in the
deployment. When multiple CPU architectures are detected among the repo
servers, the repo-discovery process will automatically assign a repo
master to perform the build process for each architecture.