Add jenkins jobs
diff --git a/jenkins/client/job/aptly.yml b/jenkins/client/job/aptly.yml
new file mode 100644
index 0000000..f1c03fb
--- /dev/null
+++ b/jenkins/client/job/aptly.yml
@@ -0,0 +1,76 @@
+classes:
+ - system_extra.jenkins.client.job.common
+
+parameters:
+ jenkins:
+ client:
+ job_template:
+ aptly:
+ name: aptly-{{operation}}-{{dist}}-{{source}}-{{target}}
+ jobs:
+ - operation: promote
+ diff_only: false
+ dist: trusty
+ source: nightly
+ target: testing
+ - operation: promote
+ dist: trusty
+ source: testing
+ target: stable
+ - operation: promote
+ dist: xenial
+ source: nightly
+ target: testing
+ - operation: promote
+ dist: xenial
+ source: testing
+ target: stable
+ - operation: diff
+ diff_only: true
+ dist: trusty
+ source: nightly
+ target: testing
+ - operation: diff
+ diff_only: true
+ dist: trusty
+ source: testing
+ target: stable
+ - operation: diff
+ diff_only: true
+ dist: xenial
+ source: nightly
+ target: testing
+ - operation: diff
+ diff_only: true
+ dist: xenial
+ source: testing
+ target: stable
+ template:
+ discard:
+ build:
+ keep_num: 25
+ artifact:
+ keep_num: 25
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: aptly-promote-pipeline.groovy
+ param:
+ SOURCE:
+ type: string
+ default: "{{dist}}/{{source}}"
+ TARGET:
+ type: string
+ default: "{{dist}}/{{target}}"
+ RECREATE:
+ type: boolean
+ default: 'false'
+ DIFF_ONLY:
+ type: boolean
+ default: '{{diff_only}}'
+ APTLY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_api_url}"
diff --git a/jenkins/client/job/common.yml b/jenkins/client/job/common.yml
new file mode 100644
index 0000000..c92d623
--- /dev/null
+++ b/jenkins/client/job/common.yml
@@ -0,0 +1,9 @@
+parameters:
+ _param:
+ jenkins_gerrit_url: "ssh://jenkins-mk@gerrit.mcp.mirantis.net:29418"
+ jenkins_pipeline_libs: "${_param:jenkins_gerrit_url}/tcp/ccp-pipeline-libs"
+ jenkins_packer_pipeline: "${_param:jenkins_gerrit_url}/mk/packer-templates"
+ jenkins_contrail_pipeline: "${_param:jenkins_gerrit_url}/contrail/contrail-pipeline"
+ jenkins_aptly_api_url: "http://10.10.100.85:8081"
+ jenkins_aptly_url: "http://apt-mk.mirantis.com"
+ jenkins_pollscm_spec: "H/60 * * * *"
diff --git a/jenkins/client/job/debian/init.yml b/jenkins/client/job/debian/init.yml
new file mode 100644
index 0000000..b5b2ebd
--- /dev/null
+++ b/jenkins/client/job/debian/init.yml
@@ -0,0 +1,2 @@
+classes:
+ - system_extra.jenkins.client.job.debian.packages
diff --git a/jenkins/client/job/debian/packages/extra.yml b/jenkins/client/job/debian/packages/extra.yml
new file mode 100644
index 0000000..3681993
--- /dev/null
+++ b/jenkins/client/job/debian/packages/extra.yml
@@ -0,0 +1,117 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ build-debian:
+ name: build-debian-{{package}}-ubuntu-{{dist}}
+ jobs:
+ - package: librdkafka
+ dist: trusty
+ - package: python-kafka
+ dist: trusty
+ - package: liburcu
+ dist: trusty
+ - package: python-kazoo
+ dist: trusty
+ - package: python-pathlib
+ dist: trusty
+ - package: kafka
+ dist: trusty
+ - package: python-geventhttpclient
+ dist: trusty
+ - package: python-consistent-hash
+ dist: trusty
+ - package: libipfix
+ dist: trusty
+ - package: python-ncclient
+ dist: trusty
+ - package: python-pycassa
+ dist: trusty
+ - package: python-xmltodict
+ dist: trusty
+ - package: python-backports.ssl-match-hostname
+ dist: trusty
+ - package: python-certifi
+ dist: trusty
+ - package: python-docker
+ dist: trusty
+ - package: python-cassandra-driver
+ dist: trusty
+ - package: python-redis
+ dist: trusty
+ - package: python-tabulate
+ dist: trusty
+ - package: cassandra-cpp-driver
+ dist: trusty
+ - package: libuv1
+ dist: trusty
+ - package: python-sseclient
+ dist: trusty
+ - package: librdkafka
+ dist: xenial
+ - package: python-kafka
+ dist: xenial
+ - package: python-geventhttpclient
+ dist: xenial
+ - package: python-consistent-hash
+ dist: xenial
+ - package: libipfix
+ dist: xenial
+ - package: cassandra-cpp-driver
+ dist: xenial
+ - package: python-sseclient
+ dist: xenial
+ template:
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: build-debian-packages-pipeline.groovy
+ trigger:
+ gerrit:
+ project:
+ debian/{{package}}:
+ branches:
+ - debian/{{dist}}
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/debian/{{package}}.git"
+ SOURCE_BRANCH:
+ type: string
+ default: "debian/{{dist}}"
+ SOURCE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ EXTRA_REPO_URL:
+ type: string
+ default: "deb ${_param:jenkins_aptly_url}/{{dist}}/ testing extra"
+ EXTRA_REPO_KEY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_url}/public.gpg"
+ APTLY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_api_url}"
+ APTLY_REPO:
+ type: string
+ default: "ubuntu-{{dist}}-extra"
+ OS:
+ type: string
+ default: "ubuntu"
+ DIST:
+ type: string
+ default: "{{dist}}"
+ ARCH:
+ type: string
+ default: "amd64"
diff --git a/jenkins/client/job/debian/packages/horizon/init.yml b/jenkins/client/job/debian/packages/horizon/init.yml
new file mode 100644
index 0000000..827f11a
--- /dev/null
+++ b/jenkins/client/job/debian/packages/horizon/init.yml
@@ -0,0 +1,3 @@
+classes:
+ - system_extra.jenkins.client.job.debian.packages.horizon.modules
+ - system_extra.jenkins.client.job.debian.packages.horizon.themes
diff --git a/jenkins/client/job/debian/packages/horizon/modules.yml b/jenkins/client/job/debian/packages/horizon/modules.yml
new file mode 100644
index 0000000..29336e9
--- /dev/null
+++ b/jenkins/client/job/debian/packages/horizon/modules.yml
@@ -0,0 +1,84 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ build-debian-horizon-module:
+ name: build-debian-horizon-module-{{name}}-{{os_version}}-{{os}}-{{dist}}
+ jobs:
+ # Trusty
+ - name: horizon-overrides-plugin
+ os: ubuntu
+ dist: trusty
+ os_version: mitaka
+ branch: master
+ # Xenial
+ - name: horizon-overrides-plugin
+ os: ubuntu
+ dist: xenial
+ os_version: mitaka
+ branch: master
+ template:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: build-debian-packages-pipeline.groovy
+ trigger:
+ gerrit:
+ project:
+ salt-formulas/{{name}}:
+ branches:
+ - "{{branch}}"
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/horizon-modules/{{name}}.git"
+ SOURCE_BRANCH:
+ type: string
+ default: "{{branch}}"
+ SOURCE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ DEBIAN_SNAPSHOT:
+ type: boolean
+ default: 'true'
+ REVISION_POSTFIX:
+ type: string
+ default: '~{{os_version}}1{{dist}}1'
+ EXTRA_REPO_URL:
+ type: string
+ default: "deb ${_param:jenkins_aptly_url}/{{dist}}/ testing extra {{os_version}}"
+ EXTRA_REPO_KEY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_url}/public.gpg"
+ APTLY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_api_url}"
+ APTLY_REPO:
+ type: string
+ default: "{{os}}-{{dist}}-{{os_version}}"
+ OS:
+ type: string
+ default: "{{os}}"
+ DIST:
+ type: string
+ default: "{{dist}}"
+ ARCH:
+ type: string
+ default: "amd64"
diff --git a/jenkins/client/job/debian/packages/horizon/themes.yml b/jenkins/client/job/debian/packages/horizon/themes.yml
new file mode 100644
index 0000000..e6989b9
--- /dev/null
+++ b/jenkins/client/job/debian/packages/horizon/themes.yml
@@ -0,0 +1,84 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ build-debian-horizon-theme:
+ name: build-debian-horizon-theme-{{name}}-{{os_version}}-{{os}}-{{dist}}
+ jobs:
+ # Trusty
+ - name: horizon-mirantis-theme
+ os: ubuntu
+ dist: trusty
+ os_version: mitaka
+ branch: master
+ # Xenial
+ - name: horizon-mirantis-theme
+ os: ubuntu
+ dist: xenial
+ os_version: mitaka
+ branch: master
+ template:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: build-debian-packages-pipeline.groovy
+ trigger:
+ gerrit:
+ project:
+ salt-formulas/{{name}}:
+ branches:
+ - "{{branch}}"
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/horizon-themes/{{name}}.git"
+ SOURCE_BRANCH:
+ type: string
+ default: "{{branch}}"
+ SOURCE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ DEBIAN_SNAPSHOT:
+ type: boolean
+ default: 'true'
+ REVISION_POSTFIX:
+ type: string
+ default: '~{{os_version}}1{{dist}}1'
+ EXTRA_REPO_URL:
+ type: string
+ default: "deb ${_param:jenkins_aptly_url}/{{dist}}/ testing extra {{os_version}}"
+ EXTRA_REPO_KEY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_url}/public.gpg"
+ APTLY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_api_url}"
+ APTLY_REPO:
+ type: string
+ default: "{{os}}-{{dist}}-{{os_version}}"
+ OS:
+ type: string
+ default: "{{os}}"
+ DIST:
+ type: string
+ default: "{{dist}}"
+ ARCH:
+ type: string
+ default: "amd64"
diff --git a/jenkins/client/job/debian/packages/init.yml b/jenkins/client/job/debian/packages/init.yml
new file mode 100644
index 0000000..972b7df
--- /dev/null
+++ b/jenkins/client/job/debian/packages/init.yml
@@ -0,0 +1,5 @@
+classes:
+ - system_extra.jenkins.client.job.debian.packages.extra
+ - system_extra.jenkins.client.job.debian.packages.salt
+ - system_extra.jenkins.client.job.debian.packages.salt-multi
+ - system_extra.jenkins.client.job.debian.packages.horizon
diff --git a/jenkins/client/job/debian/packages/salt-multi.yml b/jenkins/client/job/debian/packages/salt-multi.yml
new file mode 100644
index 0000000..35e1aa9
--- /dev/null
+++ b/jenkins/client/job/debian/packages/salt-multi.yml
@@ -0,0 +1,113 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ build-debian-salt-multibranch:
+ name: build-debian-salt-formula-{{name}}-ubuntu-{{dist}}
+ jobs:
+ - name: ceilometer
+ dist: trusty
+ - name: cinder
+ dist: trusty
+ - name: glance
+ dist: trusty
+ - name: heat
+ dist: trusty
+ - name: horizon
+ dist: trusty
+ - name: keystone
+ dist: trusty
+ - name: kubernetes
+ dist: trusty
+ - name: neutron
+ dist: trusty
+ - name: nova
+ dist: trusty
+ - name: swift
+ dist: trusty
+ - name: ceilometer
+ dist: xenial
+ - name: cinder
+ dist: xenial
+ - name: glance
+ dist: xenial
+ - name: heat
+ dist: xenial
+ - name: horizon
+ dist: xenial
+ - name: keystone
+ dist: xenial
+ - name: kubernetes
+ dist: xenial
+ - name: neutron
+ dist: xenial
+ - name: nova
+ dist: xenial
+ - name: swift
+ dist: xenial
+ template:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: build-debian-packages-pipeline.groovy
+ trigger:
+ gerrit:
+ project:
+ salt-formulas/{{name}}:
+ branches:
+ - master
+ - debian/{{dist}}
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/salt-formulas/{{name}}.git"
+ SOURCE_BRANCH:
+ type: string
+ default: "master"
+ SOURCE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ DEBIAN_BRANCH:
+ type: string
+ default: 'debian/{{dist}}'
+ DEBIAN_SNAPSHOT:
+ type: boolean
+ default: 'true'
+ EXTRA_REPO_URL:
+ type: string
+ default: "deb ${_param:jenkins_aptly_url}/{{dist}}/ testing salt salt-latest"
+ EXTRA_REPO_KEY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_url}/public.gpg"
+ APTLY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_api_url}"
+ APTLY_REPO:
+ type: string
+ default: "ubuntu-{{dist}}-salt"
+ OS:
+ type: string
+ default: "ubuntu"
+ DIST:
+ type: string
+ default: "{{dist}}"
+ ARCH:
+ type: string
+ default: "amd64"
diff --git a/jenkins/client/job/debian/packages/salt.yml b/jenkins/client/job/debian/packages/salt.yml
new file mode 100644
index 0000000..73eedef
--- /dev/null
+++ b/jenkins/client/job/debian/packages/salt.yml
@@ -0,0 +1,404 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ build-debian-salt-formula:
+ name: build-debian-salt-formula-{{name}}-ubuntu-{{dist}}
+ jobs:
+ - name: aodh
+ dist: trusty
+ - name: apache
+ dist: trusty
+ - name: aptly
+ dist: trusty
+ - name: artifactory
+ dist: trusty
+ - name: avinetworks
+ dist: trusty
+ - name: backupninja
+ dist: trusty
+ - name: billometer
+ dist: trusty
+ - name: bind
+ dist: trusty
+ - name: bird
+ dist: trusty
+ - name: cadf
+ dist: trusty
+ - name: calico
+ dist: trusty
+ - name: cassandra
+ dist: trusty
+ - name: ccp
+ dist: trusty
+ - name: ceph
+ dist: trusty
+ - name: chrony
+ dist: trusty
+ - name: collectd
+ dist: trusty
+ - name: dekapod
+ dist: trusty
+ - name: docker
+ dist: trusty
+ - name: dovecot
+ dist: trusty
+ - name: elasticsearch
+ dist: trusty
+ - name: etcd
+ dist: trusty
+ - name: foreman
+ dist: trusty
+ - name: freeipa
+ dist: trusty
+ - name: galera
+ dist: trusty
+ - name: gerrit
+ dist: trusty
+ - name: git
+ dist: trusty
+ - name: gitlab
+ dist: trusty
+ - name: glusterfs
+ dist: trusty
+ - name: grafana
+ dist: trusty
+ - name: graphite
+ dist: trusty
+ - name: haproxy
+ dist: trusty
+ - name: heka
+ dist: trusty
+ - name: influxdb
+ dist: trusty
+ - name: iptables
+ dist: trusty
+ - name: isc-dhcp
+ dist: trusty
+ - name: java
+ dist: trusty
+ - name: jenkins
+ dist: trusty
+ - name: kedb
+ dist: trusty
+ - name: keepalived
+ dist: trusty
+ - name: kibana
+ dist: trusty
+ - name: letsencrypt
+ dist: trusty
+ - name: libvirt
+ dist: trusty
+ - name: linux
+ dist: trusty
+ - name: logrotate
+ dist: trusty
+ - name: maas
+ dist: trusty
+ - name: magnum
+ dist: trusty
+ - name: memcached
+ dist: trusty
+ - name: midonet
+ dist: trusty
+ - name: monasca
+ dist: trusty
+ - name: mongodb
+ dist: trusty
+ - name: murano
+ dist: trusty
+ - name: mysql
+ dist: trusty
+ - name: nagios
+ dist: trusty
+ - name: network
+ dist: trusty
+ - name: nfs
+ dist: trusty
+ - name: nginx
+ dist: trusty
+ - name: nodejs
+ dist: trusty
+ - name: ntp
+ dist: trusty
+ - name: opencontrail
+ dist: trusty
+ - name: openssh
+ dist: trusty
+ - name: openvpn
+ dist: trusty
+ - name: openvstorage
+ dist: trusty
+ - name: owncloud
+ dist: trusty
+ - name: postfix
+ dist: trusty
+ - name: postgresql
+ dist: trusty
+ - name: pritunl
+ dist: trusty
+ - name: python
+ dist: trusty
+ - name: rabbitmq
+ dist: trusty
+ - name: reclass
+ dist: trusty
+ - name: redis
+ dist: trusty
+ - name: roundcube
+ dist: trusty
+ - name: rsync
+ dist: trusty
+ - name: rsyslog
+ dist: trusty
+ - name: sahara
+ dist: trusty
+ - name: salt
+ dist: trusty
+ - name: sensu
+ dist: trusty
+ - name: sentry
+ dist: trusty
+ - name: sphinx
+ dist: trusty
+ - name: statsd
+ dist: trusty
+ - name: supervisor
+ dist: trusty
+ - name: taiga
+ dist: trusty
+ - name: varnish
+ dist: trusty
+ - name: zookeeper
+ dist: trusty
+ - name: aodh
+ dist: xenial
+ - name: apache
+ dist: xenial
+ - name: aptly
+ dist: xenial
+ - name: artifactory
+ dist: xenial
+ - name: avinetworks
+ dist: xenial
+ - name: backupninja
+ dist: xenial
+ - name: billometer
+ dist: xenial
+ - name: bind
+ dist: xenial
+ - name: bird
+ dist: xenial
+ - name: cadf
+ dist: xenial
+ - name: calico
+ dist: xenial
+ - name: cassandra
+ dist: xenial
+ - name: ccp
+ dist: xenial
+ - name: ceph
+ dist: xenial
+ - name: chrony
+ dist: xenial
+ - name: collectd
+ dist: xenial
+ - name: dekapod
+ dist: xenial
+ - name: docker
+ dist: xenial
+ - name: dovecot
+ dist: xenial
+ - name: elasticsearch
+ dist: xenial
+ - name: etcd
+ dist: xenial
+ - name: foreman
+ dist: xenial
+ - name: freeipa
+ dist: xenial
+ - name: galera
+ dist: xenial
+ - name: gerrit
+ dist: xenial
+ - name: git
+ dist: xenial
+ - name: gitlab
+ dist: xenial
+ - name: glusterfs
+ dist: xenial
+ - name: grafana
+ dist: xenial
+ - name: graphite
+ dist: xenial
+ - name: haproxy
+ dist: xenial
+ - name: heka
+ dist: xenial
+ - name: influxdb
+ dist: xenial
+ - name: iptables
+ dist: xenial
+ - name: isc-dhcp
+ dist: xenial
+ - name: java
+ dist: xenial
+ - name: jenkins
+ dist: xenial
+ - name: kedb
+ dist: xenial
+ - name: keepalived
+ dist: xenial
+ - name: kibana
+ dist: xenial
+ - name: letsencrypt
+ dist: xenial
+ - name: libvirt
+ dist: xenial
+ - name: linux
+ dist: xenial
+ - name: logrotate
+ dist: xenial
+ - name: maas
+ dist: xenial
+ - name: magnum
+ dist: xenial
+ - name: memcached
+ dist: xenial
+ - name: midonet
+ dist: xenial
+ - name: monasca
+ dist: xenial
+ - name: mongodb
+ dist: xenial
+ - name: murano
+ dist: xenial
+ - name: mysql
+ dist: xenial
+ - name: nagios
+ dist: xenial
+ - name: network
+ dist: xenial
+ - name: nfs
+ dist: xenial
+ - name: nginx
+ dist: xenial
+ - name: nodejs
+ dist: xenial
+ - name: ntp
+ dist: xenial
+ - name: opencontrail
+ dist: xenial
+ - name: openssh
+ dist: xenial
+ - name: openvpn
+ dist: xenial
+ - name: openvstorage
+ dist: xenial
+ - name: owncloud
+ dist: xenial
+ - name: postfix
+ dist: xenial
+ - name: postgresql
+ dist: xenial
+ - name: pritunl
+ dist: xenial
+ - name: python
+ dist: xenial
+ - name: rabbitmq
+ dist: xenial
+ - name: reclass
+ dist: xenial
+ - name: redis
+ dist: xenial
+ - name: roundcube
+ dist: xenial
+ - name: rsync
+ dist: xenial
+ - name: rsyslog
+ dist: xenial
+ - name: sahara
+ dist: xenial
+ - name: salt
+ dist: xenial
+ - name: sensu
+ dist: xenial
+ - name: sentry
+ dist: xenial
+ - name: sphinx
+ dist: xenial
+ - name: statsd
+ dist: xenial
+ - name: supervisor
+ dist: xenial
+ - name: taiga
+ dist: xenial
+ - name: varnish
+ dist: xenial
+ - name: zookeeper
+ dist: xenial
+ template:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: build-debian-packages-pipeline.groovy
+ trigger:
+ gerrit:
+ project:
+ salt-formulas/{{name}}:
+ branches:
+ - master
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/salt-formulas/{{name}}.git"
+ SOURCE_BRANCH:
+ type: string
+ default: "master"
+ SOURCE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ DEBIAN_SNAPSHOT:
+ type: boolean
+ default: 'true'
+ REVISION_POSTFIX:
+ type: string
+ default: '~{{dist}}1'
+ EXTRA_REPO_URL:
+ type: string
+ default: "deb ${_param:jenkins_aptly_url}/{{dist}}/ testing salt salt-latest"
+ EXTRA_REPO_KEY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_url}/public.gpg"
+ APTLY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_api_url}"
+ APTLY_REPO:
+ type: string
+ default: "ubuntu-{{dist}}-salt"
+ OS:
+ type: string
+ default: "ubuntu"
+ DIST:
+ type: string
+ default: "{{dist}}"
+ ARCH:
+ type: string
+ default: "amd64"
diff --git a/jenkins/client/job/deploy/cicd_lab.yml b/jenkins/client/job/deploy/cicd_lab.yml
new file mode 100644
index 0000000..0aa442e
--- /dev/null
+++ b/jenkins/client/job/deploy/cicd_lab.yml
@@ -0,0 +1,77 @@
+parameters:
+ jenkins:
+ client:
+ job_template:
+ deploy_heat_cicd:
+ name: deploy-heat-{{name}}
+ jobs:
+ - name: cicd-lab-dev
+ lab: cicd_lab_dev
+ template:
+ type: workflow-scm
+ concurrent: true
+ display_name: "Deploy {{name}} heat stack"
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: cicd-lab-pipeline.groovy
+ param:
+ # heat
+ HEAT_TEMPLATE_URL:
+ type: string
+ default: "git@github.com:Mirantis/mk-lab-heat-templates.git"
+ HEAT_TEMPLATE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ HEAT_TEMPLATE_BRANCH:
+ type: string
+ default: "master"
+ HEAT_STACK_NAME:
+ type: string
+ description: Heat stack name. Will be generated if missing.
+ HEAT_STACK_TEMPLATE:
+ type: string
+ default: "{{lab}}"
+ HEAT_STACK_ENVIRONMENT:
+ type: string
+ default: "tcpisek"
+ HEAT_STACK_ZONE:
+ type: string
+ default: "mirantis-zone-qa"
+ HEAT_STACK_PUBLIC_NET:
+ type: string
+ default: "mirantis-private"
+ HEAT_STACK_DELETE:
+ type: boolean
+ default: 'true'
+ description: "Delete heat stack at the end of job"
+ HEAT_STACK_REUSE:
+ type: boolean
+ default: 'false'
+ description: "Reuse existing stack and only orchestrate deployment"
+
+ # salt master
+ SALT_MASTER_CREDENTIALS:
+ type: string
+ default: "salt-qa-credentials"
+ SSH_PUBLIC_KEY:
+ type: string
+ description: "User's public SSH key to be able to login when stack is deployed"
+
+ # openstack api
+ OPENSTACK_API_URL:
+ type: string
+ default: "https://vpc.tcpisek.cz:5000/v2.0"
+ OPENSTACK_API_CREDENTIALS:
+ type: string
+ default: "openstack-qa-credentials"
+ OPENSTACK_API_PROJECT:
+ type: string
+ default: "mirantis_mk20_qa"
+ OPENSTACK_API_CLIENT:
+ type: string
+ default: "liberty"
+ OPENSTACK_API_VERSION:
+ type: string
+ default: "2"
diff --git a/jenkins/client/job/deploy/demo.yml b/jenkins/client/job/deploy/demo.yml
new file mode 100644
index 0000000..3ea8a40
--- /dev/null
+++ b/jenkins/client/job/deploy/demo.yml
@@ -0,0 +1,20 @@
+parameters:
+ jenkins:
+ client:
+ job:
+ deploy_kafka_demo:
+ type: workflow-scm
+ concurrent: false
+ display_name: "Kafka demo"
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: kafka-demo.groovy
+ param:
+ # salt master
+ SALT_MASTER_CREDENTIALS:
+ type: string
+ default: "salt-qa-credentials"
+ SALT_URL:
+ type: string
diff --git a/jenkins/client/job/deploy/init.yml b/jenkins/client/job/deploy/init.yml
new file mode 100644
index 0000000..459ac39
--- /dev/null
+++ b/jenkins/client/job/deploy/init.yml
@@ -0,0 +1,5 @@
+classes:
+ - system_extra.jenkins.client.job.deploy.mk_lab
+ - system_extra.jenkins.client.job.deploy.cicd_lab
+ - system_extra.jenkins.client.job.deploy.demo
+ - system_extra.jenkins.client.job.deploy.reclass_update
diff --git a/jenkins/client/job/deploy/maas_lab.yml b/jenkins/client/job/deploy/maas_lab.yml
new file mode 100644
index 0000000..b4b61e4
--- /dev/null
+++ b/jenkins/client/job/deploy/maas_lab.yml
@@ -0,0 +1,67 @@
+parameters:
+ jenkins:
+ client:
+ job:
+ heat_maas_lab:
+ type: workflow
+ concurrent: false
+ display_name: "[Heat] Deploy MAAS lab"
+ param:
+ HEAT_TEMPLATE_URL:
+ type: string
+ default: "git@github.com:Mirantis/mk-lab-heat-templates.git"
+ HEAT_TEMPLATE_CREDENTIALS:
+ type: string
+ default: "git-qa"
+ HEAT_TEMPLATE_BRANCH:
+ type: string
+ default: "master"
+ OPENSTACK_API_CLIENT:
+ type: string
+ default: "liberty"
+ OPENSTACK_API_VERSION:
+ type: string
+ default: "2"
+ OPENSTACK_API_URL:
+ type: string
+ default: "https://vpc.tcpisek.cz:5000/v2.0"
+ OPENSTACK_API_CREDENTIALS:
+ type: string
+ default: "openstack-qa"
+ OPENSTACK_API_PROJECT:
+ type: string
+ default: "mirantis_mk20_qa"
+ SALT_MASTER_CREDENTIALS:
+ type: string
+ default: "salt-qa-credentials"
+ HEAT_STACK_NAME:
+ type: string
+ default: "maas_gate"
+ HEAT_STACK_TEMPLATE:
+ type: string
+ default: "maas_lab"
+ HEAT_STACK_ENVIRONMENT:
+ type: string
+ default: "tcpisek"
+ HEAT_STACK_ZONE:
+ type: string
+ default: "mirantis-zone-qa"
+ HEAT_STACK_PUBLIC_NET:
+ type: string
+ default: "inet2"
+ libs:
+ - repository: pipeline_libs
+ file: macro/common.groovy
+ - repository: pipeline_libs
+ file: macro/git.groovy
+ - repository: pipeline_libs
+ file: macro/http.groovy
+ - repository: pipeline_libs
+ file: macro/openstack.groovy
+ - repository: pipeline_libs
+ file: macro/python.groovy
+ - repository: pipeline_libs
+ file: macro/salt.groovy
+ script:
+ repository: pipeline_libs
+ file: pipeline/provision/heat_maas_lab.groovy
diff --git a/jenkins/client/job/deploy/mk_lab.yml b/jenkins/client/job/deploy/mk_lab.yml
new file mode 100644
index 0000000..a36d26e
--- /dev/null
+++ b/jenkins/client/job/deploy/mk_lab.yml
@@ -0,0 +1,205 @@
+parameters:
+ jenkins:
+ client:
+ job:
+ deploy-update-package:
+ type: workflow-scm
+ concurrent: true
+ display_name: "Update system package(s)"
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: update-package.groovy
+ param:
+ SALT_MASTER_URL:
+ type: string
+ default: "http://10.10.10.1:8000"
+ SALT_MASTER_CREDENTIALS:
+ type: string
+ default: "salt"
+ UPDATE_SERVERS:
+ type: string
+ default: "*"
+ description: Salt compound target to match nodes to be updated.
+ UPDATE_PACKAGES:
+ type: string
+ default: ""
+ description: Space delimited list of packages to be updates [package1=version package2=version], empty string means all updating all packages to the latest version.
+ UPDATE_COMMIT:
+ type: boolean
+ default: false
+
+ deploy-heat-cleanup:
+ type: workflow-scm
+ concurrent: true
+ display_name: "Deploy - heat cleanup"
+ discard:
+ build:
+ keep_num: 20
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: cleanup-pipeline.groovy
+ param:
+ # openstack api
+ OPENSTACK_API_URL:
+ type: string
+ default: "https://vpc.tcpisek.cz:5000/v2.0"
+ OPENSTACK_API_CREDENTIALS:
+ type: string
+ default: "openstack-qa-credentials"
+ OPENSTACK_API_PROJECT:
+ type: string
+ default: "mirantis_mk20_qa"
+ OPENSTACK_API_CLIENT:
+ type: string
+ default: "liberty"
+ OPENSTACK_API_VERSION:
+ type: string
+ default: "2"
+ # heat
+ HEAT_STACK_NAME:
+ type: string
+ description: This stack will be deleted.
+
+ job_template:
+ deploy_heat_template:
+ name: deploy-{{stack_type}}-{{lab}}
+ jobs:
+ # virtual
+ - lab: virtual_mcp05_dvr
+ install: core,openstack,dvr
+ stack_type: heat
+ - lab: virtual_mcp05_ovs
+ install: core,openstack,ovs
+ stack_type: heat
+ - lab: virtual_mcp10_contrail
+ install: core,openstack,contrail
+ stack_type: heat
+ - lab: virtual_mcp10_dvr
+ install: core,openstack,dvr
+ stack_type: heat
+ - lab: virtual_mcp10_ovs
+ install: core,openstack,ovs
+ stack_type: heat
+ - lab: virtual_mk20_advanced
+ install: core,openstack
+ stack_type: heat
+ - lab: virtual_mk20_basic
+ install: core,openstack
+ stack_type: heat
+ - lab: virtual_mk22_advanced
+ install: core,openstack
+ stack_type: heat
+ - lab: virtual_mk22_basic
+ install: core,openstack
+ stack_type: heat
+ # physical
+ - lab: mcp10_contrail
+ install: core,kvm,openstack,contrail
+ stack_type: physical
+ - lab: mcp10_opencontrail_nfv
+ install: core,kvm,openstack,nfv
+ stack_type: physical
+ - lab: mcp10_dvr
+ install: core,kvm,openstack,dvr
+ stack_type: physical
+ - lab: mcp10_non_dvr
+ install: core,kvm,openstack
+ stack_type: physical
+ template:
+ type: workflow-scm
+ discard:
+ build:
+ keep_num: 20
+ concurrent: true
+ display_name: "Deploy - {{lab}} {{stack_type}} lab"
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: lab-pipeline.groovy
+ param:
+ # deployments and test settings
+ STACK_TYPE:
+ type: string
+ default: "{{stack_type}}"
+ INSTALL:
+ type: string
+ default: "{{install}}"
+ TEST:
+ type: string
+ default: ""
+
+ # heat
+ HEAT_TEMPLATE_URL:
+ type: string
+ default: "git@github.com:Mirantis/mk-lab-heat-templates.git"
+ HEAT_TEMPLATE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ HEAT_TEMPLATE_BRANCH:
+ type: string
+ default: "composite"
+ HEAT_STACK_NAME:
+ type: string
+ description: Heat stack name. Will be generated if missing.
+ HEAT_STACK_TEMPLATE:
+ type: string
+ default: "{{lab}}"
+ HEAT_STACK_ENVIRONMENT:
+ type: string
+ default: "tcpisek"
+ HEAT_STACK_ZONE:
+ type: string
+ default: "mirantis-zone-qa"
+ HEAT_STACK_PUBLIC_NET:
+ type: string
+ default: "mirantis-private"
+ HEAT_STACK_DELETE:
+ type: boolean
+ default: 'true'
+ HEAT_STACK_REUSE:
+ type: boolean
+ default: 'false'
+
+ # salt master
+ SALT_MASTER_CREDENTIALS:
+ type: string
+ default: "salt-qa-credentials"
+ SALT_MASTER_URL:
+ type: string
+ default: ""
+
+ # openstack api
+ OPENSTACK_API_URL:
+ type: string
+ default: "https://vpc.tcpisek.cz:5000/v2.0"
+ OPENSTACK_API_CREDENTIALS:
+ type: string
+ default: "openstack-qa-credentials"
+ OPENSTACK_API_PROJECT:
+ type: string
+ default: "mirantis_mk20_qa"
+ OPENSTACK_API_CLIENT:
+ type: string
+ default: "liberty"
+ OPENSTACK_API_VERSION:
+ type: string
+ default: "2"
+
+ # k8s setttings
+ K8S_API_SERVER:
+ type: string
+ default: "http://127.0.0.1:8080"
+ K8S_CONFORMANCE_IMAGE:
+ type: string
+ default: "docker-dev-virtual.docker.mirantis.net/mirantis/kubernetes/k8s-conformance:v1.5.1-3_1482332392819"
+
+ # Tempest settings
+ TEMPEST_IMAGE_LINK:
+ type: string
+ default: "sandbox-docker-prod-local.docker.mirantis.net/mirantis/rally_tempest:0.1"
+
diff --git a/jenkins/client/job/deploy/reclass_update.yml b/jenkins/client/job/deploy/reclass_update.yml
new file mode 100644
index 0000000..1f99ddc
--- /dev/null
+++ b/jenkins/client/job/deploy/reclass_update.yml
@@ -0,0 +1,26 @@
+parameters:
+ jenkins:
+ client:
+ job_template:
+ reclass_update:
+ name: deploy-update-{{name}}
+ jobs:
+ - name: mk-ci
+ salt_url: "http://10.10.100.81:8000"
+ salt_credentials: salt-mk-ci
+ template:
+ display_name: "Deploy - update {{name}} environment"
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/salt-models/{{name}}"
+ credentials: "gerrit"
+ script: Jenkinsfile
+ param:
+ SALT_MASTER_URL:
+ type: string
+ default: "{{salt_url}}"
+ SALT_MASTER_CREDENTIALS:
+ type: string
+ default: "{{salt_credentials}}"
diff --git a/jenkins/client/job/gating.yml b/jenkins/client/job/gating.yml
new file mode 100644
index 0000000..0c4f9dd
--- /dev/null
+++ b/jenkins/client/job/gating.yml
@@ -0,0 +1,49 @@
+parameters:
+ jenkins:
+ client:
+ job_template:
+ gate-gerrit-namespace:
+ name: gate-gerrit-{{name}}
+ jobs:
+ - name: mk
+ - name: debian
+ - name: contrail
+ - name: salt-models
+ - name: salt-formulas
+ template:
+ discard:
+ build:
+ keep_num: 5
+ artifact:
+ keep_num: 5
+ type: workflow-scm
+ concurrent: true
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: gating-pipeline.groovy
+ trigger:
+ gerrit:
+ project:
+ '{{name}}\/.*':
+ compare_type: REG_EXP
+ branches:
+ - master
+ skip_vote:
+ - successful
+ - failed
+ - unstable
+ - not_built
+ event:
+ comment:
+ - added:
+ verdictCategory: 'Workflow'
+ commentAddedTriggerApprovalValue: '+1'
+ param:
+ JOBS_NAMESPACE:
+ type: string
+ default: "{{name}}"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
\ No newline at end of file
diff --git a/jenkins/client/job/image/centos.yml b/jenkins/client/job/image/centos.yml
new file mode 100644
index 0000000..e4b9b72
--- /dev/null
+++ b/jenkins/client/job/image/centos.yml
@@ -0,0 +1,70 @@
+parameters:
+ jenkins:
+ client:
+ job:
+ build-image-centos-7:
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_packer_pipeline}"
+ credentials: "gerrit"
+ display_name: "[Images] Build Centos 7"
+ param:
+ BUILD_OS:
+ type: string
+ default: "centos-7"
+ BUILD_ONLY:
+ type: string
+ default: "qemu"
+ PACKER_DEBUG:
+ type: boolean
+ default: "false"
+ PACKER_URL:
+ type: string
+ default: "https://releases.hashicorp.com/packer/0.8.6/packer_0.8.6_linux_amd64.zip"
+ PACKER_ZIP:
+ type: string
+ default: "packer_0.8.6_linux_amd64.zip"
+ PACKER_ZIP_MD5:
+ type: string
+ default: "4cda1c44cf666fada495dd8e01522e1c"
+ PACKER_ARGS:
+ type: string
+ default: ""
+ UPLOAD_URL:
+ type: string
+ default: "http://jenkins:eyoocaiG3ADireK3Eef8gae1roh5oox010.10.100.85:8088/"
+ SKIP_UPLOAD:
+ type: boolean
+ default: "false"
+ CLEANUP_OLD:
+ type: boolean
+ default: "true"
+ CLEANUP_KEEP:
+ type: string
+ default: "3"
+ GLANCE_UPLOAD:
+ type: boolean
+ default: "true"
+ GLANCE_IMG_TYPES:
+ type: string
+ default: "qcow2"
+ GLANCE_URL:
+ type: string
+ default: "https://vpc.tcpisek.cz:5000/v2.0"
+ GLANCE_CREDENTIALS_ID:
+ type: string
+ default: "openstack-qa-credentials"
+ GLANCE_PROJECT:
+ type: string
+ default: "mirantis_mk20_qa"
+ GLANCE_ARGS:
+ type: string
+ default: ""
+ GLANCE_PUBLIC:
+ type: boolean
+ default: "true"
+ OPENSTACK_API_CLIENT:
+ type: string
+ default: "liberty"
\ No newline at end of file
diff --git a/jenkins/client/job/image/debian.yml b/jenkins/client/job/image/debian.yml
new file mode 100644
index 0000000..317c5df
--- /dev/null
+++ b/jenkins/client/job/image/debian.yml
@@ -0,0 +1,70 @@
+parameters:
+ jenkins:
+ client:
+ job:
+ build-image-debian-8:
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_packer_pipeline}"
+ credentials: "gerrit"
+ display_name: "[Images] Build Debian 8 image"
+ param:
+ BUILD_OS:
+ type: string
+ default: "debian-8"
+ BUILD_ONLY:
+ type: string
+ default: "qemu"
+ PACKER_DEBUG:
+ type: boolean
+ default: "false"
+ PACKER_URL:
+ type: string
+ default: "https://releases.hashicorp.com/packer/0.8.6/packer_0.8.6_linux_amd64.zip"
+ PACKER_ZIP:
+ type: string
+ default: "packer_0.8.6_linux_amd64.zip"
+ PACKER_ZIP_MD5:
+ type: string
+ default: "4cda1c44cf666fada495dd8e01522e1c"
+ PACKER_ARGS:
+ type: string
+ default: ""
+ UPLOAD_URL:
+ type: string
+ default: "http://jenkins:eyoocaiG3ADireK3Eef8gae1roh5oox0@10.10.100.85:8088/"
+ SKIP_UPLOAD:
+ type: boolean
+ default: "false"
+ CLEANUP_OLD:
+ type: boolean
+ default: "true"
+ CLEANUP_KEEP:
+ type: string
+ default: "3"
+ GLANCE_UPLOAD:
+ type: boolean
+ default: "true"
+ GLANCE_IMG_TYPES:
+ type: string
+ default: "qcow2"
+ GLANCE_URL:
+ type: string
+ default: "https://vpc.tcpisek.cz:5000/v2.0"
+ GLANCE_CREDENTIALS_ID:
+ type: string
+ default: "openstack-qa-credentials"
+ GLANCE_PROJECT:
+ type: string
+ default: "mirantis_mk20_qa"
+ GLANCE_ARGS:
+ type: string
+ default: ""
+ GLANCE_PUBLIC:
+ type: boolean
+ default: "true"
+ OPENSTACK_API_CLIENT:
+ type: string
+ default: "liberty"
diff --git a/jenkins/client/job/image/ubuntu.yml b/jenkins/client/job/image/ubuntu.yml
new file mode 100755
index 0000000..e49bda0
--- /dev/null
+++ b/jenkins/client/job/image/ubuntu.yml
@@ -0,0 +1,143 @@
+parameters:
+ jenkins:
+ client:
+ job:
+ build-image-ubuntu-14-04:
+ type: workflow-scm
+ concurrent: false
+ discard:
+ build:
+ keep_num: 5
+ keep_days: 5
+ artifact:
+ keep_num: 6
+ keep_days: 6
+ scm:
+ type: git
+ url: "${_param:jenkins_packer_pipeline}"
+ credentials: "gerrit"
+ display_name: "[Images] Build Ubuntu 14.04 image"
+ param:
+ BUILD_OS:
+ type: string
+ default: "ubuntu-14.04"
+ BUILD_ONLY:
+ type: string
+ default: "qemu"
+ PACKER_DEBUG:
+ type: boolean
+ default: "false"
+ PACKER_URL:
+ type: string
+ default: "https://releases.hashicorp.com/packer/0.8.6/packer_0.8.6_linux_amd64.zip"
+ PACKER_ZIP:
+ type: string
+ default: "packer_0.8.6_linux_amd64.zip"
+ PACKER_ZIP_MD5:
+ type: string
+ default: "4cda1c44cf666fada495dd8e01522e1c"
+ PACKER_ARGS:
+ type: string
+ default: ""
+ UPLOAD_URL:
+ type: string
+ default: "http://jenkins:eyoocaiG3ADireK3Eef8gae1roh5oox0@10.10.100.85:8088/"
+ SKIP_UPLOAD:
+ type: boolean
+ default: "false"
+ CLEANUP_OLD:
+ type: boolean
+ default: "true"
+ CLEANUP_KEEP:
+ type: string
+ default: "3"
+ GLANCE_UPLOAD:
+ type: boolean
+ default: "true"
+ GLANCE_IMG_TYPES:
+ type: string
+ default: "qcow2"
+ GLANCE_URL:
+ type: string
+ default: "https://vpc.tcpisek.cz:5000/v2.0"
+ GLANCE_CREDENTIALS_ID:
+ type: string
+ default: "openstack-qa-credentials"
+ GLANCE_PROJECT:
+ type: string
+ default: "mirantis_mk20_qa"
+ GLANCE_ARGS:
+ type: string
+ default: ""
+ GLANCE_PUBLIC:
+ type: boolean
+ default: "true"
+ OPENSTACK_API_CLIENT:
+ type: string
+ default: "liberty"
+ build-image-ubuntu-16-04:
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_packer_pipeline}"
+ credentials: "gerrit"
+ display_name: "[Images] Build Ubuntu 16.04 image"
+ param:
+ BUILD_OS:
+ type: string
+ default: "ubuntu-16.04"
+ BUILD_ONLY:
+ type: string
+ default: "qemu"
+ PACKER_DEBUG:
+ type: boolean
+ default: "false"
+ PACKER_URL:
+ type: string
+ default: "https://releases.hashicorp.com/packer/0.8.6/packer_0.8.6_linux_amd64.zip"
+ PACKER_ZIP:
+ type: string
+ default: "packer_0.8.6_linux_amd64.zip"
+ PACKER_ZIP_MD5:
+ type: string
+ default: "4cda1c44cf666fada495dd8e01522e1c"
+ PACKER_ARGS:
+ type: string
+ default: ""
+ UPLOAD_URL:
+ type: string
+ default: "http://jenkins:eyoocaiG3ADireK3Eef8gae1roh5oox0@10.10.100.85:8088/"
+ SKIP_UPLOAD:
+ type: boolean
+ default: "false"
+ CLEANUP_OLD:
+ type: boolean
+ default: "true"
+ CLEANUP_KEEP:
+ type: string
+ default: "3"
+ GLANCE_UPLOAD:
+ type: boolean
+ default: "true"
+ GLANCE_IMG_TYPES:
+ type: string
+ default: "qcow2"
+ GLANCE_URL:
+ type: string
+ default: "https://vpc.tcpisek.cz:5000/v2.0"
+ GLANCE_CREDENTIALS_ID:
+ type: string
+ default: "openstack-qa-credentials"
+ GLANCE_PROJECT:
+ type: string
+ default: "mirantis_mk20_qa"
+ GLANCE_ARGS:
+ type: string
+ default: ""
+ GLANCE_PUBLIC:
+ type: boolean
+ default: "true"
+ OPENSTACK_API_CLIENT:
+ type: string
+ default: "liberty"
diff --git a/jenkins/client/job/opencontrail/build/dpdk-extra.yml b/jenkins/client/job/opencontrail/build/dpdk-extra.yml
new file mode 100644
index 0000000..3f83a25
--- /dev/null
+++ b/jenkins/client/job/opencontrail/build/dpdk-extra.yml
@@ -0,0 +1,77 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ build-opencontrail-dpdk-extra:
+ name: build-opencontrail-dpdk-extra-{{branch_name}}-{{os}}-{{dist}}
+ jobs:
+ - os: ubuntu
+ dist: trusty
+ branch_name: kilo
+ branch_real_name: kilo
+ - os: ubuntu
+ dist: trusty
+ branch_name: liberty
+ branch_real_name: liberty-multiqueue
+ - os: ubuntu
+ dist: trusty
+ branch_name: mitaka
+ branch_real_name: mitaka
+ - os: ubuntu
+ dist: xenial
+ branch_name: mitaka
+ branch_real_name: mitaka
+ template:
+ discard:
+ build:
+ keep_num: 5
+ artifact:
+ keep_num: 5
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: build-extra-dpdk-pipeline.groovy
+ quiet_period: 120
+ trigger:
+ gerrit:
+ project:
+ contrail/contrail-dpdk-extra-packages:
+ branches:
+ - "{{branch_real_name}}"
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/contrail/contrail-dpdk-extra-packages.git"
+ SOURCE_BRANCH:
+ type: string
+ default: "{{branch_real_name}}"
+ SOURCE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ APTLY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_api_url}"
+ APTLY_REPO:
+ type: string
+ default: "{{os}}-{{dist}}-{{branch_name}}"
+ OS:
+ type: string
+ default: "{{os}}"
+ DIST:
+ type: string
+ default: "{{dist}}"
+ ARCH:
+ type: string
+ default: "amd64"
diff --git a/jenkins/client/job/opencontrail/build/generic.yml b/jenkins/client/job/opencontrail/build/generic.yml
new file mode 100644
index 0000000..5bf7e5d
--- /dev/null
+++ b/jenkins/client/job/opencontrail/build/generic.yml
@@ -0,0 +1,162 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ build-opencontrail:
+ name: build-opencontrail-{{buildname}}-{{os}}-{{dist}}
+ jobs:
+ - buildname: oc303
+ os: ubuntu
+ dist: trusty
+ branch: R3.0.3.x
+ ppa: mirantis/opencontrail-3.0.3
+ upload_source_package: false
+ - buildname: oc31
+ os: ubuntu
+ dist: trusty
+ branch: R3.1
+ ppa: mirantis/opencontrail-3.1
+ upload_source_package: true
+ - buildname: oc31
+ os: ubuntu
+ dist: xenial
+ branch: R3.1
+ ppa: mirantis/opencontrail-3.1
+ upload_source_package: true
+ - buildname: oc311
+ os: ubuntu
+ dist: trusty
+ branch: R3.1.1.x
+ ppa: irantis/mopencontrail-3.1.1
+ upload_source_package: true
+ - buildname: oc311
+ os: ubuntu
+ dist: xenial
+ branch: R3.1.1.x
+ ppa: mirantis/opencontrail-3.1.1
+ upload_source_package: true
+ - buildname: oc32
+ os: ubuntu
+ dist: trusty
+ branch: R3.2
+ ppa: mirantis/opencontrail-3.2
+ upload_source_package: true
+ - buildname: oc32
+ os: ubuntu
+ dist: xenial
+ branch: R3.2
+ ppa: mirantis/opencontrail-3.2
+ upload_source_package: true
+ template:
+ discard:
+ build:
+ keep_num: 5
+ artifact:
+ keep_num: 5
+ type: workflow-scm
+ concurrent: false
+ quiet_period: 120
+ scm:
+ type: git
+ url: "${_param:jenkins_contrail_pipeline}"
+ credentials: "gerrit"
+ github:
+ url: https://github.com/Mirantis/ccp-contrail-pipeline
+ trigger:
+ gerrit:
+ project:
+ contrail/contrail-pipeline:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-build:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-controller:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-vrouter:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-third-party:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-generateDS:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-sandesh:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-packages:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-nova-vif-driver:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-neutron-plugin:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-nova-extensions:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-heat:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-web-storage:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-web-server-manager:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-web-controller:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-web-core:
+ branches:
+ - "{{branch}}"
+ contrail/contrail-webui-third-party:
+ branches:
+ - "{{branch}}"
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ APTLY_URL:
+ type: string
+ default: "${_param:jenkins_aptly_api_url}"
+ APTLY_REPO:
+ type: string
+ default: "{{os}}-{{dist}}-{{buildname}}"
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/contrail"
+ SOURCE_BRANCH:
+ type: string
+ default: "{{branch}}"
+ SOURCE_CREDENTIALS:
+ type: string
+ default: "gerrit"
+ KEEP_REPOS:
+ type: boolean
+ default: 'false'
+ description: "Don't cleanup on failure"
+ OS:
+ type: string
+ default: "{{os}}"
+ DIST:
+ type: string
+ default: "{{dist}}"
+ ARCH:
+ type: string
+ default: "amd64"
+ PPA:
+ type: string
+ default: "{{ppa}}"
+ UPLOAD_SOURCE_PACKAGE:
+ type: boolean
+ default: '{{upload_source_package}}'
diff --git a/jenkins/client/job/opencontrail/build/init.yml b/jenkins/client/job/opencontrail/build/init.yml
new file mode 100644
index 0000000..9ca87f5
--- /dev/null
+++ b/jenkins/client/job/opencontrail/build/init.yml
@@ -0,0 +1,3 @@
+classes:
+ - system_extra.jenkins.client.job.opencontrail.build.generic
+ - system_extra.jenkins.client.job.opencontrail.build.dpdk-extra
diff --git a/jenkins/client/job/opencontrail/git-mirrors/2way.yml b/jenkins/client/job/opencontrail/git-mirrors/2way.yml
new file mode 100644
index 0000000..2d9a4b3
--- /dev/null
+++ b/jenkins/client/job/opencontrail/git-mirrors/2way.yml
@@ -0,0 +1,33 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job:
+ git-mirror-2way-contrail-kubernetes:
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-2way-pipeline.groovy
+ github:
+ url: "https://github.com/Mirantis/contrail-kubernetes"
+ trigger:
+ github:
+ pollscm:
+ spec: ${_param:jenkins_pollscm_spec}
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/contrail/contrail-kubernetes.git"
+ TARGET_URL:
+ type: string
+ default: "https://github.com/Mirantis/contrail-kubernetes.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: ${_param:contrail_kubernetes_branches}
diff --git a/jenkins/client/job/opencontrail/git-mirrors/downstream.yml b/jenkins/client/job/opencontrail/git-mirrors/downstream.yml
new file mode 100644
index 0000000..f10e339
--- /dev/null
+++ b/jenkins/client/job/opencontrail/git-mirrors/downstream.yml
@@ -0,0 +1,93 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ git-mirror:
+ name: git-mirror-{{name}}
+ jobs:
+ - name: contrail-build
+ - name: contrail-controller
+ - name: contrail-vrouter
+ - name: contrail-third-party
+ - name: contrail-generateDS
+ - name: contrail-sandesh
+ - name: contrail-packages
+ - name: contrail-nova-vif-driver
+ - name: contrail-neutron-plugin
+ - name: contrail-nova-extensions
+ - name: contrail-ceilometer-plugin
+ - name: contrail-heat
+ - name: contrail-web-storage
+ - name: contrail-web-server-manager
+ - name: contrail-web-controller
+ - name: contrail-web-core
+ - name: contrail-webui-third-party
+ - name: contrail-dpdk-extra-packages
+ - name: contrail-kubernetes
+ template:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-pipeline.groovy
+ github:
+ url: "https://github.com/Juniper/{{name}}"
+ trigger:
+ github:
+ pollscm:
+ spec: ${_param:jenkins_pollscm_spec}
+ param:
+ SOURCE_URL:
+ type: string
+ default: "https://github.com/Juniper/{{name}}.git"
+ TARGET_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/contrail/{{name}}.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: ${_param:contrail_branches}
+ job:
+ git-mirror-ifmap-python-client:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-pipeline.groovy
+ github:
+ url: "https://github.com/tcpcloud/ifmap-python-client"
+ trigger:
+ github:
+ pollscm:
+ spec: ${_param:jenkins_pollscm_spec}
+ param:
+ SOURCE_URL:
+ type: string
+ default: "https://github.com/tcpcloud/ifmap-python-client.git"
+ TARGET_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/contrail/ifmap-python-client.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: "master"
diff --git a/jenkins/client/job/opencontrail/git-mirrors/init.yml b/jenkins/client/job/opencontrail/git-mirrors/init.yml
new file mode 100644
index 0000000..b73dfe5
--- /dev/null
+++ b/jenkins/client/job/opencontrail/git-mirrors/init.yml
@@ -0,0 +1,4 @@
+classes:
+ - system_extra.jenkins.client.job.opencontrail.git-mirrors.downstream
+ - system_extra.jenkins.client.job.opencontrail.git-mirrors.upstream
+ - system_extra.jenkins.client.job.opencontrail.git-mirrors.2way
diff --git a/jenkins/client/job/opencontrail/git-mirrors/upstream.yml b/jenkins/client/job/opencontrail/git-mirrors/upstream.yml
new file mode 100644
index 0000000..f665658
--- /dev/null
+++ b/jenkins/client/job/opencontrail/git-mirrors/upstream.yml
@@ -0,0 +1,188 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ git-mirror-upstream:
+ name: git-mirror-upstream-{{name}}
+ jobs:
+ - name: contrail-build
+ branches: ${_param:contrail_branches}
+ - name: contrail-controller
+ branches: ${_param:contrail_branches}
+ - name: contrail-vrouter
+ branches: ${_param:contrail_branches}
+ - name: contrail-third-party
+ branches: ${_param:contrail_branches}
+ - name: contrail-generateDS
+ branches: ${_param:contrail_branches}
+ - name: contrail-sandesh
+ branches: ${_param:contrail_branches}
+ - name: contrail-packages
+ branches: ${_param:contrail_branches}
+ - name: contrail-nova-vif-driver
+ branches: ${_param:contrail_branches}
+ - name: contrail-neutron-plugin
+ branches: ${_param:contrail_branches}
+ - name: contrail-nova-extensions
+ branches: ${_param:contrail_branches}
+ - name: contrail-ceilometer-plugin
+ branches: ${_param:contrail_ceilometer_plugin_branches}
+ - name: contrail-heat
+ branches: ${_param:contrail_branches}
+ - name: contrail-web-storage
+ branches: ${_param:contrail_branches}
+ - name: contrail-web-server-manager
+ branches: ${_param:contrail_branches}
+ - name: contrail-web-controller
+ branches: ${_param:contrail_branches}
+ - name: contrail-web-core
+ branches: ${_param:contrail_branches}
+ - name: contrail-webui-third-party
+ branches: ${_param:contrail_branches}
+ - name: contrail-dpdk-extra-packages
+ branches: ${_param:contrail_dpdk_extra_branches}
+ template:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-pipeline.groovy
+ github:
+ url: "https://github.com/Mirantis/{{name}}"
+ trigger:
+ github:
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/contrail/{{name}}.git"
+ TARGET_URL:
+ type: string
+ default: "git@github.com:Mirantis/{{name}}.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: "{{branches}}"
+ job:
+ git-mirror-upstream-ifmap-python-client:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-pipeline.groovy
+ github:
+ url: "https://github.com/tcpcloud/ifmap-python-client"
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/contrail/ifmap-python-client.git"
+ TARGET_URL:
+ type: string
+ default: "git@github.com:Mirantis/ifmap-python-client.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: "master"
+ # XXX: this one ccp- prefixed is kind-of obsolete and should be
+ # removed
+ git-mirror-upstream-ccp-contrail-pipeline:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-pipeline.groovy
+ github:
+ url: https://github.com/Mirantis/ccp-contrail-pipeline
+ trigger:
+ gerrit:
+ project:
+ contrail/contrail-pipeline:
+ branches:
+ - master
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_contrail_pipeline}"
+ TARGET_URL:
+ type: string
+ default: "git@github.com:Mirantis/ccp-contrail-pipeline.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: master
+ git-mirror-upstream-contrail-pipeline:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-pipeline.groovy
+ github:
+ url: https://github.com/Mirantis/contrail-pipeline
+ trigger:
+ gerrit:
+ project:
+ contrail/contrail-pipeline:
+ branches:
+ - master
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_contrail_pipeline}"
+ TARGET_URL:
+ type: string
+ default: "git@github.com:Mirantis/contrail-pipeline.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: master
diff --git a/jenkins/client/job/opencontrail/init.yml b/jenkins/client/job/opencontrail/init.yml
new file mode 100644
index 0000000..0a6613d
--- /dev/null
+++ b/jenkins/client/job/opencontrail/init.yml
@@ -0,0 +1,9 @@
+classes:
+ - system_extra.jenkins.client.job.opencontrail.build
+ - system_extra.jenkins.client.job.opencontrail.git-mirrors
+parameters:
+ _param:
+ contrail_branches: "R3.0.2.x,R3.0.3.x,R3.1,R3.1.1.x,R3.2,master"
+ contrail_kubernetes_branches: "master,release-1.2"
+ contrail_dpdk_extra_branches: "mitaka,kilo,liberty-multiqueue"
+ contrail_ceilometer_plugin_branches: "master"
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/2way.yml b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
new file mode 100644
index 0000000..9b7bb78
--- /dev/null
+++ b/jenkins/client/job/salt-formulas/git-mirrors/2way.yml
@@ -0,0 +1,132 @@
+parameters:
+ jenkins:
+ client:
+ job_template:
+ git-mirror-2way-salt-formula:
+ name: git-mirror-2way-salt-formula-{{name}}
+ jobs:
+ - name: aodh
+ - name: apache
+ - name: aptly
+ - name: artifactory
+ - name: backupninja
+ - name: avinetworks
+ - name: billometer
+ - name: bind
+ - name: bird
+ - name: cadf
+ - name: calico
+ - name: cassandra
+ - name: ccp
+ - name: ceilometer
+ - name: ceph
+ - name: chrony
+ - name: cinder
+ - name: collectd
+ - name: dekapod
+ - name: docker
+ - name: dovecot
+ - name: elasticsearch
+ - name: etcd
+ - name: foreman
+ - name: freeipa
+ - name: galera
+ - name: gerrit
+ - name: git
+ - name: gitlab
+ - name: glance
+ - name: glusterfs
+ - name: grafana
+ - name: graphite
+ - name: haproxy
+ - name: heat
+ - name: heka
+ - name: horizon
+ - name: influxdb
+ - name: iptables
+ - name: isc-dhcp
+ - name: java
+ - name: jenkins
+ - name: kedb
+ - name: keepalived
+ - name: keystone
+ - name: kibana
+ - name: kubernetes
+ - name: letsencrypt
+ - name: libvirt
+ - name: linux
+ - name: logrotate
+ - name: maas
+ - name: magnum
+ - name: memcached
+ - name: midonet
+ - name: monasca
+ - name: mongodb
+ - name: murano
+ - name: mysql
+ - name: nagios
+ - name: network
+ - name: neutron
+ - name: nfs
+ - name: nginx
+ - name: nodejs
+ - name: nova
+ - name: ntp
+ - name: opencontrail
+ - name: openssh
+ - name: openvpn
+ - name: openvstorage
+ - name: owncloud
+ - name: postfix
+ - name: postgresql
+ - name: pritunl
+ - name: python
+ - name: rabbitmq
+ - name: reclass
+ - name: redis
+ - name: roundcube
+ - name: rsync
+ - name: rsyslog
+ - name: sahara
+ - name: salt
+ - name: sensu
+ - name: sentry
+ - name: sphinx
+ - name: statsd
+ - name: supervisor
+ - name: swift
+ - name: taiga
+ - name: varnish
+ - name: zookeeper
+ template:
+ discard:
+ build:
+ keep_num: 10
+ artifact:
+ keep_num: 10
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-2way-pipeline.groovy
+ github:
+ url: "https://github.com/salt-formulas/salt-formula-{{name}}"
+ trigger:
+ github:
+ pollscm:
+ spec: ${_param:jenkins_pollscm_spec}
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/salt-formulas/{{name}}.git"
+ TARGET_URL:
+ type: string
+ default: "git@github.com:salt-formulas/salt-formula-{{name}}.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: ${_param:salt_formulas_branches}
diff --git a/jenkins/client/job/salt-formulas/git-mirrors/init.yml b/jenkins/client/job/salt-formulas/git-mirrors/init.yml
new file mode 100644
index 0000000..a0f3f34
--- /dev/null
+++ b/jenkins/client/job/salt-formulas/git-mirrors/init.yml
@@ -0,0 +1,5 @@
+classes:
+ - system_extra.jenkins.client.job.salt-formulas.git-mirrors.2way
+parameters:
+ _param:
+ salt_formulas_branches: master
diff --git a/jenkins/client/job/salt-formulas/init.yml b/jenkins/client/job/salt-formulas/init.yml
new file mode 100644
index 0000000..2a506b9
--- /dev/null
+++ b/jenkins/client/job/salt-formulas/init.yml
@@ -0,0 +1,4 @@
+classes:
+ - system_extra.jenkins.client.job.salt-formulas.git-mirrors
+ - system_extra.jenkins.client.job.salt-formulas.tests
+ - system_extra.jenkins.client.job.salt-formulas.release
diff --git a/jenkins/client/job/salt-formulas/release.yml b/jenkins/client/job/salt-formulas/release.yml
new file mode 100644
index 0000000..c686e6e
--- /dev/null
+++ b/jenkins/client/job/salt-formulas/release.yml
@@ -0,0 +1,26 @@
+parameters:
+ jenkins:
+ client:
+ job:
+ release-salt-formulas:
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: release-salt-formulas-pipeline.groovy
+ github:
+ url: "https://github.com/salt-formulas/salt-formulas"
+ param:
+ TAG:
+ type: string
+ SOURCE_URL:
+ type: string
+ default: "https://github.com/salt-formulas/salt-formulas.git"
+ GERRIT_BASE:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/salt-formulas"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
diff --git a/jenkins/client/job/salt-formulas/tests.yml b/jenkins/client/job/salt-formulas/tests.yml
new file mode 100644
index 0000000..5d5206b
--- /dev/null
+++ b/jenkins/client/job/salt-formulas/tests.yml
@@ -0,0 +1,138 @@
+parameters:
+ jenkins:
+ client:
+ job_template:
+ test-salt-formula:
+ name: test-salt-formula-{{name}}-latest
+ jobs:
+ - name: aodh
+ - name: apache
+ - name: aptly
+ - name: artifactory
+ - name: backupninja
+ - name: avinetworks
+ - name: billometer
+ - name: bind
+ - name: bird
+ - name: cadf
+ - name: calico
+ - name: cassandra
+ - name: ccp
+ - name: ceilometer
+ - name: ceph
+ - name: chrony
+ - name: cinder
+ - name: collectd
+ - name: dekapod
+ - name: docker
+ - name: dovecot
+ - name: elasticsearch
+ - name: etcd
+ - name: foreman
+ - name: freeipa
+ - name: galera
+ - name: gerrit
+ - name: git
+ - name: gitlab
+ - name: glance
+ - name: glusterfs
+ - name: grafana
+ - name: graphite
+ - name: haproxy
+ - name: heat
+ - name: heka
+ - name: horizon
+ - name: influxdb
+ - name: iptables
+ - name: isc-dhcp
+ - name: java
+ - name: jenkins
+ - name: kedb
+ - name: keepalived
+ - name: keystone
+ - name: kibana
+ - name: kubernetes
+ - name: letsencrypt
+ - name: libvirt
+ - name: linux
+ - name: logrotate
+ - name: maas
+ - name: magnum
+ - name: memcached
+ - name: midonet
+ - name: monasca
+ - name: mongodb
+ - name: murano
+ - name: mysql
+ - name: nagios
+ - name: network
+ - name: neutron
+ - name: nfs
+ - name: nginx
+ - name: nodejs
+ - name: nova
+ - name: ntp
+ - name: opencontrail
+ - name: openssh
+ - name: openvpn
+ - name: openvstorage
+ - name: owncloud
+ - name: postfix
+ - name: postgresql
+ - name: pritunl
+ - name: python
+ - name: rabbitmq
+ - name: reclass
+ - name: redis
+ - name: roundcube
+ - name: rsync
+ - name: rsyslog
+ - name: sahara
+ - name: salt
+ - name: sensu
+ - name: sentry
+ - name: sphinx
+ - name: statsd
+ - name: supervisor
+ - name: swift
+ - name: taiga
+ - name: varnish
+ - name: zookeeper
+ template:
+ discard:
+ build:
+ keep_num: 25
+ artifact:
+ keep_num: 25
+ type: workflow-scm
+ concurrent: true
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: test-salt-formulas-pipeline.groovy
+ trigger:
+ gerrit:
+ project:
+ salt-formulas/{{name}}:
+ branches:
+ - master
+ event:
+ patchset:
+ - created:
+ excludeDrafts: false
+ excludeTrivialRebase: false
+ excludeNoCodeChange: false
+ comment:
+ - addedContains:
+ commentAddedCommentContains: '(recheck|reverify)'
+ param:
+ SALT_VERSION:
+ type: string
+ default: "latest"
+ SALT_OPTS:
+ type: string
+ default: "--force-color"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
diff --git a/jenkins/client/job/salt-models/git-mirrors.yml b/jenkins/client/job/salt-models/git-mirrors.yml
new file mode 100644
index 0000000..2cb3b24
--- /dev/null
+++ b/jenkins/client/job/salt-models/git-mirrors.yml
@@ -0,0 +1,53 @@
+classes:
+ - system_extra.jenkins.client.job.common
+parameters:
+ jenkins:
+ client:
+ job_template:
+ git_mirror_2way_salt_model:
+ name: git-mirror-2way-salt-model-{{name}}
+ param:
+ name:
+ - reclass-system
+ - slovaktelekom
+ - stacklight
+ - statens
+ template:
+ type: workflow-scm
+ concurrent: false
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: git-mirror-2way-pipeline.groovy
+ github:
+ url: "https://github.com/Mirantis/{{name}}-salt-model"
+ trigger:
+ github:
+ pollscm:
+ spec: ${_param:jenkins_pollscm_spec}
+ gerrit:
+ project:
+ salt-models/{{name}}:
+ branches:
+ - master
+ message:
+ build_successful: "Build successful"
+ build_unstable: "Build unstable"
+ build_failure: "Build failed"
+ event:
+ ref:
+ - updated
+ param:
+ SOURCE_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/salt-models/{{name}}.git"
+ TARGET_URL:
+ type: string
+ default: "git@github.com:Mirantis/{{name}}-salt-model.git"
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ BRANCHES:
+ type: string
+ default: "master"
diff --git a/jenkins/client/job/salt-models/init.yml b/jenkins/client/job/salt-models/init.yml
new file mode 100644
index 0000000..82f8345
--- /dev/null
+++ b/jenkins/client/job/salt-models/init.yml
@@ -0,0 +1,6 @@
+classes:
+ - system_extra.jenkins.client.job.salt-models.git-mirrors
+ - system_extra.jenkins.client.job.salt-models.tests
+parameters:
+ _param:
+ salt_formulas_branches: master
diff --git a/jenkins/client/job/salt-models/tests.yml b/jenkins/client/job/salt-models/tests.yml
new file mode 100644
index 0000000..e451daf
--- /dev/null
+++ b/jenkins/client/job/salt-models/tests.yml
@@ -0,0 +1,85 @@
+parameters:
+ _param:
+ jenkins:
+ client:
+ job_template:
+ test_salt_model:
+ name: test-salt-model-{{name}}
+ param:
+ name:
+ - mcp-baremetal-lab
+ - mcp-virtual-lab
+ - mk-ci
+ - qa
+ - stacklight
+ - training
+ template:
+ type: workflow-scm
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: test-salt-models-pipeline.groovy
+ concurrent: true
+ trigger:
+ gerrit:
+ project:
+ salt-models/{{name}}:
+ branches:
+ - master
+ event:
+ patchset:
+ - created:
+ excludeDrafts: false
+ excludeTrivialRebase: false
+ excludeNoCodeChange: false
+ comment:
+ - addedContains:
+ commentAddedCommentContains: '(recheck|reverify)'
+ param:
+ SALT_OPTS:
+ type: string
+ default: "--force-color"
+ GIT_URL:
+ type: string
+ default: "${_param:jenkins_gerrit_url}/salt-models/{{name}}"
+ RECLASS_SYSTEM_GIT_URL:
+ type: string
+ description: "Run against alternate system reclass"
+ RECLASS_SYSTEM_GIT_REF:
+ type: string
+ CREDENTIALS_ID:
+ type: string
+ default: "gerrit"
+ test_system_reclass:
+ name: test-salt-model-{{name}}
+ jobs:
+ - name: reclass-system
+ clusters: "mcp-baremetal-lab,mcp-virtual-lab,qa,stacklight,training"
+ template:
+ type: workflow-scm
+ scm:
+ type: git
+ url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+ credentials: "gerrit"
+ script: test-system-reclass-pipeline.groovy
+ concurrent: true
+ trigger:
+ gerrit:
+ project:
+ salt-models/{{name}}:
+ branches:
+ - master
+ event:
+ patchset:
+ - created:
+ excludeDrafts: false
+ excludeTrivialRebase: false
+ excludeNoCodeChange: false
+ comment:
+ - addedContains:
+ commentAddedCommentContains: '(recheck|reverify)'
+ param:
+ TEST_MODELS:
+ type: string
+ default: "{{clusters}}"