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. This mapping overrides those in ServiceNetMapDefaults. 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 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 whic 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 resources: RoleParametersValue: type: OS::Heat::Value properties: type: json value: map_replace: - map_replace: - tuned_profile: TunedProfileName isolated_cores: IsolCpusList kernel_args: KernelArgs - values: {get_param: [RoleParameters]} - values: TunedProfileName: {get_param: TunedProfileName} IsolCpusList: {get_param: IsolCpusList} KernelArgs: {get_param: KernelArgs} 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_reboot_timeout: {get_param: NodeRebootWaitTimeout} upgrade_tasks: - name: upgrade prepare for leapp to align kernel arg shortcommings in leapp tags: - never - system_upgrade - system_upgrade_prepare when: - step|int == 3 - upgrade_leapp_enabled block: - name: fix grub entries to have name start with GRUB_ replace: path: '/etc/default/grub' regexp: '^(TRIPLEO_HEAT_TEMPLATE_KERNEL_ARGS)(.*)' replace: 'GRUB_\1\2' - name: fix grub entries in append statement replace: path: '/etc/default/grub' regexp: '(.*){(TRIPLEO_HEAT_TEMPLATE_KERNEL_ARGS)}(.*)' replace: '\1{GRUB_\2}\3'