Merge "Add parameters to run k8s conformance during upgrades"
diff --git a/cinder/control/cluster.yml b/cinder/control/cluster.yml
index e34f55c..b56f46f 100644
--- a/cinder/control/cluster.yml
+++ b/cinder/control/cluster.yml
@@ -83,4 +83,7 @@
           port: 11211
         - host: ${_param:cluster_node03_address}
           port: 11211
-
+        security:
+          enabled: ${_param:cinder_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:cinder_memcache_secret_key}
diff --git a/cinder/control/single.yml b/cinder/control/single.yml
index 46bf972..6776835 100644
--- a/cinder/control/single.yml
+++ b/cinder/control/single.yml
@@ -39,4 +39,8 @@
           cert_file: ${_param:rabbitmq_cinder_client_ssl_cert_file}
         ssl:
           enabled: ${_param:rabbitmq_ssl_enabled}
-
+      cache:
+        security:
+          enabled: ${_param:cinder_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:cinder_memcache_secret_key}
diff --git a/cinder/volume/local.yml b/cinder/volume/local.yml
index 52f45db..2e7f8de 100644
--- a/cinder/volume/local.yml
+++ b/cinder/volume/local.yml
@@ -30,3 +30,8 @@
       identity:
         host: ${_param:single_address}
         region: ${_param:openstack_region}
+      cache:
+        security:
+          enabled: ${_param:cinder_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:cinder_memcache_secret_key}
diff --git a/cinder/volume/single.yml b/cinder/volume/single.yml
index 35902b8..c3115e1 100644
--- a/cinder/volume/single.yml
+++ b/cinder/volume/single.yml
@@ -43,3 +43,8 @@
         host: ${_param:openstack_control_address}
         protocol: ${_param:cluster_internal_protocol}
         region: ${_param:openstack_region}
+      cache:
+        security:
+          enabled: ${_param:cinder_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:cinder_memcache_secret_key}
diff --git a/defaults/openstack/init.yml b/defaults/openstack/init.yml
index c5464d3..49ad5c6 100644
--- a/defaults/openstack/init.yml
+++ b/defaults/openstack/init.yml
@@ -9,3 +9,9 @@
     # Openstack memcache security
     openstack_memcache_security_enabled: False
     openstack_memcache_security_strategy: 'ENCRYPT'
+    # Neutron
+    neutron_memcache_security_enabled: ${_param:openstack_memcache_security_enabled}
+    neutron_memcache_secret_key: ''
+    # Cinder
+    cinder_memcache_security_enabled: ${_param:openstack_memcache_security_enabled}
+    cinder_memcache_secret_key: ''
diff --git a/docker/swarm/stack/keycloak.yml b/docker/swarm/stack/keycloak.yml
index c712fda..e613637 100644
--- a/docker/swarm/stack/keycloak.yml
+++ b/docker/swarm/stack/keycloak.yml
@@ -2,7 +2,7 @@
   _param:
     docker_keycloak_server_replicas: 1
     docker_keycloak_proxy_replicas: 1
-    docker_image_keycloak_server: jboss/keycloak:3.4.2.Final
+    docker_image_keycloak_server: jboss/keycloak:4.5.0.Final
     docker_image_keycloak_proxy: jboss/keycloak-proxy:3.4.2.Final
     keycloak_bind_port: ${_param:haproxy_keycloak_bind_port}
     keycloak_proxy_bind_port: ${_param:haproxy_keycloak_proxy_bind_port}
@@ -16,6 +16,7 @@
           environment:
             KEYCLOAK_USER: ${_param:keycloak_admin_username}
             KEYCLOAK_PASSWORD: ${_param:keycloak_admin_password}
+            KEYCLOAK_IMPORT: "/app/realms.json"
           service:
             keycloak-server:
               image: ${_param:docker_image_keycloak_server}
diff --git a/glance/control/cluster.yml b/glance/control/cluster.yml
index da4b9e8..de8e9ae 100644
--- a/glance/control/cluster.yml
+++ b/glance/control/cluster.yml
@@ -6,6 +6,9 @@
 - system.salt.minion.cert.mysql.clients.openstack.glance
 - system.salt.minion.cert.rabbitmq.clients.openstack.glance
 parameters:
+  _param:
+    glance_memcache_security_enabled: ${_param:openstack_memcache_security_enabled}
+    glance_memcache_secret_key: ''
   linux:
     system:
       cron:
@@ -69,6 +72,11 @@
           cert_file: ${_param:rabbitmq_glance_client_ssl_cert_file}
         ssl:
           enabled: ${_param:rabbitmq_ssl_enabled}
+      cache:
+        security:
+          enabled: ${_param:glance_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:glance_memcache_secret_key}
       storage:
         engine: file
       images: []
diff --git a/glance/control/single.yml b/glance/control/single.yml
index 34e3e96..ad6e1cb 100644
--- a/glance/control/single.yml
+++ b/glance/control/single.yml
@@ -3,6 +3,9 @@
 - system.salt.minion.cert.mysql.clients.openstack.glance
 - system.salt.minion.cert.rabbitmq.clients.openstack.glance
 parameters:
+  _param:
+    glance_memcache_security_enabled: ${_param:openstack_memcache_security_enabled}
+    glance_memcache_secret_key: ''
   linux:
     system:
       cron:
@@ -40,3 +43,8 @@
           cert_file: ${_param:rabbitmq_glance_client_ssl_cert_file}
         ssl:
           enabled: ${_param:rabbitmq_ssl_enabled}
+      cache:
+        security:
+          enabled: ${_param:glance_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:glance_memcache_secret_key}
diff --git a/keycloak/server/realm/drivetrain.yml b/keycloak/server/realm/drivetrain.yml
new file mode 100644
index 0000000..42b3473
--- /dev/null
+++ b/keycloak/server/realm/drivetrain.yml
@@ -0,0 +1,76 @@
+parameters:
+  _param:
+    keycloak_drivetrain_users_dn: ou=people,dc=cicd,dc=local
+    keycloak_drivetrain_bind_dn: cn=admin,dc=cicd,dc=local
+    keycloak_drivetrain_connection_url: ldap://${_param:single_address}:1389
+    keycloak_drivetrain_provider_display_name: drivetrain-ldap
+  keycloak:
+    server:
+      realm:
+        drivetrain-realm:
+          enabled: true
+          client:
+            operations-api:
+              enabled: true
+              base_url: /operations-api-portal
+              redirect_uris:
+              - /operations-api-portal/*
+              admin_url: /operations-api-portal
+              direct_access_grants_enabled: true
+              secret: ${_param:keycloak_operations_api_client_secret}
+              protocol_mapper:
+                oidc-usermodel-property-mapper:
+                  username:
+                    name: username
+                    user_attribute: username
+                    claim_name: preferred_username
+                  given_name:
+                    name: given name
+                    user_attribute: firstName
+                    claim_name: given_name
+                  family_name:
+                    name: family name
+                    user_attribute: lastName
+                    claim_name: family_name
+                  email:
+                    name: email
+                    user_attribute: email
+                    claim_name: email
+                oidc-full-name-mapper:
+                  full_name:
+                    name: full_name
+          federation_provider:
+            ldap:
+              display_name: ${_param:keycloak_drivetrain_provider_display_name}
+              users_dn: ${_param:keycloak_drivetrain_users_dn}
+              bind_dn: ${_param:keycloak_drivetrain_bind_dn}
+              bind_credential: ${_param:keycloak_drivetrain_bind_credential}
+              connection_url: ${_param:keycloak_drivetrain_connection_url}
+          federation_mapper:
+            user-attribute-ldap-mapper:
+              username:
+                name: username
+                provider_display_name: ${_param:keycloak_drivetrain_provider_display_name}
+                ldap_attribute: uid
+                model_attribute: username
+              first_name:
+                name: first name
+                provider_display_name: ${_param:keycloak_drivetrain_provider_display_name}
+                ldap_attribute: givenName
+                model_attribute: firstName
+              last_name:
+                name: last name
+                provider_display_name: ${_param:keycloak_drivetrain_provider_display_name}
+                ldap_attribute: sn
+                model_attribute: lastName
+              email:
+                name: email
+                provider_display_name: ${_param:keycloak_drivetrain_provider_display_name}
+                ldap_attribute: mail
+                model_attribute: email
+                mandatory: false
+            role-ldap-mapper:
+              realm_roles:
+                name: realm roles
+                provider_display_name: ${_param:keycloak_drivetrain_provider_display_name}
+                roles_dn: ou=groups,dc=cicd,dc=local
diff --git a/keycloak/server/single.yml b/keycloak/server/single.yml
new file mode 100644
index 0000000..504532b
--- /dev/null
+++ b/keycloak/server/single.yml
@@ -0,0 +1,3 @@
+classes:
+- service.keycloak.server
+- system.keycloak.server.realm.drivetrain
diff --git a/linux/system/repo/duo.yml b/linux/system/repo/duo.yml
new file mode 100644
index 0000000..95db543
--- /dev/null
+++ b/linux/system/repo/duo.yml
@@ -0,0 +1,12 @@
+classes:
+- system.linux.system.repo.keystorage.duo
+parameters:
+  _param:
+    linux_system_repo_duo_url: http://pkg.duosecurity.com/Ubuntu
+  linux:
+    system:
+      repo:
+        duo:
+          key: ${_param:linux_system_repo_duo_key}
+          source: "deb [arch=amd64] ${_param:linux_system_repo_duo_url} ${_param:linux_system_codename} main"
+          architectures: amd64
diff --git a/linux/system/repo/keystorage/duo.yml b/linux/system/repo/keystorage/duo.yml
new file mode 100644
index 0000000..19caa67
--- /dev/null
+++ b/linux/system/repo/keystorage/duo.yml
@@ -0,0 +1,46 @@
+parameters:
+  _param:
+    # pub   1024D/15D32EFC 2013-09-05 [expires: 2020-08-22]
+    linux_system_repo_duo_key: |
+        -----BEGIN PGP PUBLIC KEY BLOCK-----
+        Version: GnuPG v2.0.22 (GNU/Linux)
+
+        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
+        WbTIiN63dr6gdz7hoZJ7PFmJ
+        =t1j7
+        -----END PGP PUBLIC KEY BLOCK-----
+
diff --git a/neutron/compute/cluster.yml b/neutron/compute/cluster.yml
index a9cf9c1..0523c3f 100644
--- a/neutron/compute/cluster.yml
+++ b/neutron/compute/cluster.yml
@@ -38,3 +38,8 @@
           cert_file: ${_param:rabbitmq_neutron_client_ssl_cert_file}
         ssl:
           enabled: ${_param:rabbitmq_ssl_enabled}
+      cache:
+        security:
+          enabled: ${_param:neutron_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:neutron_memcache_secret_key}
diff --git a/neutron/control/cluster.yml b/neutron/control/cluster.yml
index 52a91ea..4a196fa 100644
--- a/neutron/control/cluster.yml
+++ b/neutron/control/cluster.yml
@@ -39,5 +39,10 @@
         ssl:
           enabled: ${_param:galera_ssl_enabled}
       role: ${_param:openstack_node_role}
+      cache:
+        security:
+          enabled: ${_param:neutron_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:neutron_memcache_secret_key}
     identity:
       protocol: ${_param:cluster_internal_protocol}
diff --git a/neutron/control/single.yml b/neutron/control/single.yml
index 40bdea3..8db8ead 100644
--- a/neutron/control/single.yml
+++ b/neutron/control/single.yml
@@ -34,3 +34,8 @@
           enabled: ${_param:rabbitmq_ssl_enabled}
       identity:
         protocol: ${_param:internal_protocol}
+      cache:
+        security:
+          enabled: ${_param:neutron_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:neutron_memcache_secret_key}
diff --git a/neutron/gateway/cluster.yml b/neutron/gateway/cluster.yml
index 8f84fa1..bc51ab9 100644
--- a/neutron/gateway/cluster.yml
+++ b/neutron/gateway/cluster.yml
@@ -31,3 +31,8 @@
           cert_file: ${_param:rabbitmq_neutron_client_ssl_cert_file}
         ssl:
           enabled: ${_param:rabbitmq_ssl_enabled}
+      cache:
+        security:
+          enabled: ${_param:neutron_memcache_security_enabled}
+          strategy: ${_param:openstack_memcache_security_strategy}
+          secret_key: ${_param:neutron_memcache_secret_key}
diff --git a/salt/master/formula/pkg/oss.yml b/salt/master/formula/pkg/oss.yml
index 45739d2..aade8cf 100644
--- a/salt/master/formula/pkg/oss.yml
+++ b/salt/master/formula/pkg/oss.yml
@@ -10,3 +10,6 @@
             rundeck:
               source: pkg
               name: salt-formula-rundeck
+            keycloak:
+              source: pkg
+              name: salt-formula-keycloak
diff --git a/salt/minion/cert/mysql/clients/openstack/aodh.yml b/salt/minion/cert/mysql/clients/openstack/aodh.yml
index ba5ef52..ee1dccc 100644
--- a/salt/minion/cert/mysql/clients/openstack/aodh.yml
+++ b/salt/minion/cert/mysql/clients/openstack/aodh.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-aodh-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-aodh-client
diff --git a/salt/minion/cert/mysql/clients/openstack/barbican.yml b/salt/minion/cert/mysql/clients/openstack/barbican.yml
index 8d158ee..c6476d3 100644
--- a/salt/minion/cert/mysql/clients/openstack/barbican.yml
+++ b/salt/minion/cert/mysql/clients/openstack/barbican.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-barbican-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-barbican-client
diff --git a/salt/minion/cert/mysql/clients/openstack/cinder.yml b/salt/minion/cert/mysql/clients/openstack/cinder.yml
index 1ff053f..475132a 100644
--- a/salt/minion/cert/mysql/clients/openstack/cinder.yml
+++ b/salt/minion/cert/mysql/clients/openstack/cinder.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-cinder-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-cinder-client
diff --git a/salt/minion/cert/mysql/clients/openstack/designate.yml b/salt/minion/cert/mysql/clients/openstack/designate.yml
index f66c59f..7910dfb 100644
--- a/salt/minion/cert/mysql/clients/openstack/designate.yml
+++ b/salt/minion/cert/mysql/clients/openstack/designate.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-designate-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-designate-client
diff --git a/salt/minion/cert/mysql/clients/openstack/glance.yml b/salt/minion/cert/mysql/clients/openstack/glance.yml
index ab71174..436ac64 100644
--- a/salt/minion/cert/mysql/clients/openstack/glance.yml
+++ b/salt/minion/cert/mysql/clients/openstack/glance.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-glance-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-glance-client
diff --git a/salt/minion/cert/mysql/clients/openstack/gnocchi.yml b/salt/minion/cert/mysql/clients/openstack/gnocchi.yml
index 1aa31c9..f6f7497 100644
--- a/salt/minion/cert/mysql/clients/openstack/gnocchi.yml
+++ b/salt/minion/cert/mysql/clients/openstack/gnocchi.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-gnocchi-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-gnocchi-client
diff --git a/salt/minion/cert/mysql/clients/openstack/heat.yml b/salt/minion/cert/mysql/clients/openstack/heat.yml
index 1246dae..f338de7 100644
--- a/salt/minion/cert/mysql/clients/openstack/heat.yml
+++ b/salt/minion/cert/mysql/clients/openstack/heat.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-heat-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-heat-client
diff --git a/salt/minion/cert/mysql/clients/openstack/ironic.yml b/salt/minion/cert/mysql/clients/openstack/ironic.yml
index fe4aa19..d43dc86 100644
--- a/salt/minion/cert/mysql/clients/openstack/ironic.yml
+++ b/salt/minion/cert/mysql/clients/openstack/ironic.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-ironic-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-ironic-client
diff --git a/salt/minion/cert/mysql/clients/openstack/keystone.yml b/salt/minion/cert/mysql/clients/openstack/keystone.yml
index c0fe71d..69b100b 100644
--- a/salt/minion/cert/mysql/clients/openstack/keystone.yml
+++ b/salt/minion/cert/mysql/clients/openstack/keystone.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-keystone-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-keystone-client
diff --git a/salt/minion/cert/mysql/clients/openstack/manila.yml b/salt/minion/cert/mysql/clients/openstack/manila.yml
index a1ca797..700c3cb 100644
--- a/salt/minion/cert/mysql/clients/openstack/manila.yml
+++ b/salt/minion/cert/mysql/clients/openstack/manila.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-manila-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-manila-client
diff --git a/salt/minion/cert/mysql/clients/openstack/neutron.yml b/salt/minion/cert/mysql/clients/openstack/neutron.yml
index d5b1cd8..8bca247 100644
--- a/salt/minion/cert/mysql/clients/openstack/neutron.yml
+++ b/salt/minion/cert/mysql/clients/openstack/neutron.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-neutron-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-neutron-client
diff --git a/salt/minion/cert/mysql/clients/openstack/nova.yml b/salt/minion/cert/mysql/clients/openstack/nova.yml
index 4f03628..7aa67d6 100644
--- a/salt/minion/cert/mysql/clients/openstack/nova.yml
+++ b/salt/minion/cert/mysql/clients/openstack/nova.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-nova-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-nova-client
diff --git a/salt/minion/cert/mysql/clients/openstack/panko.yml b/salt/minion/cert/mysql/clients/openstack/panko.yml
index 0593ae2..ea7c450 100644
--- a/salt/minion/cert/mysql/clients/openstack/panko.yml
+++ b/salt/minion/cert/mysql/clients/openstack/panko.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         mysql-panko-client:
+          enabled: ${_param:openstack_mysql_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: mysql-panko-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/aodh.yml b/salt/minion/cert/rabbitmq/clients/openstack/aodh.yml
index 537a3a4..4f56674 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/aodh.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/aodh.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-aodh-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-aodh-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/barbican.yml b/salt/minion/cert/rabbitmq/clients/openstack/barbican.yml
index 9fa04ef..11c8b22 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/barbican.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/barbican.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-barbican-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-barbican-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/ceilometer.yml b/salt/minion/cert/rabbitmq/clients/openstack/ceilometer.yml
index a2b91fd..315e9f0 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/ceilometer.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/ceilometer.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-ceilometer-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-ceilometer-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/cinder.yml b/salt/minion/cert/rabbitmq/clients/openstack/cinder.yml
index 576c135..9129ca8 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/cinder.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/cinder.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-cinder-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-cinder-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/designate.yml b/salt/minion/cert/rabbitmq/clients/openstack/designate.yml
index f5eb631..973215f 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/designate.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/designate.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-designate-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-designate-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/glance.yml b/salt/minion/cert/rabbitmq/clients/openstack/glance.yml
index 94749ae..e4ad7d4 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/glance.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/glance.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-glance-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-glance-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/heat.yml b/salt/minion/cert/rabbitmq/clients/openstack/heat.yml
index e69ab14..f95f7d2 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/heat.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/heat.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-heat-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-heat-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/ironic.yml b/salt/minion/cert/rabbitmq/clients/openstack/ironic.yml
index f9b0d74..007faf2 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/ironic.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/ironic.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-ironic-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-ironic-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/keystone.yml b/salt/minion/cert/rabbitmq/clients/openstack/keystone.yml
index 8261f73..4226118 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/keystone.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/keystone.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-keystone-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-keystone-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/manila.yml b/salt/minion/cert/rabbitmq/clients/openstack/manila.yml
index 345b697..787273c 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/manila.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/manila.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-manila-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-manila-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/neutron.yml b/salt/minion/cert/rabbitmq/clients/openstack/neutron.yml
index 2f8f5c3..955506f 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/neutron.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/neutron.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-neutron-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-neutron-client
diff --git a/salt/minion/cert/rabbitmq/clients/openstack/nova.yml b/salt/minion/cert/rabbitmq/clients/openstack/nova.yml
index 160acd9..dfacb00 100644
--- a/salt/minion/cert/rabbitmq/clients/openstack/nova.yml
+++ b/salt/minion/cert/rabbitmq/clients/openstack/nova.yml
@@ -9,6 +9,7 @@
     minion:
       cert:
         rabbitmq-nova-client:
+          enabled: ${_param:openstack_rabbitmq_x509_enabled}
           host: ${_param:salt_minion_ca_host}
           authority: ${_param:salt_minion_ca_authority}
           common_name: rabbitmq-nova-client