Merge "[REFACTOR] Implement X.509 auth for MySQL and Nova"
diff --git a/designate/server/cluster/simple.yml b/designate/server/cluster/simple.yml
index 9f9b18b..06c6a33 100644
--- a/designate/server/cluster/simple.yml
+++ b/designate/server/cluster/simple.yml
@@ -1,9 +1,12 @@
classes:
- service.designate.server.cluster
+- system.salt.minion.cert.mysql.clients.openstack.designate
parameters:
_param:
designate_admin_api_enabled: false
cluster_internal_protocol: 'http'
+ openstack_mysql_x509_enabled: False
+ galera_ssl_enabled: False
linux:
system:
package:
@@ -33,6 +36,13 @@
pool_manager: designate_pool_manager
user: designate
password: ${_param:mysql_designate_password}
+ x509:
+ enabled: ${_param:openstack_mysql_x509_enabled}
+ ca_file: ${_param:mysql_designate_ssl_ca_file}
+ key_file: ${_param:mysql_designate_client_ssl_key_file}
+ cert_file: ${_param:mysql_designate_client_ssl_cert_file}
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
identity:
engine: keystone
host: ${_param:openstack_control_address}
diff --git a/designate/server/single.yml b/designate/server/single.yml
index 683180e..1bb51cb 100644
--- a/designate/server/single.yml
+++ b/designate/server/single.yml
@@ -1,9 +1,12 @@
classes:
- service.designate.server.single
+- system.salt.minion.cert.mysql.clients.openstack.designate
parameters:
_param:
designate_admin_api_enabled: false
internal_protocol: 'http'
+ openstack_mysql_x509_enabled: False
+ galera_ssl_enabled: False
linux:
system:
package:
@@ -33,6 +36,13 @@
pool_manager: designate_pool_manager
user: designate
password: ${_param:mysql_designate_password}
+ x509:
+ enabled: ${_param:openstack_mysql_x509_enabled}
+ ca_file: ${_param:mysql_designate_ssl_ca_file}
+ key_file: ${_param:mysql_designate_client_ssl_key_file}
+ cert_file: ${_param:mysql_designate_client_ssl_cert_file}
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
identity:
engine: keystone
host: ${_param:single_address}
diff --git a/galera/server/database/ssl/designate.yml b/galera/server/database/ssl/designate.yml
new file mode 100644
index 0000000..d8a7ed8
--- /dev/null
+++ b/galera/server/database/ssl/designate.yml
@@ -0,0 +1,4 @@
+parameters:
+ _param:
+ mysql_designate_ssl_option:
+ - SSL: True
\ No newline at end of file
diff --git a/galera/server/database/ssl/glance.yml b/galera/server/database/ssl/glance.yml
new file mode 100644
index 0000000..99802f8
--- /dev/null
+++ b/galera/server/database/ssl/glance.yml
@@ -0,0 +1,4 @@
+parameters:
+ _param:
+ mysql_glance_ssl_option:
+ - SSL: True
\ No newline at end of file
diff --git a/galera/server/database/ssl/heat.yml b/galera/server/database/ssl/heat.yml
new file mode 100644
index 0000000..567d611
--- /dev/null
+++ b/galera/server/database/ssl/heat.yml
@@ -0,0 +1,4 @@
+parameters:
+ _param:
+ mysql_heat_ssl_option:
+ - SSL: True
\ No newline at end of file
diff --git a/galera/server/database/x509/designate.yml b/galera/server/database/x509/designate.yml
new file mode 100644
index 0000000..27e3ae4
--- /dev/null
+++ b/galera/server/database/x509/designate.yml
@@ -0,0 +1,7 @@
+parameters:
+ _param:
+ mysql_designate_client_ssl_x509_subject: '/C=cz/CN=mysql-designate-client/L=Prague/O=Mirantis'
+ mysql_designate_client_ssl_x509_issuer: '/C=cz/CN=Salt Master CA/L=Prague/O=Mirantis'
+ mysql_designate_ssl_option:
+ - SUBJECT: ${_param:mysql_designate_client_ssl_x509_subject}
+ - ISSUER: ${_param:mysql_designate_client_ssl_x509_issuer}
\ No newline at end of file
diff --git a/galera/server/database/x509/glance.yml b/galera/server/database/x509/glance.yml
new file mode 100644
index 0000000..2fdcea3
--- /dev/null
+++ b/galera/server/database/x509/glance.yml
@@ -0,0 +1,7 @@
+parameters:
+ _param:
+ mysql_glance_client_ssl_x509_subject: '/C=cz/CN=mysql-glance-client/L=Prague/O=Mirantis'
+ mysql_glance_client_ssl_x509_issuer: '/C=cz/CN=Salt Master CA/L=Prague/O=Mirantis'
+ mysql_glance_ssl_option:
+ - SUBJECT: ${_param:mysql_glance_client_ssl_x509_subject}
+ - ISSUER: ${_param:mysql_glance_client_ssl_x509_issuer}
\ No newline at end of file
diff --git a/galera/server/database/x509/heat.yml b/galera/server/database/x509/heat.yml
new file mode 100644
index 0000000..57dbd5f
--- /dev/null
+++ b/galera/server/database/x509/heat.yml
@@ -0,0 +1,7 @@
+parameters:
+ _param:
+ mysql_heat_client_ssl_x509_subject: '/C=cz/CN=mysql-heat-client/L=Prague/O=Mirantis'
+ mysql_heat_client_ssl_x509_issuer: '/C=cz/CN=Salt Master CA/L=Prague/O=Mirantis'
+ mysql_heat_ssl_option:
+ - SUBJECT: ${_param:mysql_heat_client_ssl_x509_subject}
+ - ISSUER: ${_param:mysql_heat_client_ssl_x509_issuer}
\ No newline at end of file
diff --git a/glance/control/cluster.yml b/glance/control/cluster.yml
index ae2b3c1..a9181de 100644
--- a/glance/control/cluster.yml
+++ b/glance/control/cluster.yml
@@ -3,7 +3,11 @@
- service.keepalived.cluster.single
- service.haproxy.proxy.single
- system.haproxy.proxy.listen.openstack.glance
+- system.salt.minion.cert.mysql.clients.openstack.glance
parameters:
+ _param:
+ openstack_mysql_x509_enabled: False
+ galera_ssl_enabled: False
linux:
system:
cron:
@@ -27,6 +31,13 @@
name: glance
user: glance
password: ${_param:mysql_glance_password}
+ x509:
+ enabled: ${_param:openstack_mysql_x509_enabled}
+ ca_file: ${_param:mysql_glance_ssl_ca_file}
+ key_file: ${_param:mysql_glance_client_ssl_key_file}
+ cert_file: ${_param:mysql_glance_client_ssl_cert_file}
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
registry:
host: ${_param:cluster_vip_address}
port: 9191
diff --git a/glance/control/single.yml b/glance/control/single.yml
index cd5a6fe..a036077 100644
--- a/glance/control/single.yml
+++ b/glance/control/single.yml
@@ -1,6 +1,10 @@
classes:
- service.glance.control.single
+- system.salt.minion.cert.mysql.clients.openstack.glance
parameters:
+ _param:
+ openstack_mysql_x509_enabled: False
+ galera_ssl_enabled: False
linux:
system:
cron:
@@ -16,6 +20,13 @@
role: ${_param:openstack_node_role}
database:
host: ${_param:single_address}
+ x509:
+ enabled: ${_param:openstack_mysql_x509_enabled}
+ ca_file: ${_param:mysql_glance_ssl_ca_file}
+ key_file: ${_param:mysql_glance_client_ssl_key_file}
+ cert_file: ${_param:mysql_glance_client_ssl_cert_file}
+ ssl:
+ enabled: ${_param:galera_ssl_enabled}
identity:
region: ${_param:openstack_region}
show_multiple_locations: True
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
diff --git a/jenkins/client/job/docker/cicd/tempest.yml b/jenkins/client/job/docker/cicd/tempest.yml
index 38cc667..e156802 100644
--- a/jenkins/client/job/docker/cicd/tempest.yml
+++ b/jenkins/client/job/docker/cicd/tempest.yml
@@ -22,7 +22,11 @@
"mcp/docker-ci-tempest":
branches:
- master
+ - queens
- pike
+ - ocata
+ - newton
+ - mitaka
event:
patchset:
- created:
diff --git a/jenkins/client/job/k8s-test/init.yml b/jenkins/client/job/k8s-test/init.yml
index cfce810..c26bfce 100644
--- a/jenkins/client/job/k8s-test/init.yml
+++ b/jenkins/client/job/k8s-test/init.yml
@@ -3,4 +3,6 @@
- system.jenkins.client.job.k8s-test.mcp-k8s-merge-pipeline
- system.jenkins.client.job.k8s-test.mcp-k8s-dashboard-test-pipeline
- system.jenkins.client.job.k8s-test.mcp-k8s-dashboard-merge-pipeline
+- system.jenkins.client.job.k8s-test.mcp-k8s-metallb-test-pipeline
+- system.jenkins.client.job.k8s-test.mcp-k8s-metallb-merge-pipeline
- system.jenkins.client.job.k8s-test.mcp-k8s-formula-test-pipeline
diff --git a/kubernetes/common.yml b/kubernetes/common.yml
index ad5a1e1..9151987 100644
--- a/kubernetes/common.yml
+++ b/kubernetes/common.yml
@@ -19,6 +19,7 @@
kubernetes_sriov_repo: https://docker-prod-local.artifactory.mirantis.com/artifactory/binary-prod-local/mirantis/kubernetes/sriov-cni
kubernetes_cniplugins_repo: https://docker-prod-local.artifactory.mirantis.com/artifactory/binary-prod-local/mirantis/kubernetes/containernetworking-plugins
kubernetes_dashboard_repo: k8s.gcr.io
+ kubernetes_coredns_repo: coredns
# component docker images
kubernetes_docker_package: docker-engine=1.13.1-0~ubuntu-xenial
@@ -53,12 +54,13 @@
kubernetes_fluentd_aggregator_image: fluent/fluentd-kubernetes-daemonset:v1.2-debian-elasticsearch
kubernetes_fluentd_logger_image: fluent/fluentd-kubernetes-daemonset:v1.2-debian-stackdriver
kubernetes_telegraf_image: docker.io/telegraf:1.5.3
+ kubernetes_coredns_image: ${_param:kubernetes_coredns_repo}/coredns:1.2.0
kubelet_fail_on_swap: true
kubernetes_dashboard_enabled: true
- kubernetes_kubedns_enabled: true
+ kubernetes_kubedns_enabled: false
kubernetes_externaldns_enabled: false
- kubernetes_coredns_enabled: false
+ kubernetes_coredns_enabled: true
kubernetes_externaldns_provider: coredns
kubernetes_virtlet_enabled: false
kubernetes_flannel_enabled: false
@@ -163,6 +165,7 @@
provider: ${_param:kubernetes_externaldns_provider}
coredns:
enabled: ${_param:kubernetes_coredns_enabled}
+ image: ${_param:kubernetes_coredns_image}
contrail_network_controller:
enabled: ${_param:kubernetes_contrail_network_controller_enabled}
image: ${_param:kubernetes_contrail_network_controller_image}
diff --git a/neutron/control/openvswitch/cluster.yml b/neutron/control/openvswitch/cluster.yml
index 3f80a55..5800060 100644
--- a/neutron/control/openvswitch/cluster.yml
+++ b/neutron/control/openvswitch/cluster.yml
@@ -17,6 +17,7 @@
cluster_internal_protocol: 'http'
neutron:
server:
+ role: ${_param:openstack_node_role}
global_physnet_mtu: ${_param:neutron_global_physnet_mtu}
l3_ha: ${_param:neutron_l3_ha}
dvr: ${_param:neutron_control_dvr}
diff --git a/openssh/server/team/drivetrain.yml b/openssh/server/team/drivetrain.yml
new file mode 100644
index 0000000..a48400a
--- /dev/null
+++ b/openssh/server/team/drivetrain.yml
@@ -0,0 +1,10 @@
+classes:
+- system.openssh.server.team.members.degorenko
+- system.openssh.server.team.members.iberezovskiy
+
+parameters:
+ _param:
+ linux_system_user_sudo: true
+ openssh:
+ server:
+ enabled: true
diff --git a/openssh/server/team/members/degorenko.yaml b/openssh/server/team/members/degorenko.yaml
new file mode 100644
index 0000000..2f0d09e
--- /dev/null
+++ b/openssh/server/team/members/degorenko.yaml
@@ -0,0 +1,20 @@
+parameters:
+ linux:
+ system:
+ user:
+ degorenko:
+ enabled: true
+ name: degorenko
+ sudo: ${_param:linux_system_user_sudo}
+ full_name: Denis Egorenko
+ home: /home/degorenko
+ email: degorenko@mirantis.com
+ openssh:
+ server:
+ enabled: true
+ user:
+ degorenko:
+ enabled: true
+ public_keys:
+ - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBUclrfSgL1AGw8gjjAcfD2XP9beQVRcP+FMTsuro/2UXjNN7fQ9oXm0TbIk5u+hgILrgjOkbxb1K7bYzdS7+zF3cFoK5B8GKaQog/frEZ2Y4NdkyK3nm5RX1NfxguND3pzEhr5tar/gi+C59uNWA70FF6lqi2yzqA6cWsBM4lP8ZVCOoKJpJNbXe8HXNDmHbVLP+kXzG7k0j/ifAHaF4Rsp+r9B7NupA28N0VhOaXooDRt8TrbqVPZRKuk2XIvitiw73b7ZoiErfOarkkAR6vI2pMrJLFiXm1J2kZHf1CLCl2EdVuS2ba7LtQo77Qw++YeYM4zdGQ5Xr+yjztgxXX degorenko
+ user: ${linux:system:user:degorenko}
diff --git a/openssh/server/team/members/iberezovskiy.yml b/openssh/server/team/members/iberezovskiy.yml
new file mode 100644
index 0000000..14e868f
--- /dev/null
+++ b/openssh/server/team/members/iberezovskiy.yml
@@ -0,0 +1,20 @@
+parameters:
+ linux:
+ system:
+ user:
+ iberezovskiy:
+ enabled: true
+ name: iberezovskiy
+ sudo: ${_param:linux_system_user_sudo}
+ full_name: Ivan Berezovskiy
+ home: /home/iberezovskiy
+ email: iberezovskiy@mirantis.com
+ openssh:
+ server:
+ enabled: true
+ user:
+ iberezovskiy:
+ enabled: true
+ public_keys:
+ - key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDnn18VJ7z3CIBaQmIRfYltyh/BogwBq4B9KVUZ0Gl1EWd5AutuR00xCOYdFeU7okaURYILC+8W2A7a9qkML9G99sX+KD+7CDsKm33XeCP4YJ9QhOwA+OYPS84lLExvK+9AoVPnB06sEK8CvPdU6byQE/EX1VA9gFFCraOH1D0eABaC01csHI+GaiIA5qSjDMH+ieii1Rv5Zb6NHyYRktaCSHB2asu5Y7VxmL2srweFJonpk4Z80+TWlc2ESRLc9EFMefRt/MixIyFjBgvcsE++eCO6MModCAoP5V1Tmgd+cztcvm/tlQqJirve/64SFLvDbjYLE9QxQ8bY4/d4MjcX iberezovskiy@tests-MacBook-Pro.local
+ user: ${linux:system:user:iberezovskiy}
diff --git a/salt/minion/cert/mysql/clients/openstack/designate.yml b/salt/minion/cert/mysql/clients/openstack/designate.yml
new file mode 100644
index 0000000..f66c59f
--- /dev/null
+++ b/salt/minion/cert/mysql/clients/openstack/designate.yml
@@ -0,0 +1,27 @@
+parameters:
+ _param:
+ salt_minion_ca_host: cfg01.${_param:cluster_domain}
+ salt_minion_ca_authority: salt_master_ca
+ mysql_designate_client_ssl_key_file: /etc/designate/ssl/mysql/client-key.pem
+ mysql_designate_client_ssl_cert_file: /etc/designate/ssl/mysql/client-cert.pem
+ mysql_designate_ssl_ca_file: /etc/designate/ssl/mysql/ca-cert.pem
+ salt:
+ minion:
+ cert:
+ mysql-designate-client:
+ host: ${_param:salt_minion_ca_host}
+ authority: ${_param:salt_minion_ca_authority}
+ common_name: mysql-designate-client
+ signing_policy: cert_client
+ alternative_names: >
+ IP:${_param:cluster_local_address},
+ DNS:${_param:cluster_local_address},
+ DNS:${linux:system:name},
+ DNS:${linux:network:fqdn}
+ key_usage: "digitalSignature,nonRepudiation,keyEncipherment"
+ key_file: ${_param:mysql_designate_client_ssl_key_file}
+ cert_file: ${_param:mysql_designate_client_ssl_cert_file}
+ ca_file: ${_param:mysql_designate_ssl_ca_file}
+ user: designate
+ group: designate
+ mode: 640
diff --git a/salt/minion/cert/mysql/clients/openstack/glance.yml b/salt/minion/cert/mysql/clients/openstack/glance.yml
new file mode 100644
index 0000000..ab71174
--- /dev/null
+++ b/salt/minion/cert/mysql/clients/openstack/glance.yml
@@ -0,0 +1,27 @@
+parameters:
+ _param:
+ salt_minion_ca_host: cfg01.${_param:cluster_domain}
+ salt_minion_ca_authority: salt_master_ca
+ mysql_glance_client_ssl_key_file: /etc/glance/ssl/mysql/client-key.pem
+ mysql_glance_client_ssl_cert_file: /etc/glance/ssl/mysql/client-cert.pem
+ mysql_glance_ssl_ca_file: /etc/glance/ssl/mysql/ca-cert.pem
+ salt:
+ minion:
+ cert:
+ mysql-glance-client:
+ host: ${_param:salt_minion_ca_host}
+ authority: ${_param:salt_minion_ca_authority}
+ common_name: mysql-glance-client
+ signing_policy: cert_client
+ alternative_names: >
+ IP:${_param:cluster_local_address},
+ DNS:${_param:cluster_local_address},
+ DNS:${linux:system:name},
+ DNS:${linux:network:fqdn}
+ key_usage: "digitalSignature,nonRepudiation,keyEncipherment"
+ key_file: ${_param:mysql_glance_client_ssl_key_file}
+ cert_file: ${_param:mysql_glance_client_ssl_cert_file}
+ ca_file: ${_param:mysql_glance_ssl_ca_file}
+ user: glance
+ group: glance
+ mode: 640
diff --git a/salt/minion/cert/mysql/clients/openstack/heat.yml b/salt/minion/cert/mysql/clients/openstack/heat.yml
new file mode 100644
index 0000000..1246dae
--- /dev/null
+++ b/salt/minion/cert/mysql/clients/openstack/heat.yml
@@ -0,0 +1,27 @@
+parameters:
+ _param:
+ salt_minion_ca_host: cfg01.${_param:cluster_domain}
+ salt_minion_ca_authority: salt_master_ca
+ mysql_heat_client_ssl_key_file: /etc/heat/ssl/mysql/client-key.pem
+ mysql_heat_client_ssl_cert_file: /etc/heat/ssl/mysql/client-cert.pem
+ mysql_heat_ssl_ca_file: /etc/heat/ssl/mysql/ca-cert.pem
+ salt:
+ minion:
+ cert:
+ mysql-heat-client:
+ host: ${_param:salt_minion_ca_host}
+ authority: ${_param:salt_minion_ca_authority}
+ common_name: mysql-heat-client
+ signing_policy: cert_client
+ alternative_names: >
+ IP:${_param:cluster_local_address},
+ DNS:${_param:cluster_local_address},
+ DNS:${linux:system:name},
+ DNS:${linux:network:fqdn}
+ key_usage: "digitalSignature,nonRepudiation,keyEncipherment"
+ key_file: ${_param:mysql_heat_client_ssl_key_file}
+ cert_file: ${_param:mysql_heat_client_ssl_cert_file}
+ ca_file: ${_param:mysql_heat_ssl_ca_file}
+ user: heat
+ group: heat
+ mode: 640