Implement X.509 auth for MySQL and Heat

Related-PROD: PROD-22736

Change-Id: I6aac70871a42169adc4ae8af5b8ea5d983ac81de
diff --git a/heat/server/cluster.yml b/heat/server/cluster.yml
index eee2b63..7bbc2ac 100644
--- a/heat/server/cluster.yml
+++ b/heat/server/cluster.yml
@@ -3,10 +3,13 @@
 - service.haproxy.proxy.single
 - service.keepalived.cluster.single
 - system.haproxy.proxy.listen.openstack.heat
+- system.salt.minion.cert.mysql.clients.openstack.heat
 parameters:
   _param:
     cluster_public_protocol: 'https'
     cluster_internal_protocol: 'http'
+    openstack_mysql_x509_enabled: False
+    galera_ssl_enabled: False
   linux:
     system:
       package:
@@ -37,6 +40,13 @@
         name: heat
         user: heat
         password: ${_param:mysql_heat_password}
+        x509:
+          enabled: ${_param:openstack_mysql_x509_enabled}
+          ca_file: ${_param:mysql_heat_ssl_ca_file}
+          key_file: ${_param:mysql_heat_client_ssl_key_file}
+          cert_file: ${_param:mysql_heat_client_ssl_cert_file}
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
       metadata:
         host: ${_param:cluster_public_host}
         port: 8000
diff --git a/heat/server/single.yml b/heat/server/single.yml
index 2f28613..208bdf0 100644
--- a/heat/server/single.yml
+++ b/heat/server/single.yml
@@ -1,6 +1,10 @@
 classes:
 - service.heat.server.single
+- system.salt.minion.cert.mysql.clients.openstack.heat
 parameters:
+  _param:
+    openstack_mysql_x509_enabled: False
+    galera_ssl_enabled: False
   linux:
     system:
       package:
@@ -20,4 +24,12 @@
       waitcondition:
         protocol: ${_param:cluster_public_protocol}
       watch:
-        protocol: ${_param:cluster_public_protocol}
\ No newline at end of file
+        protocol: ${_param:cluster_public_protocol}
+      database:
+        x509:
+          enabled: ${_param:openstack_mysql_x509_enabled}
+          ca_file: ${_param:mysql_heat_ssl_ca_file}
+          key_file: ${_param:mysql_heat_client_ssl_key_file}
+          cert_file: ${_param:mysql_heat_client_ssl_cert_file}
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
\ No newline at end of file