44ef2a3ec1
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
211 lines
6.3 KiB
YAML
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]}
|
|
|