tripleo-heat-templates/deployment/kernel/kernel-boot-params-baremeta...

159 lines
5.4 KiB
YAML

heat_template_version: wallaby
description: Host config and reboot service which configures Kernel Args and reboot
parameters:
RoleNetIpMap:
default: {}
type: json
ServiceData:
default: {}
description: Dictionary packing service data
type: json
ServiceNetMap:
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. Use
parameter_merge_strategies to merge it with the defaults.
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
KernelArgs:
default: ""
type: string
description: Kernel Args to apply to the host
tags:
- role_specific
KernelArgsDeferReboot:
default: false
type: boolean
description: >
When enabled, nodes will not get rebooted automatically by tripleo-kernel
if KernelArgs have been changed. Operators will have to manually reboot
nodes after the deployment or update process is completed.
Leaving this enabled during a scale-up operation will prevent reboot on
new nodes. This might cause deployment errors as the KernelArgs will not
be applied.
tags:
- role_specific
TunedProfileName:
default: 'throughput-performance'
type: string
description: Tuned Profile to apply to the host
tags:
- role_specific
IsolCpusList:
default: ""
type: string
description: >
List of logical CPU ids which need to be isolated from the host processes.
This input is provided to the tuned profile cpu-partitioning to configure
systemd and repin interrupts (IRQ repinning).
tags:
- role_specific
NodeRebootWaitTimeout:
default: 900
type: number
description: Timeout in seconds to specify the wait time for ansible node reboot
Hugepages:
default: {}
type: json
description: >
Hash for hugepage configuration
Example:
Hugepages:
2048:
count: 100
default: false
1048576:
count: 100
default: true
tags:
- role_specific
ReconfigureHugepages:
default: false
type: boolean
description: >
By default, tripleo-kernel will configure the provided Hugepages as specified by operators
but it won't try to remove Hugepages configured on the host that are not part of the TripleO
parameter. Enabling this setting will make sure everything is reconfigured exactly like the
TripleO parameter, otherwise we just add the content of the Hugepages parameter to what's
already in place.
tags:
- role_specific
resources:
RoleParametersValue:
type: OS::Heat::Value
properties:
type: json
value:
map_replace:
- map_replace:
- tuned_profile: TunedProfileName
isolated_cores: IsolCpusList
kernel_args: KernelArgs
kernel_args_defer_reboot: KernelArgsDeferReboot
hugepages: Hugepages
reconfigure_hugepages: ReconfigureHugepages
- values: {get_param: [RoleParameters]}
- values:
TunedProfileName: {get_param: TunedProfileName}
IsolCpusList: {get_param: IsolCpusList}
KernelArgs: {get_param: KernelArgs}
KernelArgsDeferReboot: {get_param: KernelArgsDeferReboot}
Hugepages: {get_param: Hugepages}
ReconfigureHugepages: {get_param: ReconfigureHugepages}
outputs:
role_data:
description: Role data for the Host Config Service
value:
service_name: boot_params_service
deploy_steps_tasks:
# TODO(skramaja): Tasks of Tuned TripleO service can be used here
# But the configuration in that service has to be moved from host_prep_tasks to step 0 of deploy_step_tasks
- name: Configure tuned before reboot
when: step|int == 0
include_role:
name: tuned
vars:
tuned_profile: {get_attr: [RoleParametersValue, value, tuned_profile]}
tuned_isolated_cores: {get_attr: [RoleParametersValue, value, isolated_cores]}
- name: Configure kernel args and reboot
when: step|int == 0
include_role:
name: tripleo_kernel
tasks_from: kernelargs.yml
vars:
tripleo_kernel_args: {get_attr: [RoleParametersValue, value, kernel_args]}
tripleo_kernel_hugepages: {get_attr: [RoleParametersValue, value, hugepages]}
tripleo_kernel_hugepages_remove: {get_attr: [RoleParametersValue, value, reconfigure_hugepages]}
tripleo_kernel_defer_reboot: {get_attr: [RoleParametersValue, value, kernel_args_defer_reboot]}
tripleo_kernel_reboot_timeout: {get_param: NodeRebootWaitTimeout}
upgrade_tasks:
- name: upgrade prepare for leapp to align kernel arg shortcomings in leapp
tags:
- never
- system_upgrade
- system_upgrade_prepare
when:
- step|int == 3
- upgrade_leapp_enabled
include_role:
name: tripleo_kernel
tasks_from: upgrade_tasks.yml