Ability to upgrade nodes before deployment start
PROD-34252
Change-Id: I2066f8b891ccff93a64215c9d77ce36467c3d191
diff --git a/cloud-deploy-pipeline.groovy b/cloud-deploy-pipeline.groovy
index e8776bb..144f604 100644
--- a/cloud-deploy-pipeline.groovy
+++ b/cloud-deploy-pipeline.groovy
@@ -49,6 +49,7 @@
* BATCH_SIZE Use batching for states, which may be targeted for huge amount of nodes. Format:
- 10 - number of nodes
- 10% - percentage of all targeted nodes
+ * DIST_UPGRADE_NODES Whether to run "apt-get dist-upgrade" on all nodes in cluster before deployment
*
* Test settings:
@@ -80,6 +81,7 @@
python = new com.mirantis.mk.Python()
salt = new com.mirantis.mk.Salt()
test = new com.mirantis.mk.Test()
+debian = new com.mirantis.mk.Debian()
_MAX_PERMITTED_STACKS = 2
overwriteFile = "/srv/salt/reclass/classes/cluster/override.yml"
@@ -113,6 +115,10 @@
if (common.validInputParam('BATCH_SIZE')) {
batch_size = "${BATCH_SIZE}"
}
+def upgrade_nodes = false
+if (common.validInputParam('DIST_UPGRADE_NODES')) {
+ upgrade_nodes = "${DIST_UPGRADE_NODES}".toBoolean()
+}
timeout(time: 12, unit: 'HOURS') {
node(slave_node) {
@@ -375,12 +381,20 @@
orchestrate.installFoundationInfra(venvPepper, staticMgmtNetwork, extra_tgt, batch_size)
if (common.checkContains('STACK_INSTALL', 'kvm')) {
+ if (upgrade_nodes) {
+ debian.osUpgradeNode(venvPepper, 'I@salt:control', 'dist-upgrade', 30, 20, batch_size)
+ salt.checkTargetMinionsReady(['saltId': venvPepper, 'target': 'I@salt:control', wait: 60, timeout: 10])
+ }
orchestrate.installInfraKvm(venvPepper, extra_tgt)
- orchestrate.installFoundationInfra(venvPepper, staticMgmtNetwork, extra_tgt)
+ orchestrate.installFoundationInfra(venvPepper, staticMgmtNetwork, extra_tgt, batch_size)
}
orchestrate.validateFoundationInfra(venvPepper, extra_tgt)
}
+ if (upgrade_nodes) {
+ debian.osUpgradeNode(venvPepper, 'not ( I@salt:master or I@salt:control )', 'dist-upgrade', false, 30, 10, batch_size)
+ salt.checkTargetMinionsReady(['saltId': venvPepper, 'target': 'not ( I@salt:master or I@salt:control )', wait: 60, timeout: 10])
+ }
}
stage('Install infra') {