f217eccc77
leapp is looking for errors in /etc/default/grub and fixes it during upgrade. It does not recognize entries starting other than "GRUB", as tripleo sets the entry starting with TRIPLEO_ instead of GRUB, append the entry with GRUB_ so that leapp upgrades correctly. Closes-Bug: #1890080 Change-Id: I9238cd35a1114b1649a38ab4f24225865bcecf19
121 lines
3.9 KiB
YAML
121 lines
3.9 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: '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'
|