Initialize config repository
diff --git a/zuul.d/README b/zuul.d/README
new file mode 100644
index 0000000..78444aa
--- /dev/null
+++ b/zuul.d/README
@@ -0,0 +1 @@
+Zuul config repo content
diff --git a/zuul.d/_jobs-base.yaml b/zuul.d/_jobs-base.yaml
new file mode 100644
index 0000000..33cafe4
--- /dev/null
+++ b/zuul.d/_jobs-base.yaml
@@ -0,0 +1,109 @@
+# This file is managed by ansible, do not edit directly
+---
+- job:
+ name: base
+ parent: null
+ description: The base job.
+ pre-run: playbooks/base/pre.yaml
+ post-run:
+ - playbooks/base/post.yaml
+ roles:
+ - zuul: sf-jobs
+ - zuul: zuul/zuul-jobs
+ extra-vars:
+ zuul_use_fetch_output: true
+ timeout: 1800
+ attempts: 3
+ secrets:
+ - site_sflogs
+ nodeset:
+ nodes:
+ - name: container
+ label: runc-centos
+
+- semaphore:
+ name: semaphore-config-update
+ max: 1
+
+- job:
+ name: config-check
+ parent: base
+ final: true
+ allowed-projects:
+ - config
+ description: Validate the config repo.
+ run: playbooks/config/check.yaml
+ post-run: playbooks/config/check-fetch-artifacts.yaml
+ secrets:
+ - service_user
+ vars:
+ zuul_log_url: "https://spfactory.storpool.com/logs"
+ gateway_url: "https://spfactory.storpool.com"
+ tenant_config: False
+ nodeset:
+ nodes: []
+
+- job:
+ name: config-update
+ parent: base
+ final: true
+ allowed-projects:
+ - config
+ description: Deploy config repo update.
+ run: playbooks/config/config-update.yaml
+ secrets:
+ - site_install_server
+ semaphore: semaphore-config-update
+ nodeset:
+ nodes: []
+
+- project:
+ name: config
+ check:
+ jobs:
+ - config-check
+ gate:
+ jobs:
+ - config-check
+ post:
+ jobs:
+ - config-update
+
+
+- project:
+ name: sf-jobs
+ check:
+ jobs:
+ - linters:
+ vars:
+ linters: [flake8, yamllint]
+ gate:
+ jobs:
+ - linters:
+ vars:
+ linters: [flake8, yamllint]
+
+
+- job:
+ name: wait-for-changes-ahead
+ parent: null
+ timeout: 7200
+ nodeset:
+ nodes: []
+ vars:
+ zuul_web_url: "https://spfactory.storpool.com/zuul"
+ description: |
+ This job wait for the queue ahead to be empty.
+
+ Responds to these variables:
+
+ .. zuul:jobvar:: zuul_web_url
+
+ The zuul web api url.
+
+ .. zuul:jobvar:: wait_timeout
+ :default: 120
+
+ Wait timeout in minutes.
+
+ run: playbooks/wait-for-changes-ahead.yaml
diff --git a/zuul.d/_jobs-openshift.yaml b/zuul.d/_jobs-openshift.yaml
new file mode 100644
index 0000000..a381bbb
--- /dev/null
+++ b/zuul.d/_jobs-openshift.yaml
@@ -0,0 +1,48 @@
+# This file is managed by sfconfig, do not edit manually
+# The Openshift driver is a Tech Preview, use at your own risk...
+---
+- job:
+ name: base-openshift-native
+ parent: null
+ description: |
+ A base job that build and deploy a container image using the
+ project future state.
+ pre-run: playbooks/openshift/pre.yaml
+ post-run:
+ - playbooks/base/post.yaml
+ roles:
+ - zuul: sf-jobs
+ - zuul: zuul/zuul-jobs
+ timeout: 1800
+ # Set attempts to 1 until it's working well
+ attempts: 1
+ secrets:
+ - site_sflogs
+ nodeset:
+ nodes:
+ - name: project
+ label: openshift-project
+ vars:
+ base_image: "python:3.6"
+
+- job:
+ name: base-openshift-pod
+ parent: null
+ description: |
+ A base job to spawn a vanilla container and copy the project
+ future state
+ pre-run: playbooks/openshift/unprivileged-machine.yaml
+ post-run:
+ - playbooks/base/post.yaml
+ roles:
+ - zuul: sf-jobs
+ - zuul: zuul/zuul-jobs
+ # Set attempts to 1 until it's working well
+ attempts: 1
+ secrets:
+ - site_sflogs
+ timeout: 1800
+ nodeset:
+ nodes:
+ - name: pod
+ label: openshift-pod-fedora
diff --git a/zuul.d/_jobs-pages.yaml b/zuul.d/_jobs-pages.yaml
new file mode 100644
index 0000000..a705bf6
--- /dev/null
+++ b/zuul.d/_jobs-pages.yaml
@@ -0,0 +1,24 @@
+# This file is managed by ansible, do not edit directly
+---
+- job:
+ name: build-and-publish-pages
+ parent: base
+ description: Base build and publish pages job
+ run: playbooks/pages/build.yaml
+ post-run:
+ - playbooks/pages/publish.yaml
+ secrets:
+ - site_pages
+ protected: true
+ vars:
+ src_dir: /
+ fqdn: spfactory.storpool.com
+
+- job:
+ name: build-pages
+ parent: base
+ description: Pages build
+ run: playbooks/pages/build.yaml
+ vars:
+ src_dir: /
+
diff --git a/zuul.d/_pipelines.yaml b/zuul.d/_pipelines.yaml
new file mode 100644
index 0000000..ec77979
--- /dev/null
+++ b/zuul.d/_pipelines.yaml
@@ -0,0 +1,222 @@
+# This file is managed by ansible, do not edit directly
+---
+- pipeline:
+ name: check
+ description: |
+ Newly uploaded patchsets enter this pipeline to receive an
+ initial +/-1 Verified vote.
+ manager: independent
+ require:
+ gerrit:
+ open: True
+ current-patchset: True
+ opendev.org:
+ open: True
+ current-patchset: True
+ trigger:
+ gerrit:
+ - event: patchset-created
+ - event: change-restored
+ - event: comment-added
+ comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*(recheck|reverify)
+ - event: comment-added
+ require-approval:
+ - Verified: [-1, -2]
+ username: zuul
+ approval:
+ - Workflow: 1
+ opendev.org:
+ - event: patchset-created
+ - event: change-restored
+ - event: comment-added
+ comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*(recheck|reverify)
+ - event: comment-added
+ require-approval:
+ - Verified: [-1, -2]
+ username: zuul
+ approval:
+ - Workflow: 1
+ start:
+ gerrit:
+ Verified: 0
+ opendev.org:
+ Verified: 0
+ success:
+ gerrit:
+ Verified: 1
+ opendev.org:
+ Verified: 1
+ failure:
+ gerrit:
+ Verified: -1
+ opendev.org:
+ Verified: -1
+
+- pipeline:
+ name: gate
+ description: |
+ Changes that have been approved by core developers are enqueued
+ in order in this pipeline, and if they pass tests, will be
+ merged.
+ success-message: Build succeeded (gate pipeline).
+ failure-message: |
+ Build failed (gate pipeline). For information on how to proceed, see
+ http://docs.openstack.org/infra/manual/developers.html#automated-testing
+ manager: dependent
+ precedence: high
+ post-review: True
+ require:
+ gerrit:
+ open: True
+ current-patchset: True
+ approval:
+ - Verified: [1, 2]
+ username: zuul
+ - Workflow: 1
+ opendev.org:
+ open: True
+ current-patchset: True
+ approval:
+ - Verified: [1, 2]
+ username: zuul
+ - Workflow: 1
+ trigger:
+ gerrit:
+ - event: comment-added
+ approval:
+ - Workflow: 1
+ - event: comment-added
+ approval:
+ - Verified: 1
+ username: zuul
+ opendev.org:
+ - event: comment-added
+ approval:
+ - Workflow: 1
+ - event: comment-added
+ approval:
+ - Verified: 1
+ username: zuul
+ start:
+ gerrit:
+ Verified: 0
+ opendev.org:
+ Verified: 0
+ success:
+ gerrit:
+ Verified: 2
+ submit: true
+ opendev.org:
+ Verified: 2
+ submit: true
+ failure:
+ gerrit:
+ Verified: -2
+ opendev.org:
+ Verified: -2
+ window-floor: 20
+ window-increase-factor: 2
+
+- pipeline:
+ name: post
+ post-review: true
+ description: This pipeline runs jobs that operate after each change is merged.
+ manager: supercedent
+ precedence: low
+ trigger:
+ gerrit:
+ - event: ref-updated
+ ref: ^refs/heads/.*$
+ opendev.org:
+ - event: ref-updated
+ ref: ^refs/heads/.*$
+ failure:
+ smtp:
+ from: "zuul@spfactory.storpool.com"
+ to: "root@localhost"
+ subject: '[Zuul] Job failed in post pipeline: {change.project}'
+
+- pipeline:
+ name: pre-release
+ description: When a commit is tagged with a pre-release tag, this pipeline runs jobs that publish archives and documentation.
+ manager: independent
+ precedence: high
+ post-review: True
+ trigger:
+ gerrit:
+ - event: ref-updated
+ ref: ^refs/tags/([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9alpha|beta|rc.-]+))?(?:\+([0-9a-zA-Z.-]+))?$
+ opendev.org:
+ - event: ref-updated
+ ref: ^refs/tags/([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9alpha|beta|rc.-]+))?(?:\+([0-9a-zA-Z.-]+))?$
+ failure:
+ smtp:
+ from: "zuul@spfactory.storpool.com"
+ to: "root@localhost"
+ subject: '[Zuul] Job failed in pre-release pipeline: {change.project}'
+
+- pipeline:
+ name: release
+ post-review: true
+ description: When a commit is tagged as a release, this pipeline runs jobs that publish archives and documentation.
+ manager: independent
+ precedence: high
+ trigger:
+ gerrit:
+ - event: ref-updated
+ ref: ^refs/tags/([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z.-]+))?(?:\+([0-9a-zA-Z.-]+))?$
+ opendev.org:
+ - event: ref-updated
+ ref: ^refs/tags/([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z.-]+))?(?:\+([0-9a-zA-Z.-]+))?$
+ failure:
+ smtp:
+ from: "zuul@spfactory.storpool.com"
+ to: "root@localhost"
+ subject: '[Zuul] Job failed in release pipeline: {change.project}'
+
+- pipeline:
+ name: periodic
+ post-review: true
+ description: Jobs in this queue are triggered daily.
+ manager: independent
+ precedence: low
+ trigger:
+ timer:
+ - time: '0 0 * * *'
+ failure:
+ smtp:
+ from: "zuul@spfactory.storpool.com"
+ to: "root@localhost"
+ subject: '[Zuul] Job failed in periodic pipeline: {change.project}'
+
+- pipeline:
+ name: experimental
+ description: On-demand pipeline for requesting a run against a set of jobs that are not yet gating. Leave review comment of "check experimental" to run jobs in this pipeline.
+ success-message: Build succeeded (experimental pipeline).
+ failure-message: Build failed (experimental pipeline).
+ manager: independent
+ precedence: normal
+ trigger:
+ gerrit:
+ - event: comment-added
+ comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
+ opendev.org:
+ - event: comment-added
+ comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
+ success:
+ gerrit: {}
+ opendev.org: {}
+ failure:
+ gerrit: {}
+ opendev.org: {}
+
+- pipeline:
+ name: merge-check
+ description: >
+ Each time a change merges, this pipeline verifies that all open changes
+ on the same project are still mergeable.
+ failure-message: Build failed (merge-check pipeline).
+ manager: independent
+ ignore-dependencies: true
+ precedence: low
+ trigger: {}
diff --git a/zuul.d/_projects.yaml b/zuul.d/_projects.yaml
new file mode 100644
index 0000000..baad817
--- /dev/null
+++ b/zuul.d/_projects.yaml
@@ -0,0 +1,8 @@
+# This file is managed by ansible, do not edit directly
+---
+- project:
+ name: ^.*$
+ check:
+ jobs: []
+ gate:
+ jobs: []
diff --git a/zuul.d/_secret_install_server.yaml b/zuul.d/_secret_install_server.yaml
new file mode 100644
index 0000000..506ad2f
--- /dev/null
+++ b/zuul.d/_secret_install_server.yaml
@@ -0,0 +1,48 @@
+# This file is managed by ansible, do not edit directly
+- secret:
+ name: site_install_server
+ data:
+ fqdn: spfactory.storpool.com
+ ssh_known_hosts: spfactory.storpool.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDV/cSRvpNT9RTJvRjBevfzXPPehCdotepMj0xgg59fgdbk+wsl9Pl4AezmQGf8B0V+NLkSLhfJku2OAjCWCOikFN3sbc1qq30XH+3749H+VOvwQUSL02bPv+9Yzc19MEU29CNKWbeOAZRZ0omXB/8skSJ6+VwYgm1Na3bVkz4FL4kSjd+GCEVCR/xY5BotdX/ehWiwHoJsYfU0vpm6IbLFAgmzK6fDJFe8mPmwl6NwFA/OIQu777cmvhvWyZXGDzDOiUjNd49bkd4GfUEAmEQXtVZ7Ag3krrI7VZ0FvgKOSl1K8llws6dNp/xnvGY8BlTjXvYi/K26cb9R7DkcBpfF
+ ssh_username: root
+ ssh_private_key: !encrypted/pkcs1-oaep
+ - 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
diff --git a/zuul.d/_secret_service_user.yaml b/zuul.d/_secret_service_user.yaml
new file mode 100644
index 0000000..c23d0a1
--- /dev/null
+++ b/zuul.d/_secret_service_user.yaml
@@ -0,0 +1,15 @@
+# This file is managed by ansible, do not edit directly
+- secret:
+ name: service_user
+ data:
+ password: !encrypted/pkcs1-oaep
+ - TdizvvvNZl073X2FPgYF6vuhugnBEabrD2Ft3TBwdRSS+05LogoFYeEr4P+zpGBsp+KPj
+ wTeP7T8ByTQAsm3rfBYNG7Db+fk1Inf9Y0szyhxJnlflCwIzQ+uGsa6E6U22FJJd22qDQ
+ ZE/PDgfD7nYpfrM8eaJMVh8w+RyDi/mYOD4zMVCkIT2pd53KsdAdxW68e97V4nEQGeOQB
+ oUj/l0lvXVEPHVbJBDVLwRCVhmHzv/kTE4drs1+scfRb9VayOPqz8a2GShiTmKj9DT4KM
+ QvIeEaCs8A/2RYuK3xPte9NuScNMrev20H9f1HUTUhqpxeRGsSnliv6fvAcy01EqN5ZKZ
+ KuNal8Nh2eu6emfT/ncatOuwb0VbFcLSrNtixEVKOYlsaAx5xCT9UsopFgnrYRCe2Zi7t
+ a4PXorilgury+wDtmCBVuSsATeQ9lgAFsKron77M5W7NygUjnoqekIglepPS1xzybGx2P
+ Ut+VHRKuK6rn+ENI/tcSWgdAyxB+1bQJFiUe0HmriZU1D4MjmYS3IxGInE/rWkKG7zYQR
+ 8Ih3C5QBMflRbdBIslycdiRqxYhhx8yH5WxT7efphjNV9K5elKvNUq2sEbB89+jMCTGha
+ tCvGy4wdumekC6Ab+2cZYsHDxXq6vYWarGIJixUgJBqp6faDxPWURTMddVbx24=
diff --git a/zuul.d/_secret_sflogs.yaml b/zuul.d/_secret_sflogs.yaml
new file mode 100644
index 0000000..96e91fa
--- /dev/null
+++ b/zuul.d/_secret_sflogs.yaml
@@ -0,0 +1,49 @@
+# This file is managed by ansible, do not edit directly
+- secret:
+ name: site_sflogs
+ data:
+ fqdn: spfactory.storpool.com
+ path: /var/www/logs
+ ssh_known_hosts: spfactory.storpool.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDV/cSRvpNT9RTJvRjBevfzXPPehCdotepMj0xgg59fgdbk+wsl9Pl4AezmQGf8B0V+NLkSLhfJku2OAjCWCOikFN3sbc1qq30XH+3749H+VOvwQUSL02bPv+9Yzc19MEU29CNKWbeOAZRZ0omXB/8skSJ6+VwYgm1Na3bVkz4FL4kSjd+GCEVCR/xY5BotdX/ehWiwHoJsYfU0vpm6IbLFAgmzK6fDJFe8mPmwl6NwFA/OIQu777cmvhvWyZXGDzDOiUjNd49bkd4GfUEAmEQXtVZ7Ag3krrI7VZ0FvgKOSl1K8llws6dNp/xnvGY8BlTjXvYi/K26cb9R7DkcBpfF
+ ssh_username: loguser
+ ssh_private_key: !encrypted/pkcs1-oaep
+ - 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
diff --git a/zuul.d/_secret_sfpages.yaml b/zuul.d/_secret_sfpages.yaml
new file mode 100644
index 0000000..db8e380
--- /dev/null
+++ b/zuul.d/_secret_sfpages.yaml
@@ -0,0 +1,49 @@
+# This file is managed by ansible, do not edit directly
+- secret:
+ name: site_pages
+ data:
+ fqdn: managesf.spfactory.storpool.com
+ ssh_known_hosts: managesf.spfactory.storpool.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDV/cSRvpNT9RTJvRjBevfzXPPehCdotepMj0xgg59fgdbk+wsl9Pl4AezmQGf8B0V+NLkSLhfJku2OAjCWCOikFN3sbc1qq30XH+3749H+VOvwQUSL02bPv+9Yzc19MEU29CNKWbeOAZRZ0omXB/8skSJ6+VwYgm1Na3bVkz4FL4kSjd+GCEVCR/xY5BotdX/ehWiwHoJsYfU0vpm6IbLFAgmzK6fDJFe8mPmwl6NwFA/OIQu777cmvhvWyZXGDzDOiUjNd49bkd4GfUEAmEQXtVZ7Ag3krrI7VZ0FvgKOSl1K8llws6dNp/xnvGY8BlTjXvYi/K26cb9R7DkcBpfF
+ path: /var/www/pages
+ ssh_username: pagesuser
+ ssh_private_key: !encrypted/pkcs1-oaep
+ - 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