vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 1 | /** |
| 2 | * |
| 3 | * Upgrade Stacklight packages and components |
| 4 | * |
| 5 | * Requred parameters: |
| 6 | * SALT_MASTER_URL URL of Salt master |
| 7 | * SALT_MASTER_CREDENTIALS Credentials to the Salt API |
| 8 | * |
| 9 | * STAGE_UPGRADE_SYSTEM_PART Set to True if upgrade of system part (telegraf, fluentd, prometheus-relay) is desired |
| 10 | * STAGE_UPGRADE_ES_KIBANA Set to True if Elasticsearch and Kibana upgrade is desired |
| 11 | * STAGE_UPGRADE_DOCKER_COMPONENTS Set to True if upgrade for components running in Docker Swarm is desired |
| 12 | * |
| 13 | */ |
| 14 | |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 15 | common = new com.mirantis.mk.Common() |
| 16 | salt = new com.mirantis.mk.Salt() |
| 17 | python = new com.mirantis.mk.Python() |
| 18 | command = 'cmd.run' |
| 19 | pepperEnv = "pepperEnv" |
| 20 | errorOccured = false |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 21 | |
| 22 | def upgrade(master, target, service, pckg, state) { |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 23 | stage("Upgrade ${service}") { |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 24 | salt.runSaltProcessStep(master, "${target}", 'saltutil.refresh_pillar', [], null, true) |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 25 | salt.enforceState([saltId: master, target: "${target}", state: 'linux.system.repo', output: true, failOnError: true]) |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 26 | common.infoMsg("Upgrade ${service} package(s)") |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 27 | try { |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 28 | salt.runSaltProcessStep(master, "${target}", command, ["apt-get install -y -o Dpkg::Options::=\"--force-confold\" ${pckg}"], null, true) |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 29 | } catch (Exception er) { |
| 30 | errorOccured = true |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 31 | common.errorMsg("[ERROR] ${pckg} package(s) was not upgraded.") |
| 32 | throw er |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 33 | } |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 34 | common.infoMsg("Run ${state} state on ${target} nodes") |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 35 | try { |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 36 | salt.enforceState([saltId: master, target: "${target}", state: ["${state}"], output: true, failOnError: true]) |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 37 | } catch (Exception er) { |
| 38 | errorOccured = true |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 39 | common.errorMsg("[ERROR] ${state} state was executed and failed. Please fix it manually.") |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 40 | throw er |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 41 | } |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 42 | common.infoMsg("Check ${service} service(s) status on the target nodes") |
| 43 | for (s in service.split(" ")){ |
| 44 | salt.runSaltProcessStep(master, "${target}", "service.status", "${s}", null, true) |
| 45 | } |
| 46 | } |
| 47 | } |
| 48 | |
| 49 | def verify_es_is_green(master) { |
| 50 | common.infoMsg('Verify that the Elasticsearch cluster status is green') |
| 51 | try { |
Dmitry Kalashnik | 21df147 | 2019-07-02 12:37:52 +0400 | [diff] [blame] | 52 | def retries_wait = 120 |
| 53 | def retries = 60 |
Dmitry Kalashnik | 066740c | 2019-05-27 15:47:35 +0400 | [diff] [blame] | 54 | |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 55 | def elasticsearch_vip |
Dmitry Kalashnik | 066740c | 2019-05-27 15:47:35 +0400 | [diff] [blame] | 56 | def pillar = salt.getReturnValues(salt.getPillar(master, "I@elasticsearch:client", 'elasticsearch:client:server:host')) |
Dmitry Kalashnik | aa4dcdc | 2019-05-27 16:43:04 +0400 | [diff] [blame] | 57 | if(pillar) { |
Dmitry Kalashnik | 066740c | 2019-05-27 15:47:35 +0400 | [diff] [blame] | 58 | elasticsearch_vip = pillar |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 59 | } else { |
| 60 | errorOccured = true |
| 61 | common.errorMsg('[ERROR] Elasticsearch VIP address could not be retrieved') |
| 62 | } |
Dmitry Kalashnik | 066740c | 2019-05-27 15:47:35 +0400 | [diff] [blame] | 63 | |
| 64 | pillar = salt.getReturnValues(salt.getPillar(master, "I@elasticsearch:client", 'elasticsearch:client:server:port')) |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 65 | def elasticsearch_port |
Dmitry Kalashnik | aa4dcdc | 2019-05-27 16:43:04 +0400 | [diff] [blame] | 66 | if(pillar) { |
Dmitry Kalashnik | 066740c | 2019-05-27 15:47:35 +0400 | [diff] [blame] | 67 | elasticsearch_port = pillar |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 68 | } else { |
| 69 | errorOccured = true |
| 70 | common.errorMsg('[ERROR] Elasticsearch VIP port could not be retrieved') |
| 71 | } |
Dmitry Kalashnik | 066740c | 2019-05-27 15:47:35 +0400 | [diff] [blame] | 72 | |
Dmitry Kalashnik | a59a89c | 2019-06-17 11:56:52 +0400 | [diff] [blame] | 73 | pillar = salt.getReturnValues(salt.getPillar(master, "I@elasticsearch:client", 'elasticsearch:client:server:scheme')) |
Dmitry Kalashnik | b5763f9 | 2019-05-23 10:11:42 +0400 | [diff] [blame] | 74 | def elasticsearch_scheme |
Dmitry Kalashnik | aa4dcdc | 2019-05-27 16:43:04 +0400 | [diff] [blame] | 75 | if(pillar) { |
Dmitry Kalashnik | 066740c | 2019-05-27 15:47:35 +0400 | [diff] [blame] | 76 | elasticsearch_scheme = pillar |
| 77 | common.infoMsg("[INFO] Using elasticsearch scheme: ${elasticsearch_scheme}") |
Dmitry Kalashnik | b5763f9 | 2019-05-23 10:11:42 +0400 | [diff] [blame] | 78 | } else { |
Dmitry Kalashnik | 066740c | 2019-05-27 15:47:35 +0400 | [diff] [blame] | 79 | common.infoMsg('[INFO] No pillar with Elasticsearch server scheme, using scheme: http') |
Dmitry Kalashnik | b5763f9 | 2019-05-23 10:11:42 +0400 | [diff] [blame] | 80 | elasticsearch_scheme = "http" |
| 81 | } |
| 82 | |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 83 | common.retry(retries,retries_wait) { |
| 84 | common.infoMsg('Waiting for Elasticsearch to become green..') |
Dmitry Kalashnik | b5763f9 | 2019-05-23 10:11:42 +0400 | [diff] [blame] | 85 | salt.cmdRun(master, "I@elasticsearch:client", "curl -sfk ${elasticsearch_scheme}://${elasticsearch_vip}:${elasticsearch_port}/_cat/health | awk '{print \$4}' | grep green") |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 86 | } |
| 87 | } catch (Exception er) { |
| 88 | errorOccured = true |
| 89 | common.errorMsg("[ERROR] Elasticsearch cluster status is not \'green\'. Please fix it manually.") |
| 90 | throw er |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 91 | } |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 92 | } |
| 93 | |
| 94 | def upgrade_es_kibana(master) { |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 95 | def elasticsearch_version |
| 96 | def es_pillar = salt.getPillar(master, "I@elasticsearch:client", '_param:elasticsearch_version') |
| 97 | if(!es_pillar['return'].isEmpty()) { |
| 98 | elasticsearch_version = es_pillar['return'][0].values()[0] |
| 99 | } |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 100 | stage('Upgrade elasticsearch') { |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 101 | if (elasticsearch_version == '5') { |
| 102 | try { |
| 103 | common.infoMsg('Upgrade the Elasticsearch package') |
| 104 | salt.runSaltProcessStep(master, 'I@elasticsearch:server', command, ["systemctl stop elasticsearch"], null, true) |
| 105 | salt.runSaltProcessStep(master, 'I@elasticsearch:server', command, ["apt-get --only-upgrade install elasticsearch"], null, true) |
| 106 | salt.runSaltProcessStep(master, 'I@elasticsearch:server', command, ["systemctl daemon-reload"], null, true) |
| 107 | salt.runSaltProcessStep(master, 'I@elasticsearch:server', command, ["systemctl start elasticsearch"], null, true) |
| 108 | salt.runSaltProcessStep(master, '*', 'saltutil.sync_all', [], null, true) |
| 109 | verify_es_is_green(master) |
| 110 | } catch (Exception er) { |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 111 | errorOccured = true |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 112 | common.errorMsg("[ERROR] Elasticsearch upgrade failed. Please fix it manually.") |
| 113 | throw er |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 114 | } |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 115 | } else { |
| 116 | try { |
| 117 | salt.runSaltProcessStep(master, "*", 'saltutil.refresh_pillar', [], null, true) |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 118 | salt.enforceState([saltId: master, target: "I@elasticsearch:server", state: 'linux.system.repo', output: true, failOnError: true]) |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 119 | salt.runSaltProcessStep(master, 'I@elasticsearch:client', command, ["apt-get install -y -o Dpkg::Options::=\"--force-confold\" python-elasticsearch"], null, true) |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 120 | salt.enforceState([saltId: master, target: "I@elasticsearch:server", state: 'salt.minion', output: true, failOnError: true]) |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 121 | salt.runSaltProcessStep(master, 'I@elasticsearch:server', command, ["systemctl stop elasticsearch"], null, true) |
| 122 | salt.runSaltProcessStep(master, 'I@elasticsearch:server', command, ["export ES_PATH_CONF=/etc/elasticsearch; apt-get install -y -o Dpkg::Options::=\"--force-confold\" elasticsearch"], null, true) |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 123 | salt.enforceState([saltId: master, target: "I@elasticsearch:server", state: 'elasticsearch.server', output: true, failOnError: true]) |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 124 | verify_es_is_green(master) |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 125 | salt.enforceState([saltId: master, target: "I@elasticsearch:client", state: 'elasticsearch.client.update_index_templates', output: true, failOnError: true]) |
| 126 | salt.enforceState([saltId: master, target: "I@elasticsearch:client", state: 'elasticsearch.client', output: true, failOnError: true]) |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 127 | } catch (Exception er) { |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 128 | errorOccured = true |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 129 | common.errorMsg("[ERROR] Elasticsearch upgrade failed. Please fix it manually.") |
| 130 | throw er |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 131 | } |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 132 | } |
| 133 | } |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 134 | stage('Upgrade kibana') { |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 135 | def kibana_version |
| 136 | def kibana_pillar = salt.getPillar(master, "I@kibana:client", '_param:kibana_version') |
| 137 | if(!kibana_pillar['return'].isEmpty()) { |
| 138 | kibana_version = kibana_pillar['return'][0].values()[0] |
| 139 | } |
| 140 | if (kibana_version == '5') { |
| 141 | try { |
| 142 | common.infoMsg('Upgrade the Kibana package') |
| 143 | salt.runSaltProcessStep(master, 'I@kibana:server', command, ["systemctl stop kibana"], null, true) |
| 144 | salt.runSaltProcessStep(master, 'I@kibana:server', command, ["apt-get --only-upgrade install kibana"], null, true) |
| 145 | salt.runSaltProcessStep(master, 'I@kibana:server', command, ["systemctl start kibana"], null, true) |
| 146 | } catch (Exception er) { |
| 147 | errorOccured = true |
| 148 | common.errorMsg("[ERROR] Kibana upgrade failed. Please fix it manually.") |
| 149 | throw er |
| 150 | } |
| 151 | } else { |
| 152 | try { |
| 153 | salt.runSaltProcessStep(master, 'I@kibana:server', command, ["systemctl stop kibana"], null, true) |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 154 | salt.enforceStateWithExclude([saltId: master, target: "I@kibana:server", state: "kibana.server", excludedStates: "[{'id': 'kibana_service'}]"]) |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 155 | salt.runSaltProcessStep(master, 'I@kibana:server', command, ["apt-get install -y -o Dpkg::Options::=\"--force-confold\" kibana"], null, true) |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 156 | salt.enforceState([saltId: master, target: "I@kibana:server", state: 'kibana.server', output: true, failOnError: true]) |
| 157 | salt.enforceState([saltId: master, target: "I@kibana:client", state: 'kibana.client', output: true, failOnError: true]) |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 158 | } catch (Exception er) { |
| 159 | errorOccured = true |
| 160 | common.errorMsg("[ERROR] Kibana upgrade failed. Please fix it manually.") |
| 161 | throw er |
| 162 | } |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 163 | } |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 164 | |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 165 | common.infoMsg("Check kibana status on the target nodes") |
| 166 | salt.runSaltProcessStep(master, "I@kibana:server", "service.status", ["kibana"], null, true) |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 167 | } |
| 168 | } |
| 169 | timeout(time: 12, unit: 'HOURS') { |
| 170 | node("python") { |
| 171 | |
| 172 | stage('Setup virtualenv for Pepper') { |
| 173 | python.setupPepperVirtualenv(pepperEnv, SALT_MASTER_URL, SALT_MASTER_CREDENTIALS) |
| 174 | } |
| 175 | |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 176 | stage('Update grains and mine') { |
| 177 | salt.enforceState([saltId: pepperEnv, target: '*', state: 'salt.minion.grains']) |
| 178 | salt.runSaltProcessStep(pepperEnv, '*', 'saltutil.refresh_modules') |
| 179 | salt.runSaltProcessStep(pepperEnv, '*', 'mine.update') |
| 180 | sleep(30) |
| 181 | } |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 182 | |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 183 | if (salt.testTarget(pepperEnv, "I@ceph:mon")) { |
| 184 | stage('Enable Ceph prometheus plugin') { |
| 185 | salt.enforceState([saltId: pepperEnv, target: 'I@ceph:mon', state: "ceph.mgr", output: true, failOnError: true]) |
| 186 | } |
| 187 | } |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 188 | |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 189 | if (STAGE_UPGRADE_SYSTEM_PART.toBoolean() == true && !errorOccured) { |
| 190 | upgrade(pepperEnv, "I@telegraf:agent or I@telegraf:remote_agent", "telegraf", "telegraf", "telegraf") |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 191 | upgrade(pepperEnv, "I@fluentd:agent", "td-agent", "td-agent td-agent-additional-plugins", "fluentd") |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 192 | if (salt.testTarget(pepperEnv, "I@prometheus:relay")) { |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 193 | upgrade(pepperEnv, "I@prometheus:relay", "prometheus prometheus-relay", "prometheus-bin prometheus-relay", "prometheus") |
| 194 | salt.runSaltProcessStep(pepperEnv, "I@prometheus:relay", "service.restart", "prometheus", null, true) |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 195 | } |
| 196 | if (salt.testTarget(pepperEnv, "I@prometheus:exporters:libvirt")) { |
| 197 | upgrade(pepperEnv, "I@prometheus:exporters:libvirt", "libvirt-exporter", "libvirt-exporter", "prometheus") |
| 198 | } |
| 199 | if (salt.testTarget(pepperEnv, "I@prometheus:exporters:jmx")) { |
| 200 | upgrade(pepperEnv, "I@prometheus:exporters:jmx", "jmx-exporter", "jmx-exporter", "prometheus") |
| 201 | } |
vitalygusev | 2532889 | 2018-10-17 11:40:27 +0400 | [diff] [blame] | 202 | } |
| 203 | |
| 204 | if (STAGE_UPGRADE_ES_KIBANA.toBoolean() == true && !errorOccured) { |
| 205 | upgrade_es_kibana(pepperEnv) |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 206 | } |
| 207 | |
| 208 | if (STAGE_UPGRADE_DOCKER_COMPONENTS.toBoolean() == true && !errorOccured) { |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 209 | stage('Upgrade docker components') { |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 210 | try { |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 211 | common.infoMsg('Disable and remove the previous versions of monitoring services') |
| 212 | salt.runSaltProcessStep(pepperEnv, 'I@docker:swarm:role:master and I@prometheus:server', command, ["docker stack rm monitoring"], null, true) |
| 213 | common.infoMsg('Rebuild the Prometheus configuration') |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 214 | salt.enforceState([saltId: pepperEnv, target: 'I@docker:swarm and I@prometheus:server', state: 'prometheus']) |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 215 | common.infoMsg('Disable and remove the previous version of Grafana') |
| 216 | salt.runSaltProcessStep(pepperEnv, 'I@docker:swarm:role:master and I@prometheus:server', command, ["docker stack rm dashboard"], null, true) |
| 217 | common.infoMsg('Start the monitoring services') |
vitalygusev | 00826aa | 2018-12-24 13:44:47 +0400 | [diff] [blame] | 218 | salt.enforceState([saltId: pepperEnv, target: 'I@docker:swarm:role:master and I@prometheus:server', state: 'docker']) |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 219 | salt.runSaltProcessStep(pepperEnv, '*', 'saltutil.sync_all', [], null, true) |
Dmitry Kalashnik | bc263f3 | 2019-06-21 16:02:27 +0400 | [diff] [blame] | 220 | common.infoMsg("Waiting grafana service to start") |
| 221 | sleep(120) |
| 222 | |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 223 | common.infoMsg('Refresh the Grafana dashboards') |
Dmitry Kalashnik | bc263f3 | 2019-06-21 16:02:27 +0400 | [diff] [blame] | 224 | salt.enforceState([saltId: pepperEnv, target: 'I@grafana:client', state: 'grafana.client', retries: 10, retries_wait: 30]) |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 225 | } catch (Exception er) { |
| 226 | errorOccured = true |
vitalygusev | 4b331fa | 2018-12-04 19:03:47 +0400 | [diff] [blame] | 227 | common.errorMsg("[ERROR] Upgrade of docker components failed. Please fix it manually.") |
vitalygusev | 25872e1 | 2018-12-14 18:45:29 +0400 | [diff] [blame] | 228 | throw er |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 229 | } |
| 230 | } |
| 231 | } |
Dmitry Kalashnik | 847ebc0 | 2019-10-29 16:35:59 +0400 | [diff] [blame^] | 232 | stage('Post upgrade steps') { |
| 233 | common.infoMsg('Apply workaround for PROD-33878') |
| 234 | salt.runSaltProcessStep(pepperEnv, "I@fluentd:agent and I@rabbitmq:server", "service.restart", "td-agent", null, true) |
| 235 | } |
vitalygusev | 2270137 | 2018-09-25 17:27:35 +0400 | [diff] [blame] | 236 | } |
| 237 | } |