bd9646c2ec
Module wait_for_connection provides a better way of waiting to continue deployment after a reboot, instead of local action. Change-Id: I95623658f06b1a3122d78bb4d54feabe89ad3569
100 lines
3.1 KiB
YAML
100 lines
3.1 KiB
YAML
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
|
|
|
|
# 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
|
|
|