tripleo-heat-templates/extraconfig/pre_deploy/rhel-registration/rhel-registration.yaml
Carlos Camacho 44ef2a3ec1 Change template names to rocky
The new master branch should point now to rocky.

So, HOT templates should specify that they might contain features
for rocky release [1]

Also, this submission updates the yaml validation to use only latest
heat_version alias. There are cases in which we will need to set
the version for specific templates i.e. mixed versions, so there
is added a variable to assign specific templates to specific heat_version
aliases, avoiding the introductions of error by bulk replacing the
the old version in new releases.

[1]: https://docs.openstack.org/heat/latest/template_guide/hot_spec.html#rocky
Change-Id: Ib17526d9cc453516d99d4659ee5fa51a5aa7fb4b
2018-05-09 08:28:42 +02:00

211 lines
6.3 KiB
YAML

heat_template_version: rocky
description: >
RHEL Registration and unregistration software deployments.
# Note extra parameters can be defined, then passed data via the
# environment parameter_defaults, without modifying the parent template
parameters:
server:
type: string
# To be defined via a local or global environment in parameter_defaults
rhel_reg_activation_key:
type: string
rhel_reg_auto_attach:
type: string
rhel_reg_base_url:
type: string
rhel_reg_environment:
type: string
rhel_reg_force:
type: string
rhel_reg_machine_name:
type: string
rhel_reg_org:
type: string
rhel_reg_password:
type: string
rhel_reg_pool_id:
type: string
rhel_reg_release:
type: string
rhel_reg_repos:
type: string
rhel_reg_sat_url:
type: string
rhel_reg_server_url:
type: string
rhel_reg_service_level:
type: string
rhel_reg_user:
type: string
rhel_reg_type:
type: string
rhel_reg_method:
type: string
rhel_reg_sat_repo:
type: string
rhel_reg_http_proxy_host:
type: string
rhel_reg_http_proxy_port:
type: string
rhel_reg_http_proxy_username:
type: string
rhel_reg_http_proxy_password:
type: string
UpdateOnRHELRegistration:
type: boolean
default: false
description: |
When enabled, the system will perform a yum update after performing the
RHEL Registration process.
DeleteOnRHELUnregistration:
type: boolean
default: false
description: |
When true, the system profile will be deleted from the registration
service when the rhel-registration.yaml nested stack is deleted.
RHELRegistrationActions:
type: comma_delimited_list
default:
- CREATE
description: Actions when the system profile will be registered, by default we only do this on CREATE of a new server, not for existing nodes.
conditions:
unregister_on_delete:
equals:
- {get_param: DeleteOnRHELUnregistration}
- true
update_requested:
equals:
- {get_param: UpdateOnRHELRegistration}
- true
resources:
RHELRegistration:
type: OS::Heat::SoftwareConfig
properties:
group: script
inputs:
- name: REG_ACTIVATION_KEY
- name: REG_AUTO_ATTACH
- name: REG_BASE_URL
- name: REG_ENVIRONMENT
- name: REG_FORCE
- name: REG_MACHINE_NAME
- name: REG_ORG
- name: REG_PASSWORD
- name: REG_POOL_ID
- name: REG_RELEASE
- name: REG_REPOS
- name: REG_SAT_URL
- name: REG_SERVER_URL
- name: REG_SERVICE_LEVEL
- name: REG_USER
- name: REG_TYPE
- name: REG_METHOD
- name: REG_SAT_REPO
- name: REG_HTTP_PROXY_HOST
- name: REG_HTTP_PROXY_PORT
- name: REG_HTTP_PROXY_USERNAME
- name: REG_HTTP_PROXY_PASSWORD
config: {get_file: scripts/rhel-registration}
RHELRegistrationDeployment:
type: OS::Heat::SoftwareDeployment
properties:
name: RHELRegistrationDeployment
server: {get_param: server}
config: {get_resource: RHELRegistration}
actions: {get_param: RHELRegistrationActions}
input_values:
REG_ACTIVATION_KEY: {get_param: rhel_reg_activation_key}
REG_AUTO_ATTACH: {get_param: rhel_reg_auto_attach}
REG_BASE_URL: {get_param: rhel_reg_base_url}
REG_ENVIRONMENT: {get_param: rhel_reg_environment}
REG_FORCE: {get_param: rhel_reg_force}
REG_MACHINE_NAME: {get_param: rhel_reg_machine_name}
REG_ORG: {get_param: rhel_reg_org}
REG_PASSWORD: {get_param: rhel_reg_password}
REG_POOL_ID: {get_param: rhel_reg_pool_id}
REG_RELEASE: {get_param: rhel_reg_release}
REG_REPOS: {get_param: rhel_reg_repos}
REG_SAT_URL: {get_param: rhel_reg_sat_url}
REG_SERVER_URL: {get_param: rhel_reg_server_url}
REG_SERVICE_LEVEL: {get_param: rhel_reg_service_level}
REG_USER: {get_param: rhel_reg_user}
REG_TYPE: {get_param: rhel_reg_type}
REG_METHOD: {get_param: rhel_reg_method}
REG_SAT_REPO: {get_param: rhel_reg_sat_repo}
REG_HTTP_PROXY_HOST: {get_param: rhel_reg_http_proxy_host}
REG_HTTP_PROXY_PORT: {get_param: rhel_reg_http_proxy_port}
REG_HTTP_PROXY_USERNAME: {get_param: rhel_reg_http_proxy_username}
REG_HTTP_PROXY_PASSWORD: {get_param: rhel_reg_http_proxy_password}
RHELUnregistration:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: {get_file: scripts/rhel-unregistration}
inputs:
- name: REG_METHOD
RHELUnregistrationDeployment:
type: OS::Heat::SoftwareDeployment
properties:
name: RHELUnregistrationDeployment
server: {get_param: server}
config: {get_resource: RHELUnregistration}
actions:
if:
- unregister_on_delete
- ['DELETE']
- []
input_values:
REG_METHOD: {get_param: rhel_reg_method}
YumUpdateConfigurationAfterRHELRegistration:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: |
#!/bin/bash
set -x
# yum check-update exits 100 if updates are available
set +e
check_update=$(yum check-update 2>&1)
check_update_exit=$?
set -e
if [[ "$check_update_exit" == "100" ]]; then
full_command="yum -q -y update"
echo "Running: $full_command"
result=$($full_command)
return_code=$?
echo "$result"
echo "yum return code: $return_code"
exit $return_code
elif [[ "$check_update_exit" == "1" ]]; then
echo "Failed to check for package updates"
echo "$check_update"
else
echo "No packages require updating"
exit 0
fi
UpdateDeploymentAfterRHELRegistration:
type: OS::Heat::SoftwareDeployment
depends_on: RHELRegistrationDeployment
condition: update_requested
properties:
name: UpdateDeploymentAfterRHELRegistration
config: {get_resource: YumUpdateConfigurationAfterRHELRegistration}
server: {get_param: server}
actions: {get_param: RHELRegistrationActions}
outputs:
deploy_stdout:
description: Deployment reference, used to trigger puppet apply on changes
value: {get_attr: [RHELRegistrationDeployment, deploy_stdout]}