tripleo-heat-templates/extraconfig/services/rhsm.yaml
Emilien Macchi 6a6872f390 Introduce OS::TripleO::Services::Rhsm
Background:
extraconfig/pre_deploy/rhel-registration interface has been maintained
for some time now but it's missing some features and the code overlaps
with ongoing efforts to convert everything to Ansible.

Plan:
Consume ansible-role-redhat-subscription from TripleO, so all the logics
goes into the Ansible role, and not in TripleO anymore.
The single parameter exposed to TripleO is RhsmVars and any Ansible
parameter can be given to make the role working.
The parameter can be overriden per roles, so we can think at specific
cases were some Director roles would have specific RHSM configs.
Once we have feature parity between what is done and what was here
before, we'll deprecate the old interface.

Testing:
Because RHSM can't be tested on CentOS, this code was manually tested on
RHEL against the public subscription portal. Also, we verified that
generated Ansible playbooks were correct and called the role with the
right parameters.

Documentation:
We'll work on documentation during the following weeks and explain
how to switch from the previous interface to the new one, and also
document new uses requested by our users.

Change-Id: I8610e4f1f8478f2dcbe3afc319981df914ce1780
2017-12-27 11:03:49 -08:00

75 lines
2.1 KiB
YAML

heat_template_version: queens
description: Configure Red Hat Subscription Management.
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
RhsmVars:
default: {}
description: Hash of ansible-role-redhat-subscription variables
used to configure RHSM.
# The parameters contains sensible data like activation key or password.
hidden: true
tags:
- role_specific
type: json
resources:
# Merging role-specific parameters (RoleParameters) with the default parameters.
# RoleParameters will have the precedence over the default parameters.
RoleParametersValue:
type: OS::Heat::Value
properties:
type: json
value:
map_replace:
- map_replace:
- vars: RhsmVars
- values: {get_param: [RoleParameters]}
- values:
vars: {get_param: RhsmVars}
outputs:
role_data:
description: Role data for the RHSM service.
value:
service_name: rhsm
config_settings:
tripleo::rhsm::firewall_rules: {}
upgrade_tasks: []
step_config: ''
host_prep_tasks:
- name: Red Hat Subscription Management configuration
vars: {get_attr: [RoleParametersValue, value, vars]}
block:
- include_role:
name: redhat-subscription