heat_template_version: rocky 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 DefaultPasswords: default: {} 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: "" 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 conditions: is_host_config_required: {not: {equals: [{get_param: [RoleParameters, KernelArgs]}, ""]}} outputs: role_data: description: Role data for the Host Config Service value: service_name: boot_params_service deploy_steps_tasks: - if: - is_host_config_required - - name: Configure kernel args, tuned and reboot when: step == 0 vars: _KERNEL_ARGS_: {get_param: [RoleParameters, KernelArgs]} _TUNED_PROFILE_NAME_: {get_param: [RoleParameters, TunedProfileName]} _TUNED_CORES_: {get_param: [RoleParameters, IsolCpusList]} block: - import_tasks: ../boot_param_tasks.yaml - name: Update gid for hugetlbfs to kolla's gid group: name: hugetlbfs gid: 42477 when: reboot_required is defined and reboot_required # Reboot the node - name: Reboot after kernel args update shell: "sleep 2 && /sbin/shutdown -r now" async: 1 poll: 0 ignore_errors: true become: yes when: reboot_required is defined and reboot_required - name: Wait for the connection to be ready on the restarted node wait_for_connection: connect_timeout: 20 sleep: 5 delay: 30 timeout: get_param: NodeRebootWaitTimeout when: reboot_required is defined and reboot_required - null