Pass ServiceNetMap to services
[apex-tripleo-heat-templates.git] / puppet / services / nova-base.yaml
1 heat_template_version: 2016-04-08
2
3 description: >
4   OpenStack Nova base service. Shared for all Nova services.
5
6 parameters:
7   ServiceNetMap:
8     default: {}
9     description: Mapping of service_name -> network name. Typically set
10                  via parameter_defaults in the resource registry.  This
11                  mapping overrides those in ServiceNetMapDefaults.
12     type: json
13   EndpointMap:
14     default: {}
15     description: Mapping of service endpoint -> protocol. Typically set
16                  via parameter_defaults in the resource registry.
17     type: json
18   NovaPassword:
19     description: The password for the nova service and db account, used by nova-api.
20     type: string
21     hidden: true
22   NeutronPassword:
23     description: The password for the neutron service and db account, used by neutron agents.
24     type: string
25     hidden: true
26   NovaOVSBridge:
27     default: 'br-int'
28     description: Name of integration bridge used by Open vSwitch
29     type: string
30   RabbitPassword:
31     description: The password for RabbitMQ
32     type: string
33     hidden: true
34   RabbitUserName:
35     default: guest
36     description: The username for RabbitMQ
37     type: string
38   RabbitClientUseSSL:
39     default: false
40     description: >
41         Rabbit client subscriber parameter to specify
42         an SSL connection to the RabbitMQ host.
43     type: string
44   RabbitClientPort:
45     default: 5672
46     description: Set rabbit subscriber port, change this if using SSL
47     type: number
48   Debug:
49     type: string
50     default: ''
51     description: Set to True to enable debugging on all services.
52   EnableConfigPurge:
53     type: boolean
54     default: true
55     description: >
56         Remove configuration that is not generated by TripleO. Setting
57         to false may result in configuration remnants after updates/upgrades.
58   NovaIPv6:
59     default: false
60     description: Enable IPv6 features in Nova
61     type: boolean
62   UpgradeLevelNovaCompute:
63     type: string
64     description: Nova Compute upgrade level
65     default: ''
66
67 outputs:
68   role_data:
69     description: Role data for the Nova base service.
70     value:
71       service_name: nova_base
72       config_settings:
73         nova::rabbit_password: {get_param: RabbitPassword}
74         nova::rabbit_userid: {get_param: RabbitUserName}
75         nova::rabbit_use_ssl: {get_param: RabbitClientUseSSL}
76         nova::rabbit_port: {get_param: RabbitClientPort}
77         nova::database_connection:
78           list_join:
79             - ''
80             - - {get_param: [EndpointMap, MysqlInternal, protocol]}
81               - '://nova:'
82               - {get_param: NovaPassword}
83               - '@'
84               - {get_param: [EndpointMap, MysqlInternal, host]}
85               - '/nova'
86         nova::api_database_connection:
87           list_join:
88             - ''
89             - - {get_param: [EndpointMap, MysqlInternal, protocol]}
90               - '://nova_api:'
91               - {get_param: NovaPassword}
92               - '@'
93               - {get_param: [EndpointMap, MysqlInternal, host]}
94               - '/nova_api'
95         nova::db::mysql::password: {get_input: nova_password}
96         nova::db::mysql::user: nova
97         nova::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
98         nova::db::mysql::dbname: nova
99         nova::db::mysql::allowed_hosts:
100           - '%'
101           - "%{hiera('mysql_bind_host')}"
102         nova::db::mysql_api::password: {get_input: nova_password}
103         nova::db::mysql_api::user: nova_api
104         nova::db::mysql_api::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
105         nova::db::mysql_api::dbname: nova_api
106         nova::db::mysql_api::allowed_hosts:
107           - '%'
108           - "%{hiera('mysql_bind_host')}"
109         nova::debug: {get_param: Debug}
110         nova::purge_config: {get_param: EnableConfigPurge}
111         nova::network::neutron::neutron_project_name: 'service'
112         nova::network::neutron::neutron_username: 'neutron'
113         nova::network::neutron::dhcp_domain: ''
114         nova::network::neutron::neutron_password: {get_param: NeutronPassword}
115         nova::network::neutron::neutron_url: {get_param: [EndpointMap, NeutronInternal, uri]}
116         nova::network::neutron::neutron_auth_url: {get_param: [EndpointMap, KeystoneV3Admin, uri]}
117         nova::rabbit_heartbeat_timeout_threshold: 60
118         nova::cinder_catalog_info: 'volumev2:cinderv2:internalURL'
119         nova::host: '"%{::fqdn}"'    # NOTE: extra quoting is needed.
120         nova::notify_on_state_change: 'vm_and_task_state'
121         nova::notification_driver: messagingv2
122         nova::network::neutron::neutron_auth_type: 'v3password'
123         nova::db::mysql::user: nova
124         nova::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
125         nova::db::mysql::dbname: nova
126         nova::db::mysql::allowed_hosts:
127           - '%'
128           - "%{hiera('mysql_bind_host')}"
129         nova::db::mysql_api::user: nova_api
130         nova::db::mysql_api::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
131         nova::db::mysql_api::dbname: nova_api
132         nova::db::mysql_api::allowed_hosts:
133           - '%'
134           - "%{hiera('mysql_bind_host')}"
135         nova::db::database_db_max_retries: -1
136         nova::db::database_max_retries: -1
137         nova::glance_api_servers: {get_param: [EndpointMap, GlanceInternal, uri]}
138         nova::use_ipv6: {get_param: NovaIPv6}
139         nova::upgrade_level_compute: {get_param: UpgradeLevelNovaCompute}
140         nova::network::neutron::neutron_ovs_bridge: {get_param: NovaOVSBridge}