tripleo-heat-templates/deployment/kernel/kernel-boot-params-baremetal-ansible.yaml
Saravanan KR f217eccc77 Align kernel args for system upgrade using leapp
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
2020-08-04 20:23:52 +05:30

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'