Enable tripleo to support multiple architectures

Registered by Tony Breeds

Currently tripleo works well on x86_64 systems as newer computing platforms gain trivial support for virtualisation more OpenStack services are expected to run on non-intel CPUS (ppc64le and aarch64 come to mind). This blueprint covers the work items to enable an x86_64 tripleo install to deploy/manage overcloud nodes running on these alternate architectures.

Later and separate from this effort we'd look at running tripleo itself on non-x86_64 CPUs

Blueprint information

Status:
Started
Approver:
Emilien Macchi
Priority:
Medium
Drafter:
Tony Breeds
Direction:
Approved
Assignee:
Tony Breeds
Definition:
Approved
Series goal:
Accepted for ussuri
Implementation:
Good progress
Milestone target:
milestone icon victoria-3
Started by
Emilien Macchi

Related branches

Sprints

Whiteboard

[2019-09-18] (aschultz): Not implemented by the end of Train, moving out to Ussuri
[2019-04-15] (aschultz) As this is not completely implemented, moving to Train.
[2018-07-24] (aschultz) Moving to Stein. Please request an FFE if necessary. The patches seem to indicate it's mostly done but there may be some outstanding work. Also there was a few posts on the ML about the FFE, so it seems we're putting this off till Stein. http://lists.openstack.org/pipermail/openstack-dev/2018-July/132234.html
[2017-12-14] Moving back to Queens with the stipulation that backwards compatibility of image names are solved for. See http://lists.openstack.org/pipermail/openstack-dev/2017-December/125615.html
[2017-12-08] Moving out to Rocky. Please request FFE if this is needed for Queens.
[2018-01-31] Work is still in progress today: https://review.openstack.org/#/q/topic:bp/multiarch-support - we agreed with Tony to move it to Rocky.
[2018-07-11] Most of reviews are still open

Gerrit topic: https://review.openstack.org/#q,topic:bug/1715787,n,z

Addressed by: https://review.openstack.org/501935
    pm_user is optional for pxe_ipmitool nodes

Addressed by: https://review.openstack.org/501937
    IPMI doesn't mandate a username so tripleo shouldn't either

Gerrit topic: https://review.openstack.org/#q,topic:bp/multiarch-support,n,z

Addressed by: https://review.openstack.org/535613
    Add documentation for new multiarch features

Addressed by: https://review.openstack.org/535614
    Allow platform in instackenv.json

Gerrit topic: https://review.openstack.org/#q,topic:bp-multiarch,n,z

Addressed by: https://review.openstack.org/535615
    Allow passing an agent-name as a command line argument

Addressed by: https://review.openstack.org/535616
    Introduce trivial helpers to manage image_files and names

Addressed by: https://review.openstack.org/535617
    Always define properties for image even if empty

Addressed by: https://review.openstack.org/535618
    Add --arch support when uploading images

Addressed by: https://review.openstack.org/535619
    Add --platform support when uploading images

Addressed by: https://review.openstack.org/535620
    Actually use the arch and platform to select appropriate images

Addressed by: https://review.openstack.org/537768
    Import image name functions and update_nodes_deploy_data from tripleoclient

Addressed by: https://review.openstack.org/537769
    WiP: Use update_nodes_deploy_data

Addressed by: https://review.openstack.org/528602
    Add --validate-only to openstack overcloud node import

Addressed by: https://review.openstack.org/535621
    Switch order of actual and reference args to assertEqual

Addressed by: https://review.openstack.org/534604
    Ensure Boolean Strings from the environment are treated correctly

Addressed by: https://review.openstack.org/537770
    Add support for configuring additional architectures

Addressed by: https://review.openstack.org/540241
    Add an ImageMap to allow specific nodes to use a non-default image

Addressed by: https://review.openstack.org/565846
    Add --validate-only to openstack overcloud node import

Addressed by: https://review.openstack.org/580827
    Add support for configuring additional architectures for heat-based installs

Addressed by: https://review.openstack.org/580828
    Handle mapping multiple heat parameters from one config option

Addressed by: https://review.openstack.org/580829
    Add support for configuring ppc64le in ironic

Addressed by: https://review.openstack.org/581545
    Always set a hardware architecture on uploaded images

Addressed by: https://review.openstack.org/587305
    Allow passing an agent-name as a command line argument

Addressed by: https://review.openstack.org/587306
    Introduce trivial helpers to manage image_files and names

Addressed by: https://review.openstack.org/587307
    Always define properties for image even if empty

Addressed by: https://review.openstack.org/587308
    Add --architecture support when uploading images

Addressed by: https://review.openstack.org/587309
    Add --platform support when uploading images

Addressed by: https://review.openstack.org/587310
    Actually use the arch and platform to select appropriate images

Addressed by: https://review.openstack.org/587311
    Switch to using assert_has_calls() instead of assertEqual()

Addressed by: https://review.openstack.org/587312
    Always set a hardware architecture on uploaded images

Addressed by: https://review.openstack.org/587328
    IPMI doesn't mandate a username or password so tripleo shouldn't either

Addressed by: https://review.openstack.org/587329
    Allow platform in instackenv.json

Addressed by: https://review.openstack.org/587701
    Add a ComputePPC64LE role

Addressed by: https://review.openstack.org/591649
    Ensure Boolean Strings from the environment are treated correctly

Addressed by: https://review.openstack.org/612873
    Add AdditionalArchitectures when configured

Addressed by: https://review.openstack.org/616362
    Add support for configuring ppc64le in ironic

Addressed by: https://review.openstack.org/616452
    Add AdditionalArchitectures when configured

Gerrit topic: https://review.opendev.org/#/q/topic:bp/multiarch-support

Addressed by: https://review.opendev.org/656834
    Propagate AdditionalArchitectures to container image prepare

Addressed by: https://review.opendev.org/653651
    Use a typemap file instead of symlinks for tags

Addressed by: https://review.opendev.org/657714
    Define the interface for multi arch image prepare

Addressed by: https://review.opendev.org/662337
    Transfer all images in a manifest list

Gerrit topic: https://review.opendev.org/#/q/topic:backup-jun24

Addressed by: https://review.opendev.org/666730
    Support multi-arch in deploy image validations

Addressed by: https://review.opendev.org/587701
    Add a ComputePPC64LE role

Gerrit topic: https://review.opendev.org/#/q/topic:bp/validations-framework

Addressed by: https://review.opendev.org/587305
    Allow passing an agent-name as a command line argument

Addressed by: https://review.opendev.org/587306
    Introduce trivial helpers to manage image_files and names

Addressed by: https://review.opendev.org/587307
    Always define properties for image even if empty

Addressed by: https://review.opendev.org/587308
    Add --architecture support when uploading images

Addressed by: https://review.opendev.org/587309
    Add --platform support when uploading images

Addressed by: https://review.opendev.org/587310
    Actually use the arch and platform to select appropriate images

Addressed by: https://review.opendev.org/587311
    Switch to using assert_has_calls() instead of assertEqual()

Addressed by: https://review.opendev.org/587312
    Always set a hardware architecture on uploaded images

Addressed by: https://review.opendev.org/587329
    Allow platform in instackenv.json

Addressed by: https://review.opendev.org/671691
    Support multi-arch in deploy image validations

Addressed by: https://review.opendev.org/686782
    Use a typemap file instead of symlinks for tags

Addressed by: https://review.opendev.org/686783
    Transfer all images in a manifest list

Addressed by: https://review.opendev.org/686784
    Define the interface for multi arch image prepare

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.