jenkins job for cloud update

PROD-18343

Change-Id: Idb7727232a03404e5f2bb156fcaf3c9c0d6ac383
diff --git a/jenkins/client/job/deploy/update/cloud_update.yml b/jenkins/client/job/deploy/update/cloud_update.yml
new file mode 100644
index 0000000..5fea283
--- /dev/null
+++ b/jenkins/client/job/deploy/update/cloud_update.yml
@@ -0,0 +1,330 @@
+#
+# Jobs to update cloud packages on given Salt master environment
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        deploy-update-cloud:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - update cloud"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
+            credentials: "gerrit"
+            script: cloud-update.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
+            SNAPSHOT_NAME:
+              type: string
+              default: "updateSnapshot1"
+              description: "Live snapshot name"
+            CFG_NODE_PROVIDER:
+              type: string
+              default: ""
+              description: "Physical machine hosting Salt-Master VM (ex. kvm01*)"
+            INTERACTIVE:
+              type: boolean
+              default: 'false'
+              description: "Ask interactive questions during pipeline run"
+            PER_NODE:
+              type: boolean
+              default: 'true'
+              description: "Target nodes will be managed one by one"
+            ROLLBACK_BY_REDEPLOY:
+              type: boolean
+              default: 'false'
+              description: "Omit taking live snapshots. Rollback is planned to be done by redeployment"
+            STOP_SERVICES:
+              type: boolean
+              default: 'true'
+              description: "Stop API services before update"
+            CTL_TARGET:
+              type: string
+              default: "ctl*"
+              description: "Salt targeted CTL nodes (ex. ctl*)"
+            PRX_TARGET:
+              type: string
+              default: "prx*"
+              description: "Salt targeted PRX nodes (ex. prx*)"
+            MSG_TARGET:
+              type: string
+              default: "msg*"
+              description: "Salt targeted MSG nodes (ex. msg*)"
+            DBS_TARGET:
+              type: string
+              default: "dbs*"
+              description: "Salt targeted DBS nodes (ex. dbs*)"
+            LOG_TARGET:
+              type: string
+              default: "log*"
+              description: "Salt targeted LOG nodes (ex. log*)"
+            MON_TARGET:
+              type: string
+              default: "mon*"
+              description: "Salt targeted MON nodes (ex. mon*)"
+            MTR_TARGET:
+              type: string
+              default: "mtr*"
+              description: "Salt targeted MTR nodes (ex. mtr*)"
+            NTW_TARGET:
+              type: string
+              default: "ntw*"
+              description: "Salt targeted NTW nodes (ex. ntw*)"
+            NAL_TARGET:
+              type: string
+              default: "nal*"
+              description: "Salt targeted NAL nodes (ex. nal*)"
+            CMN_TARGET:
+              type: string
+              default: "cmn*"
+              description: "Salt targeted CMN nodes (ex. cmn*)"
+            RGW_TARGET:
+              type: string
+              default: "rgw*"
+              description: "Salt targeted RGW nodes (ex. rgw*)"
+            CID_TARGET:
+              type: string
+              default: "cid*"
+              description: "Salt targeted CID nodes (ex. cid*)"
+            CMP_TARGET:
+              type: string
+              default: "cmp001*"
+              description: "Salt targeted physical compute nodes (ex. cmp001*)"
+            KVM_TARGET:
+              type: string
+              default: "kvm01*"
+              description: "Salt targeted physical KVM nodes (ex. kvm01*)"
+            CEPH_OSD_TARGET:
+              type: string
+              default: "osd001*"
+              description: "Salt targeted physical Ceph OSD nodes (ex. osd001*)"
+            GTW_TARGET:
+              type: string
+              default: "gtw01*"
+              description: "Salt targeted physical GTW nodes (ex. gtw01*)"
+            REBOOT:
+              type: boolean
+              default: 'false'
+              description: "Reboot nodes after update"
+            UPDATE_CFG:
+              type: boolean
+              default: 'true'
+              description: "Run update on cfg nodes"
+            UPDATE_CTL:
+              type: boolean
+              default: 'true'
+              description: "Run update on ctl nodes"
+            UPDATE_PRX:
+              type: boolean
+              default: 'true'
+              description: "Run update on prx nodes"
+            UPDATE_MSG:
+              type: boolean
+              default: 'true'
+              description: "Run update on msg nodes"
+            UPDATE_DBS:
+              type: boolean
+              default: 'true'
+              description: "Run update on dbs nodes"
+            UPDATE_LOG:
+              type: boolean
+              default: 'true'
+              description: "Run update on log nodes"
+            UPDATE_MON:
+              type: boolean
+              default: 'true'
+              description: "Run update on mon nodes"
+            UPDATE_MTR:
+              type: boolean
+              default: 'true'
+              description: "Run update on mtr nodes"
+            UPDATE_NTW:
+              type: boolean
+              default: 'true'
+              description: "Run update on ntw nodes"
+            UPDATE_NAL:
+              type: boolean
+              default: 'true'
+              description: "Run update on nal nodes"
+            UPDATE_GTW_VIRTUAL:
+              type: boolean
+              default: 'true'
+              description: "Run update on gtw nodes"
+            UPDATE_CMN:
+              type: boolean
+              default: 'true'
+              description: "Run update on cmn nodes"
+            UPDATE_RGW:
+              type: boolean
+              default: 'true'
+              description: "Run update on rgw nodes"
+            UPDATE_CID:
+              type: boolean
+              default: 'true'
+              description: "Run update on cid nodes"
+            UPDATE_CMP:
+              type: boolean
+              default: 'true'
+              description: "Run update on physical cmp nodes"
+            UPDATE_KVM:
+              type: boolean
+              default: 'true'
+              description: "Run update on physical kvm nodes"
+            UPDATE_CEPH_OSD:
+              type: boolean
+              default: 'true'
+              description: "Run update on physical Ceph OSD nodes"
+            UPDATE_GTW_PHYSICAL:
+              type: boolean
+              default: 'true'
+              description: "Run update on physical gtw nodes"
+            ROLLBACK_CTL:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on ctl nodes"
+            ROLLBACK_PRX:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on prx nodes"
+            ROLLBACK_MSG:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on msg nodes"
+            ROLLBACK_DBS:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on dbs nodes"
+            ROLLBACK_LOG:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on log nodes"
+            ROLLBACK_MON:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on mon nodes"
+            ROLLBACK_MTR:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on mtr nodes"
+            ROLLBACK_NTW:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on ntw nodes"
+            ROLLBACK_NAL:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on nal nodes"
+            ROLLBACK_GTW_VIRTUAL:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on gtw nodes"
+            ROLLBACK_CMN:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on cmn nodes"
+            ROLLBACK_RGW:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on rgw nodes"
+            ROLLBACK_CMP:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on physical cmp nodes"
+            ROLLBACK_KVM:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on physical kvm nodes"
+            ROLLBACK_CEPH_OSD:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on physical Ceph OSD nodes"
+            ROLLBACK_GTW_PHYSICAL:
+              type: boolean
+              default: 'false'
+              description: "Run rollback on physical gtw nodes"
+            ROLLBACK_PKG_VERSIONS:
+              type: string
+              default: ""
+              description: "Space separated list of pkgs=versions to rollback to (ex. pkg_name1=pkg_version1 pkg_name2=pkg_version2)"
+            PURGE_PKGS:
+              type: string
+              default: ""
+              description: "Space separated list of pkgs=versions to be purged (ex. pkg_name1=pkg_version1 pkg_name2=pkg_version2)"
+            REMOVE_PKGS:
+              type: string
+              default: ""
+              description: "Space separated list of pkgs=versions to be removed (ex. pkg_name1=pkg_version1 pkg_name2=pkg_version2)"
+            MERGE_CFG:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for cfg nodes"
+            MERGE_CTL:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for ctl nodes"
+            MERGE_PRX:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for prx nodes"
+            MERGE_MSG:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for msg nodes"
+            MERGE_DBS:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for dbs nodes"
+            MERGE_LOG:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for log nodes"
+            MERGE_MON:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for mon nodes"
+            MERGE_MTR:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for mtr nodes"
+            MERGE_NTW:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for ntw nodes"
+            MERGE_NAL:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for nal nodes"
+            MERGE_GTW_VIRTUAL:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for gtw nodes"
+            MERGE_CMN:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for cmn nodes"
+            MERGE_RGW:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for rgw nodes"
+            MERGE_CID:
+              type: boolean
+              default: 'false'
+              description: "Merge live snapshot for cid nodes"
+            RESTORE_GALERA:
+              type: boolean
+              default: 'false'
+              description: "Restore Galera DB"
+            RESTORE_CONTRAIL_DB:
+              type: boolean
+              default: 'false'
+              description: "Restore Cassandra and Zookeeper DBs for OpenContrail"
diff --git a/jenkins/client/job/deploy/update/init.yml b/jenkins/client/job/deploy/update/init.yml
index 0b10ff2..fb1f5cf 100644
--- a/jenkins/client/job/deploy/update/init.yml
+++ b/jenkins/client/job/deploy/update/init.yml
@@ -14,3 +14,4 @@
   - system.jenkins.client.job.deploy.update.restore_cassandra
   - system.jenkins.client.job.deploy.update.restore_zookeeper
   - system.jenkins.client.job.deploy.update.virt_snapshot
+  - system.jenkins.client.job.deploy.update.cloud_update