diff --git a/playbooks/repo-build.yml b/playbooks/repo-build.yml index 61bb193c23..6f169a4038 100644 --- a/playbooks/repo-build.yml +++ b/playbooks/repo-build.yml @@ -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: diff --git a/releasenotes/notes/multi-arch-support-a8762f6ea7fdbcef.yaml b/releasenotes/notes/multi-arch-support-a8762f6ea7fdbcef.yaml new file mode 100644 index 0000000000..5f964a5d76 --- /dev/null +++ b/releasenotes/notes/multi-arch-support-a8762f6ea7fdbcef.yaml @@ -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.