1 heat_template_version: pike
4 MySQL service deployment using puppet
7 #Parameters not used EndpointMap
10 description: Dictionary packing service data
14 description: Mapping of service_name -> network name. Typically set
15 via parameter_defaults in the resource registry. This
16 mapping overrides those in ServiceNetMapDefaults.
23 description: Role name on which the service is applied
27 description: Parameters specific to the role
31 description: Mapping of service endpoint -> protocol. Typically set
32 via parameter_defaults in the resource registry.
35 description: Configures MySQL max_connections config setting
38 MysqlIncreaseFileLimit:
39 description: Flag to increase MySQL open-files-limit to 16384
46 MysqlClustercheckPassword:
51 description: Whether to use Galera instead of regular MariaDB.
54 description: The password for the nova service and db account
62 description: Enable IPv6 in MySQL
68 internal_tls_enabled: {equals: [{get_param: EnableInternalTLS}, true]}
72 description: Service MySQL using composable services.
78 # The Galera package should work in cluster and
79 # non-cluster modes based on the config file.
80 # We set the package name here explicitly so
81 # that it matches what we pre-install
82 # in tripleo-puppet-elements.
83 mysql::server::package_name: 'mariadb-galera-server'
84 mysql::server::manage_config_file: true
85 mysql_ipv6: {get_param: MysqlIPv6}
86 tripleo.mysql.firewall_rules:
95 mysql_max_connections: {get_param: MysqlMaxConnections}
96 mysql::server::root_password:
98 expression: $.data.passwords.where($ != '').first()
101 - {get_param: MysqlRootPassword}
102 - {get_param: [DefaultPasswords, mysql_root_password]}
103 mysql_clustercheck_password: {get_param: MysqlClustercheckPassword}
104 enable_galera: {get_param: EnableGalera}
105 # NOTE: bind IP is found in Heat replacing the network name with the
106 # local node IP for the given network; replacement examples
107 # (eg. for internal_api):
109 # internal_api_uri -> [IP]
110 # internal_api_subnet - > IP/CIDR
111 mysql_bind_host: {get_param: [ServiceNetMap, MysqlNetwork]}
112 tripleo::profile::base::database::mysql::bind_address:
115 "%{hiera('fqdn_$NETWORK')}"
117 $NETWORK: {get_param: [ServiceNetMap, MysqlNetwork]}
118 tripleo::profile::base::database::mysql::client_bind_address:
119 {get_param: [ServiceNetMap, MysqlNetwork]}
120 tripleo::profile::base::database::mysql::generate_dropin_file_limit:
121 {get_param: MysqlIncreaseFileLimit}
123 - internal_tls_enabled
125 generate_service_certificates: true
126 tripleo::profile::base::database::mysql::certificate_specs:
127 service_certificate: '/etc/pki/tls/certs/mysql.crt'
128 service_key: '/etc/pki/tls/private/mysql.key'
131 template: "%{hiera('cloud_name_NETWORK')}"
133 NETWORK: {get_param: [ServiceNetMap, MysqlNetwork]}
136 template: "%{hiera('cloud_name_NETWORK')}"
138 NETWORK: {get_param: [ServiceNetMap, MysqlNetwork]}
141 "%{hiera('fqdn_$NETWORK')}"
143 $NETWORK: {get_param: [ServiceNetMap, MysqlNetwork]}
146 template: "mysql/%{hiera('cloud_name_NETWORK')}"
148 NETWORK: {get_param: [ServiceNetMap, MysqlNetwork]}
151 include ::tripleo::profile::base::database::mysql
154 - internal_tls_enabled
157 network: {get_param: [ServiceNetMap, MysqlNetwork]}
160 network: {get_param: [ServiceNetMap, MysqlNetwork]}
164 - name: Check for galera root password
166 file: path=/root/.my.cnf state=file
169 service: name=mariadb state=stopped
170 - name: Start service
172 service: name=mariadb state=started
173 - name: Setup cell_v2 (create cell0 database)
178 - name: Setup cell_v2 (grant access to the nova DB user)
182 template: "name=nova password=PASSWORD host=\"%\" priv=\"nova.*:ALL/nova_cell0.*:ALL,GRANT\" state=present"
184 PASSWORD: {get_param: NovaPassword}