927495fe3d
The new master branch should point now to queens instead of pike. So, HOT templates should specify that they might contain features for queens release [1] [1]: https://docs.openstack.org/heat/latest/template_guide/hot_spec.html#queens Change-Id: I7654d1c59db0c4508a9d7045f452612d22493004
130 lines
3.4 KiB
YAML
130 lines
3.4 KiB
YAML
heat_template_version: queens
|
|
|
|
description: >
|
|
Do some configuration, then reboot - sometimes needed for early-boot
|
|
changes such as modifying kernel configuration
|
|
|
|
parameters:
|
|
server:
|
|
type: string
|
|
# Deprecated Parameters, these configuration are deprecated in favor or role-specific parameters.
|
|
# Use: extraconfig/pre_network/host_config_and_reboot.yaml.
|
|
# Deprecated in Pike and will be removed in Queens.
|
|
{{role}}KernelArgs:
|
|
type: string
|
|
default: ""
|
|
{{role}}TunedProfileName:
|
|
type: string
|
|
default: ""
|
|
{{role}}HostCpusList:
|
|
type: string
|
|
default: ""
|
|
deployment_actions:
|
|
default: ['CREATE', 'UPDATE']
|
|
type: comma_delimited_list
|
|
description: >
|
|
List of stack actions that will trigger any deployments in this
|
|
templates. The actions will be an empty list of the server is in the
|
|
toplevel DeploymentServerBlacklist parameter's value.
|
|
|
|
parameter_group:
|
|
- label: deprecated
|
|
parameters:
|
|
- {{role}}KernelArgs
|
|
- {{role}}TunedProfileName
|
|
- {{role}}HostCpusList
|
|
|
|
conditions:
|
|
param_exists:
|
|
or:
|
|
- not:
|
|
equals:
|
|
- get_param: {{role}}KernelArgs
|
|
- ""
|
|
- not:
|
|
equals:
|
|
- get_param: {{role}}TunedProfileName
|
|
- ""
|
|
deployment_actions_empty:
|
|
equals:
|
|
- {get_param: deployment_actions}
|
|
- []
|
|
|
|
resources:
|
|
|
|
HostParametersConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
condition: param_exists
|
|
properties:
|
|
group: ansible
|
|
inputs:
|
|
- name: _KERNEL_ARGS_
|
|
- name: _TUNED_PROFILE_NAME_
|
|
- name: _HOST_CPUS_LIST_
|
|
outputs:
|
|
- name: result
|
|
config:
|
|
get_file: ansible_host_config.ansible
|
|
|
|
HostParametersDeployment:
|
|
type: OS::Heat::SoftwareDeployment
|
|
condition: param_exists
|
|
properties:
|
|
name: HostParametersDeployment
|
|
server: {get_param: server}
|
|
config: {get_resource: HostParametersConfig}
|
|
actions:
|
|
if:
|
|
- deployment_actions_empty
|
|
- []
|
|
- ['CREATE'] # Only do this on CREATE
|
|
input_values:
|
|
_KERNEL_ARGS_: {get_param: {{role}}KernelArgs}
|
|
_TUNED_PROFILE_NAME_: {get_param: {{role}}TunedProfileName}
|
|
_HOST_CPUS_LIST_: {get_param: {{role}}HostCpusList}
|
|
|
|
RebootConfig:
|
|
type: OS::Heat::SoftwareConfig
|
|
condition: param_exists
|
|
properties:
|
|
group: script
|
|
config: |
|
|
#!/bin/bash
|
|
# Stop os-collect-config to avoid any race collecting another
|
|
# deployment before reboot happens
|
|
systemctl stop os-collect-config.service
|
|
/sbin/reboot
|
|
|
|
RebootDeployment:
|
|
type: OS::Heat::SoftwareDeployment
|
|
condition: param_exists
|
|
depends_on: HostParametersDeployment
|
|
properties:
|
|
name: RebootDeployment
|
|
server: {get_param: server}
|
|
config: {get_resource: RebootConfig}
|
|
actions:
|
|
if:
|
|
- deployment_actions_empty
|
|
- []
|
|
- ['CREATE'] # Only do this on CREATE
|
|
signal_transport: NO_SIGNAL
|
|
|
|
outputs:
|
|
result:
|
|
value:
|
|
get_attr: [HostParametersDeployment, result]
|
|
condition: param_exists
|
|
stdout:
|
|
value:
|
|
get_attr: [HostParametersDeployment, deploy_stdout]
|
|
condition: param_exists
|
|
stderr:
|
|
value:
|
|
get_attr: [HostParametersDeployment, deploy_stderr]
|
|
condition: param_exists
|
|
status_code:
|
|
value:
|
|
get_attr: [HostParametersDeployment, deploy_status_code]
|
|
condition: param_exists
|