Merge "Add custom role for realtime compute"
This commit is contained in:
commit
198d54b0b3
33
environments/compute-real-time-example.yaml
Normal file
33
environments/compute-real-time-example.yaml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# 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 achive 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"
|
64
roles/ComputeRealTime.yaml
Normal file
64
roles/ComputeRealTime.yaml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
###############################################################################
|
||||||
|
# Role: ComputeRealTime #
|
||||||
|
###############################################################################
|
||||||
|
- name: ComputeRealTime
|
||||||
|
description: |
|
||||||
|
Compute role that is optimized for real-time behaviour. When using this role
|
||||||
|
it is mandatory that an overcloud-realtime-compute image is available and
|
||||||
|
the role specific parameters IsolCpusList and NovaVcpuPinSet are set
|
||||||
|
accordingly to the hardware of the real-time compute nodes.
|
||||||
|
CountDefault: 1
|
||||||
|
networks:
|
||||||
|
- InternalApi
|
||||||
|
- Tenant
|
||||||
|
- Storage
|
||||||
|
HostnameFormatDefault: '%stackname%-computerealtime-%index%'
|
||||||
|
disable_upgrade_deployment: True
|
||||||
|
ImageDefault: overcloud-realtime-compute
|
||||||
|
RoleParametersDefault:
|
||||||
|
TunedProfileName: "realtime-virtual-host"
|
||||||
|
KernelArgs: "" # these must be set in an environment file or similar
|
||||||
|
IsolCpusList: "" # according to the hardware of real-time nodes
|
||||||
|
NovaVcpuPinSet: "" #
|
||||||
|
ServicesDefault:
|
||||||
|
- OS::TripleO::Services::Aide
|
||||||
|
- OS::TripleO::Services::AuditD
|
||||||
|
- OS::TripleO::Services::CACerts
|
||||||
|
- OS::TripleO::Services::CephClient
|
||||||
|
- OS::TripleO::Services::CephExternal
|
||||||
|
- OS::TripleO::Services::CertmongerUser
|
||||||
|
- OS::TripleO::Services::Collectd
|
||||||
|
- OS::TripleO::Services::ComputeCeilometerAgent
|
||||||
|
- OS::TripleO::Services::ComputeNeutronCorePlugin
|
||||||
|
- OS::TripleO::Services::ComputeNeutronL3Agent
|
||||||
|
- OS::TripleO::Services::ComputeNeutronMetadataAgent
|
||||||
|
- OS::TripleO::Services::ComputeNeutronOvsAgent
|
||||||
|
- OS::TripleO::Services::Docker
|
||||||
|
- OS::TripleO::Services::Fluentd
|
||||||
|
- OS::TripleO::Services::Ipsec
|
||||||
|
- OS::TripleO::Services::Iscsid
|
||||||
|
- OS::TripleO::Services::Kernel
|
||||||
|
- OS::TripleO::Services::LoginDefs
|
||||||
|
- OS::TripleO::Services::MySQLClient
|
||||||
|
- OS::TripleO::Services::NeutronBgpVpnBagpipe
|
||||||
|
- OS::TripleO::Services::NeutronLinuxbridgeAgent
|
||||||
|
- OS::TripleO::Services::NeutronVppAgent
|
||||||
|
- OS::TripleO::Services::NovaCompute
|
||||||
|
- OS::TripleO::Services::NovaLibvirt
|
||||||
|
- OS::TripleO::Services::NovaMigrationTarget
|
||||||
|
- OS::TripleO::Services::Ntp
|
||||||
|
- OS::TripleO::Services::ContainersLogrotateCrond
|
||||||
|
- OS::TripleO::Services::OpenDaylightOvs
|
||||||
|
- OS::TripleO::Services::Rhsm
|
||||||
|
- OS::TripleO::Services::RsyslogSidecar
|
||||||
|
- OS::TripleO::Services::Securetty
|
||||||
|
- OS::TripleO::Services::SensuClient
|
||||||
|
- OS::TripleO::Services::SkydiveAgent
|
||||||
|
- OS::TripleO::Services::Snmp
|
||||||
|
- OS::TripleO::Services::Sshd
|
||||||
|
- OS::TripleO::Services::Timezone
|
||||||
|
- OS::TripleO::Services::TripleoFirewall
|
||||||
|
- OS::TripleO::Services::TripleoPackages
|
||||||
|
- OS::TripleO::Services::Vpp
|
||||||
|
- OS::TripleO::Services::OVNController
|
||||||
|
- OS::TripleO::Services::OVNMetadataAgent
|
@ -693,6 +693,12 @@ def validate(filename, param_map):
|
|||||||
'OS::TripleO::Services::NeutronLinuxbridgeAgent']
|
'OS::TripleO::Services::NeutronLinuxbridgeAgent']
|
||||||
retval = validate_with_compute_role_services(filename, tpl, exclude)
|
retval = validate_with_compute_role_services(filename, tpl, exclude)
|
||||||
|
|
||||||
|
if filename.startswith('./roles/ComputeRealTime.yaml'):
|
||||||
|
exclude = [
|
||||||
|
'OS::TripleO::Services::Tuned',
|
||||||
|
]
|
||||||
|
retval = validate_with_compute_role_services(filename, tpl, exclude)
|
||||||
|
|
||||||
if filename.startswith('./roles/Hci'):
|
if filename.startswith('./roles/Hci'):
|
||||||
retval = validate_hci_role(filename, tpl)
|
retval = validate_hci_role(filename, tpl)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user