Pass ServiceNetMap to services
[apex-tripleo-heat-templates.git] / puppet / services / keystone.yaml
1 heat_template_version: 2016-04-08
2
3 description: >
4   OpenStack Keystone service configured with Puppet
5
6 parameters:
7   KeystoneEnableDBPurge:
8     default: true
9     description: |
10         Whether to create cron job for purging soft deleted rows in Keystone database.
11     type: boolean
12   KeystoneSSLCertificate:
13     default: ''
14     description: Keystone certificate for verifying token validity.
15     type: string
16   KeystoneSSLCertificateKey:
17     default: ''
18     description: Keystone key for signing tokens.
19     type: string
20     hidden: true
21   KeystoneNotificationDriver:
22     description: Comma-separated list of Oslo notification drivers used by Keystone
23     default: ['messaging']
24     type: comma_delimited_list
25   KeystoneNotificationFormat:
26     description: The Keystone notification format
27     default: 'basic'
28     type: string
29     constraints:
30       - allowed_values: [ 'basic', 'cadf' ]
31   KeystoneRegion:
32     type: string
33     default: 'regionOne'
34     description: Keystone region for endpoint
35   ServiceNetMap:
36     default: {}
37     description: Mapping of service_name -> network name. Typically set
38                  via parameter_defaults in the resource registry.  This
39                  mapping overrides those in ServiceNetMapDefaults.
40     type: json
41   EndpointMap:
42     default: {}
43     description: Mapping of service endpoint -> protocol. Typically set
44                  via parameter_defaults in the resource registry.
45     type: json
46   Debug:
47     type: string
48     default: ''
49   AdminEmail:
50     default: 'admin@example.com'
51     description: The email for the keystone admin account.
52     type: string
53     hidden: true
54   AdminPassword:
55     description: The password for the keystone admin account, used for monitoring, querying neutron etc.
56     type: string
57     hidden: true
58   AdminToken:
59     description: The keystone auth secret and db password.
60     type: string
61     hidden: true
62   RabbitPassword:
63     description: The password for RabbitMQ
64     type: string
65     hidden: true
66   RabbitUserName:
67     default: guest
68     description: The username for RabbitMQ
69     type: string
70   RabbitClientUseSSL:
71     default: false
72     description: >
73         Rabbit client subscriber parameter to specify
74         an SSL connection to the RabbitMQ host.
75     type: string
76   RabbitClientPort:
77     default: 5672
78     description: Set rabbit subscriber port, change this if using SSL
79     type: number
80   KeystoneWorkers:
81     type: string
82     description: Set the number of workers for keystone::wsgi::apache
83     default: '"%{::processorcount}"'
84 outputs:
85   role_data:
86     description: Role data for the Keystone role.
87     value:
88       service_name: keystone
89       config_settings:
90         keystone::database_connection:
91           list_join:
92             - ''
93             - - {get_param: [EndpointMap, MysqlInternal, protocol]}
94               - '://keystone:'
95               - {get_param: AdminToken}
96               - '@'
97               - {get_param: [EndpointMap, MysqlInternal, host]}
98               - '/keystone'
99         keystone::admin_token: {get_param: AdminToken}
100         keystone::roles::admin::password: {get_param: AdminPassword}
101         keystone_ssl_certificate: {get_param: KeystoneSSLCertificate}
102         keystone_ssl_certificate_key: {get_param: KeystoneSSLCertificateKey}
103         keystone::enable_proxy_headers_parsing: true
104         keystone::debug: {get_param: Debug}
105         keystone::db::mysql::password: {get_param: AdminToken}
106         keystone::rabbit_userid: {get_param: RabbitUserName}
107         keystone::rabbit_password: {get_param: RabbitPassword}
108         keystone::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
109         keystone::rabbit_port: {get_param: RabbitClientPort}
110         keystone::notification_driver: {get_param: KeystoneNotificationDriver}
111         keystone::notification_format: {get_param: KeystoneNotificationFormat}
112         keystone::roles::admin::email: {get_param: AdminEmail}
113         keystone::roles::admin::password: {get_param: AdminPassword}
114         keystone::endpoint::public_url: {get_param: [EndpointMap, KeystonePublic, uri_no_suffix]}
115         keystone::endpoint::internal_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
116         keystone::endpoint::admin_url: {get_param: [EndpointMap, KeystoneAdmin, uri_no_suffix]}
117         keystone::endpoint::region: {get_param: KeystoneRegion}
118         keystone_enable_db_purge: {get_param: KeystoneEnableDBPurge}
119         keystone::public_endpoint: {get_param: [EndpointMap, KeystonePublic, uri_no_suffix]}
120         keystone::db::mysql::user: keystone
121         keystone::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
122         keystone::db::mysql::dbname: keystone
123         keystone::db::mysql::allowed_hosts:
124           - '%'
125           - "%{hiera('mysql_bind_host')}"
126         keystone::rabbit_heartbeat_timeout_threshold: 60
127         keystone::cron::token_flush::maxdelay: 3600
128         keystone::roles::admin::service_tenant: 'service'
129         keystone::roles::admin::admin_tenant: 'admin'
130         keystone::cron::token_flush::destination: '/dev/null'
131         keystone::config::keystone_config:
132           ec2/driver:
133             value: 'keystone.contrib.ec2.backends.sql.Ec2'
134         keystone::service_name: 'httpd'
135         keystone::wsgi::apache::ssl: false
136
137         keystone::wsgi::apache::workers: {get_param: KeystoneWorkers}
138         # override via extraconfig:
139         keystone::wsgi::apache::threads: 1
140         keystone::db::database_db_max_retries: -1
141         keystone::db::database_max_retries: -1
142         tripleo.keystone.firewall_rules:
143           '111 keystone':
144             dport:
145               - 5000
146               - 13000
147               - 35357
148               - 13357
149       step_config: |
150         include ::tripleo::profile::base::keystone