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