📦
CHI-in-a-box
  • What is CHI-in-a-Box?
  • Before You Begin
    • Assumed Knowledge
    • Hosts and Services
    • Network Overview
    • CC-Ansible
    • The site configuration
      • inventory
      • defaults.yml
      • passwords.yml
      • certificates/
      • node_custom_config/ (optional)
      • post-deploy.yml (optional)
    • How Deployment Works
    • Security considerations
  • Setup Guides
    • Evaluation Site
      • Bring up the Control Plane
    • Production Baremetal
      • Baremetal QuickStart
      • Host Networking Configuration
    • Troubleshooting
      • Networking
    • Verification Checklist
    • Dev-in-a-Box
    • Edge-in-a-Box
  • Reference
    • Chameleon Identity Federation
    • Ironic Flat Networking
    • Ironic Multi-Tenant Networking
    • Glance Image Storage
    • Resource Reservation
      • Default Resource Properties
    • Monitoring
      • IPMI Metrics
      • SNMP Metrics
  • Example Deployments
    • ARM/x86 mixed architecture
    • Edge computing/container testbed
  • Operations
    • Hardware management
    • Certificate management
    • Chameleon tools
      • Hammers 🔨
        • maintenance_reservation
      • Disk image subscription
      • Usage reporting
    • Troubleshooting
      • Known issues
        • Neutron (networking)
        • Nova (KVM)
        • Ironic (bare metal)
      • Instance networking diagnostics
      • Security incident triage
      • Troublesome Hardware
    • Alert runbooks
      • Cron Job No Recent Success
      • Instance Failure
      • Image Cache Space
      • Ironic Node Error State
      • Jupyter Server Launch Failure
      • MySQL Host Down
      • MySQL Replication Error
      • Node Exporter Down
      • Node Network Bridge Down
      • Node Network Bridge Low Traffic
      • Nova Ironic Instance Launch Failure
      • OpenStack API Down
      • PeriodicTask No Recent Success
      • Portal Down
      • Precis Parsed Events Low
      • Provider Conflict
      • Runbook Template
    • User support guide
    • Upgrading to a new Release
  • Development
    • Developing OpenStack Services
    • Dev-in-a-box
Powered by GitBook
On this page
  • Configuration changes
  • Apply changes
  • Post-config
  • Verification
Edit on GitHub
  1. Example Deployments

ARM/x86 mixed architecture

It is possible to configure CHI-in-a-Box to support bare metal provisioning on both x86- and ARM-based bare metal hardware. There are a few steps, namely configuring support for iPXE, which when combined with UEFI boot can provide different EFI images to the pre-boot environment depending on the target host architecture.

The following assumes your Site Configuration is stored at $site_config.

Configuration changes

$site_config/defaults.yml:

# When set to 'yes', a new ipxe server container is deployed on the 
# Ironic conductor node(s).
enable_ironic_ipxe: yes

You must additionally provide a custom ironic.conf file that enables the iPXE plugin:

# Copy ironic config to avoid overwriting
cp path/to/chi-in-a-box/kolla/node_custom_config/ironic.conf \
    $CC_ANSIBLE_SITE/node_custom_config/ironic.conf

Then, make sure the file contains the following lines

[DEFAULT]
enabled_boot_interfaces = ipxe,pxe

[pxe]
ipxe_bootfile_name_by_arch = aarch64:aarch64/snponly.efi

Apply changes

./cc-ansible --site $CC_ANSIBLE_SITE upgrade --tags ironic

Post-config

tar xf $ipxe_tarball aarch64/snponly.efi
docker exec -it ironic_conductor mkdir -p /tftpboot/aarch64/
docker cp aarch64/snponly.efi ironic_conductor:/tftpboot/aarch64/
openstack image create --file ironic-python-agent-aarch64.initramfs ironic-python-agent-aarch64.initramfs
# Note the UUID of the image, it is used as $ramdisk_uuid later

openstack image create --file ironic-python-agent-aarch64.kernel ironic-python-agent-aarch64.kernel
# Note the UUID of the image, it is used as $kernel_uuid later
  1. Configure your ARM nodes to deploy with the ARM64-compiled IPA image, and also set the architecture on the node, which will help iPXE understand it is an ARM node at boot time.

⚠️ Requires python-doniclient>=0.4.0

openstack hardware set --architecture aarch64 --deploy_kernel $kernel_uuid --deploy_ramdisk $ramdisk_uuid $node

Verification

You should now be able to reserve and provision an ARM node in your environment in addition to any existing x86 nodes, which should remain operational.

PreviousSNMP MetricsNextEdge computing/container testbed

Last updated 2 years ago

Copy the iPXE binary from the . You must deploy the EFI images to all Ironic conductor nodes (usually there is only one.) The Ironic conductor must already be running for this to succeed because it uses a docker cp.

Upload the IPA kernel and ramdisk images from the to your site:

v2021-11.01 CHI-in-a-Box release
v2021-11.01 CHI-in-a-Box release