use installInfra function
* use installInfra
* Added separated step for deploy keepalived and rabbitMQ.
* Fixed etcd check.
installInfra function is capable to detect targets and install only
required services.
installOpenstackInfra and installKubernetesInfra are now obsolete
Change-Id: I5159acf7ba27b253b1eed2f2aa390635a8a2f9ae
diff --git a/src/com/mirantis/mk/Orchestrate.groovy b/src/com/mirantis/mk/Orchestrate.groovy
index dd2af52..a8797ae 100644
--- a/src/com/mirantis/mk/Orchestrate.groovy
+++ b/src/com/mirantis/mk/Orchestrate.groovy
@@ -14,7 +14,6 @@
salt.runSaltProcessStep(master, 'I@salt:minion', 'state.show_top', [], null, true)
}
-
def installFoundationInfra(master) {
def salt = new com.mirantis.mk.Salt()
@@ -47,61 +46,84 @@
salt.runSaltProcessStep(master, '* and not kvm*', 'saltutil.sync_all', [], null, true)
}
-def installOpenstackInfra(master) {
+def installInfra(master) {
def salt = new com.mirantis.mk.Salt()
// Install glusterfs
- salt.enforceState(master, 'I@glusterfs:server', 'glusterfs.server.service', true)
+ if (salt.testTarget('I@glusterfs:server')) {
+ salt.enforceState(master, 'I@glusterfs:server', 'glusterfs.server.service', true)
- // Install keepaliveds
- //runSaltProcessStep(master, 'I@keepalived:cluster', 'state.sls', ['keepalived'], 1)
- salt.enforceState(master, 'I@keepalived:cluster and *01*', 'keepalived', true)
- salt.enforceState(master, 'I@keepalived:cluster', 'keepalived', true)
-
- // Check the keepalived VIPs
- salt.runSaltProcessStep(master, 'I@keepalived:cluster', 'cmd.run', ['ip a | grep 172.16.10.2'])
-
- withEnv(['ASK_ON_ERROR=false']){
- retry(5) {
- salt.enforceState(master, 'I@glusterfs:server and *01*', 'glusterfs.server.setup', true)
+ withEnv(['ASK_ON_ERROR=false']){
+ retry(5) {
+ salt.enforceState(master, 'I@glusterfs:server and *01*', 'glusterfs.server.setup', true)
+ }
}
+
+ salt.runSaltProcessStep(master, 'I@glusterfs:server', 'cmd.run', ['gluster peer status'], null, true)
+ salt.runSaltProcessStep(master, 'I@glusterfs:server', 'cmd.run', ['gluster volume status'], null, true)
}
- salt.runSaltProcessStep(master, 'I@glusterfs:server', 'cmd.run', ['gluster peer status'], null, true)
- salt.runSaltProcessStep(master, 'I@glusterfs:server', 'cmd.run', ['gluster volume status'], null, true)
-
- // Install rabbitmq
- withEnv(['ASK_ON_ERROR=false']){
- retry(2) {
- salt.enforceState(master, 'I@rabbitmq:server', 'rabbitmq', true, false)
- }
- }
-
- // Check the rabbitmq status
- salt.runSaltProcessStep(master, 'I@rabbitmq:server', 'cmd.run', ['rabbitmqctl cluster_status'])
-
// Install galera
- withEnv(['ASK_ON_ERROR=false']){
- retry(2) {
- salt.enforceState(master, 'I@galera:master', 'galera', true)
+ if (salt.testTarget('I@galera:server') || salt.testTarget('I@galera:slave')) {
+ withEnv(['ASK_ON_ERROR=false']){
+ retry(2) {
+ salt.enforceState(master, 'I@galera:master', 'galera', true)
+ }
}
+ salt.enforceState(master, 'I@galera:slave', 'galera', true)
+
+ // Check galera status
+ salt.runSaltProcessStep(master, 'I@galera:master', 'mysql.status')
+ salt.runSaltProcessStep(master, 'I@galera:slave', 'mysql.status')
}
- salt.enforceState(master, 'I@galera:slave', 'galera', true)
- // Check galera status
- salt.runSaltProcessStep(master, 'I@galera:master', 'mysql.status')
- salt.runSaltProcessStep(master, 'I@galera:slave', 'mysql.status')
+ // Install docker
+ if (salt.testTarget('I@docker:host')) {
+ salt.enforceState(master, 'I@docker:host', 'docker.host')
+ salt.runSaltProcessStep(master, 'I@docker:host', 'cmd.run', ['docker ps'])
+ }
- // // Setup mysql client
- // salt.enforceState(master, 'I@mysql:client', 'mysql.client', true)
+ // Install keepalived
+ if (salt.testTarget('I@keepalived:cluster')) {
+ salt.enforceState(master, 'I@keepalived:cluster and *01*', 'keepalived', true)
+ salt.enforceState(master, 'I@keepalived:cluster', 'keepalived', true)
+ }
+
+ // Install rabbitmq
+ if (salt.testTarget('I@rabbitmq:server')) {
+ withEnv(['ASK_ON_ERROR=false']){
+ retry(2) {
+ salt.enforceState(master, 'I@rabbitmq:server', 'rabbitmq', true)
+ }
+ }
+
+ // Check the rabbitmq status
+ salt.runSaltProcessStep(master, 'I@rabbitmq:server', 'cmd.run', ['rabbitmqctl cluster_status'])
+ }
// Install haproxy
- salt.enforceState(master, 'I@haproxy:proxy', 'haproxy', true)
- salt.runSaltProcessStep(master, 'I@haproxy:proxy', 'service.status', ['haproxy'])
- salt.runSaltProcessStep(master, 'I@haproxy:proxy', 'service.restart', ['rsyslog'])
+ if (salt.testTarget('I@haproxy:proxy')) {
+ salt.enforceState(master, 'I@haproxy:proxy', 'haproxy', true)
+ salt.runSaltProcessStep(master, 'I@haproxy:proxy', 'service.status', ['haproxy'])
+ salt.runSaltProcessStep(master, 'I@haproxy:proxy', 'service.restart', ['rsyslog'])
+ }
// Install memcached
- salt.enforceState(master, 'I@memcached:server', 'memcached', true, false)
+ if (salt.testTarget('I@memcached:server')) {
+ salt.enforceState(master, 'I@memcached:server', 'memcached', true)
+ }
+
+ // Install etcd
+ if (salt.testTarget('I@etcd:server')) {
+ salt.enforceState(master, 'I@etcd:server', 'etcd.server.service')
+ salt.runSaltProcessStep(master, 'I@etcd:server', 'cmd.run', ['bash -c "source /var/lib/etcd/configenv && etcdctl cluster-health"'])
+ }
+}
+
+def installOpenstackInfra(master) {
+
+ // THIS FUNCTION IS LEGACY, PLEASE USE installInfra directly
+ installInfra(master)
}
@@ -229,41 +251,9 @@
def installKubernetesInfra(master) {
- def common = new com.mirantis.mk.Common()
- def salt = new com.mirantis.mk.Salt()
- // Install glusterfs
- if (common.checkContains('STACK_INSTALL', 'glusterfs')) {
- salt.enforceState(master, 'I@glusterfs:server', 'glusterfs.server.service')
- }
-
- // Install keepalived
- salt.enforceState(master, 'I@keepalived:cluster and *01*', 'keepalived')
- salt.enforceState(master, 'I@keepalived:cluster', 'keepalived')
-
- // Setup glusterfs
- if (common.checkContains('STACK_INSTALL', 'glusterfs')) {
- withEnv(['ASK_ON_ERROR=false']){
- retry(5) {
- salt.enforceState(master, 'I@glusterfs:server and *01*', 'glusterfs.server.setup')
- }
- }
- salt.runSaltProcessStep(master, 'I@glusterfs:server', 'cmd.run', ['gluster peer status'])
- salt.runSaltProcessStep(master, 'I@glusterfs:server', 'cmd.run', ['gluster volume status'])
- }
-
- // Install haproxy
- salt.enforceState(master, 'I@haproxy:proxy', 'haproxy')
- salt.runSaltProcessStep(master, 'I@haproxy:proxy', 'service.status', ['haproxy'])
-
- // Install docker
- salt.enforceState(master, 'I@docker:host', 'docker.host')
- salt.runSaltProcessStep(master, 'I@docker:host', 'cmd.run', ['docker ps'])
-
- // Install etcd
- salt.enforceState(master, 'I@etcd:server', 'etcd.server.service')
- salt.runSaltProcessStep(master, 'I@etcd:server', 'cmd.run', ['source /var/lib/etcd/configenv && etcdctl cluster-health'])
-
+ // THIS FUNCTION IS LEGACY, PLEASE USE installInfra directly
+ installInfra(master)
}
@@ -327,7 +317,7 @@
def installDockerSwarm(master) {
def salt = new com.mirantis.mk.Salt()
- //Install and Configure Docker
+ //Install and Configure Docker
salt.enforceState(master, 'I@docker:swarm', 'docker.host')
salt.enforceState(master, 'I@docker:swarm:role:master', 'docker.swarm', true)
salt.enforceState(master, 'I@docker:swarm', 'salt.minion.grains', true)
@@ -336,7 +326,6 @@
sleep(5)
salt.enforceState(master, 'I@docker:swarm:role:manager', 'docker.swarm', true)
salt.cmdRun(master, 'I@docker:swarm:role:master', 'docker node ls', true)
-
}
@@ -397,7 +386,7 @@
} else {
common.errorMsg('[ERROR] Stacklight VIP address could not be retrieved')
}
-
+
common.infoMsg("Waiting for service on http://${stacklight_vip}:15013/ to start")
sleep(120)
salt.enforceState(master, 'I@grafana:client', 'grafana.client', true)
diff --git a/src/com/mirantis/mk/Salt.groovy b/src/com/mirantis/mk/Salt.groovy
index e8017ad..8183252 100644
--- a/src/com/mirantis/mk/Salt.groovy
+++ b/src/com/mirantis/mk/Salt.groovy
@@ -228,7 +228,7 @@
* Test if there are any minions to target
* @param master Salt connection object
* @param target Target to test
- * @return bool indicating in target was succesful
+ * @return bool indicating if target was succesful
*/
def testTarget(master, target) {