# A Heat environment that can be used to deploy a real-time compute node
# Deploying a real-time compute node requires enabling hugepages for the
# overcloud nodes, which is done by default for the ComputeRealTime role.
# However, the CPU pinnings (IsolCpusList and NovaVcpuPinSet) need to be set in
# an environment file like this, according to the hardware used for the
# real-time compute nodes.
# Also the hugepages parameters in KernelArgs should be set accordingly
# the memory of the real-time compute nodes.
# It's also possible to overwrite the default values for other parameters like
# TunedProfileName and ComputeRealTimeImage here.

parameter_defaults:

  ## Only uncomment this line to overwrite the default image name
  #ComputeRealTimeImage: "overcloud-realtime-compute"

  ComputeRealTimeParameters:
    ## Host configuration Parameters

    ## You must change these values accordingly to your hardware
    IsolCpusList: "2,3"    # Logical CPUs list to be isolated from the host process (applied via cpu-partitioning tuned).
                           # It is mandatory to provide isolated cpus for tuned to achieve optimal performance.
                           # Example: "3-8,12-15,18"
    NovaVcpuPinSet: "2,3"  # Cores to pin Nova instances to.  For maximum performance, select cores
                           # on the same NUMA node(s) selected for previous settings.

    ## Space separated kernel args to configure hugepage. Deploying real-time
    ## requires enabling hugepages for the overcloud compute nodes.
    ## Adapt the hugepages according to the memory of the real-time compute nodes.
    KernelArgs: "default_hugepagesz=1G hugepagesz=1G hugepages=16"

    ## Only uncomment these lines to overwrite the defaults
    #TunedProfileName: "realtime-virtual-host"
