blob: 2ae408f32dcd76e7007188fa11c0e1fafb801f28 [file] [log] [blame]
/**
*
* Update Salt environment pipeline
*
* Expected parameters:
* SALT_MASTER_URL Salt API server location
* SALT_MASTER_CREDENTIALS Credentials to the Salt API
* UPDATE_FORMULAS Boolean switch for enforcing updating formulas
*/
// Load shared libs
def salt = new com.mirantis.mk.Salt()
def common = new com.mirantis.mk.Common()
def python = new com.mirantis.mk.Python()
def venvPepper = "venvPepper"
timeout(time: 12, unit: 'HOURS') {
node() {
try {
python.setupPepperVirtualenv(venvPepper, SALT_MASTER_URL, SALT_MASTER_CREDENTIALS)
stage("Update formulas"){
if(UPDATE_FORMULAS.toBoolean()){
common.infoMsg("Updating salt formulas")
salt.cmdRun(
venvPepper,
"I@salt:master",
'apt-get update && apt-get install -y salt-formula-*'
)
common.infoMsg("Running salt sync-all")
salt.runSaltProcessStep(venvPepper, '*', 'saltutil.sync_all', [], null, true)
}
}
stage("Update Reclass") {
common.infoMsg("Updating reclass model")
salt.cmdRun(
venvPepper,
"I@salt:master",
'cd /srv/salt/reclass && git pull -r && git submodule update',
false
)
salt.enforceState(
venvPepper,
"I@salt:master",
'reclass',
true
)
}
} catch (Throwable e) {
// If there was an error or exception thrown, the build failed
currentBuild.result = "FAILURE"
throw e
}
}
}