:_mod-docs-content-type: ASSEMBLY
[id="virt-boot-source-image-heterogeneous-clusters"]
= Heterogeneous cluster support
include::_attributes/common-attributes.adoc[]
:context: virt-boot-source-image-heterogeneous-clusters

toc::[]

[role="_abstract"]
A heterogeneous cluster is a cluster where nodes have differing architectures. Heterogeneous clusters promote optimal compute resource usage by mixing different types of hardware in one cluster.

:FeatureName: Boot source image support for heterogeneous clusters
include::snippets/technology-preview.adoc[]

With heterogeneous clusters, you can match workloads to hardware intended for the workload task instead of general purpose compute platforms. For example, GPU and general purpose compute resources could be combined and workloads assigned to the appropriate hardware.

[IMPORTANT]
====
If boot source image support is disabled in a heterogeneous cluster, you can encounter inconsistencies between node and image architectures. This happens when images are used for virtual machine creation that do not match the node architecture. This can lead to the failure of virtual machine boot up or virtual machines that do not run as expected. The warning level alert `HCOMultiArchGoldenImagesDisabled` is produced when this feature is not enabled in a heterogeneous cluster.
====

If you have a heterogeneous cluster but do not want to enable multiple architecture support, you can modify the workloads node placement in the `HyperConverged` custom resource (CR) to include only nodes with a specific architecture.

Boot source image support in heterogeneous clusters enables VM creators to deploy persistent VMs with specific architectures, and to define custom boot images that support heterogeneous clusters.

The same image can be used with nodes of different architectures if the boot image supports the required architectures. For example, a boot image that supports both ARM and AMD architectures can be used with both types of nodes.

Boot source image support for heterogeneous clusters is not enabled by default. You can enable heterogeneous cluster support by setting the feature gate in the `HyperConverged` CR.

include::modules/virt-enabling-heterogeneous-clusters.adoc[leveloffset=+1]

include::modules/virt-mod-boot-source-image-heterogeneous-clusters.adoc[leveloffset=+1]

include::modules/virt-add-custom-boot-source-image-heterogeneous-cluster.adoc[leveloffset=+1]

include::modules/virt-modify-workload-node-heterogeneous-cluster.adoc[leveloffset=+1]
