Update slides for changes since the fall
This commit is contained in:
parent
4ac60cf090
commit
0560476234
|
@ -67,6 +67,10 @@ OpenStack Infra
|
|||
|
||||
-- Alex Gaynor
|
||||
|
||||
"OpenStack Infra are like the SpaceX of CI"
|
||||
|
||||
-- Emily Dunham
|
||||
|
||||
Zuul
|
||||
====
|
||||
.. container:: handout
|
||||
|
@ -121,25 +125,23 @@ What do I mean by Massive Scale?
|
|||
* Contributors (~2k / 6 month period)
|
||||
* Companies
|
||||
* Changes
|
||||
* Code Repositories (1827 as of this morning)
|
||||
* Code Repositories (1868 as of this morning)
|
||||
* Communities
|
||||
|
||||
OpenStack Scale
|
||||
===============
|
||||
OpenStack Scale Comparison
|
||||
===========================
|
||||
|
||||
* 2,000 git repositories
|
||||
* 2KJPH (2,000 jobs per hour)
|
||||
* Nodes 14 Regions off 5 OpenStack Public Clouds and 2 Private Clouds
|
||||
(Thanks Rackspace, Internap, OVH, Vexxhost, CityCloud, HPE, Red Hat)
|
||||
* Nodes from 12 Regions of 5 Public and 1 Private OpenStack Clouds
|
||||
(Thanks Rackspace, Internap, OVH, Vexxhost, CityCloud and Linaro)
|
||||
* 10,000 changes merged per month
|
||||
|
||||
OpenStack Scale
|
||||
===============
|
||||
OpenStack Scale Comparison
|
||||
==========================
|
||||
|
||||
* 2,000 git repositories
|
||||
* 2KJPH (2,000 jobs per hour)
|
||||
* Nodes 14 Regions off 5 OpenStack Public Clouds and 2 Private Clouds
|
||||
(Thanks Rackspace, Internap, OVH, Vexxhost, CityCloud, HPE, Red Hat)
|
||||
* Nodes from 12 Regions of 5 Public and 1 Private OpenStack Clouds
|
||||
(Thanks Rackspace, Internap, OVH, Vexxhost, CityCloud and Linaro)
|
||||
* 10,000 changes merged per month
|
||||
|
||||
* By comparison, our friends at the amazing project Ansible received
|
||||
|
@ -150,7 +152,7 @@ Pretty Things to Look for Scale
|
|||
|
||||
* http://grafana.openstack.org/dashboard/db/zuul-status
|
||||
* http://grafana.openstack.org/dashboard/db/nodepool
|
||||
* http://zuulv3.openstack.org/
|
||||
* http://zuul.openstack.org/
|
||||
|
||||
Dealing With Scale
|
||||
==================
|
||||
|
@ -239,13 +241,14 @@ Nodepool
|
|||
nodepool builds nodes for zuul
|
||||
Remember that 2,000 jobs per hour number?
|
||||
Each job gets a fresh VM - that's 2,000 VMs per hours
|
||||
Treats our 20 regions across 9 clouds as one REALLY big cloud
|
||||
Treats our 12 regions across 6 clouds as one REALLY big cloud
|
||||
|
||||
::
|
||||
|
||||
* A separate program that works very closely with *zuul*
|
||||
* Builds images daily and uploads to clouds
|
||||
* Creates and destroys (at least) a VM for every job
|
||||
* Supports using pre-existing nodes (static provider)
|
||||
|
||||
Nodepool can use pre-existing images, BUT ...
|
||||
=============================================
|
||||
|
@ -555,6 +558,7 @@ shade: Add unittest tips jobs
|
|||
Run tox python 27 unittests against master of important libs
|
||||
required-projects:
|
||||
- openstack-infra/shade
|
||||
- openstack/keystoneauth
|
||||
- openstack/os-client-config
|
||||
|
||||
- job:
|
||||
|
@ -593,7 +597,6 @@ shade: Add unittest tips project-template to project
|
|||
.. code:: yaml
|
||||
|
||||
- project:
|
||||
name: openstack-infra/shade
|
||||
templates:
|
||||
- publish-to-pypi
|
||||
- publish-openstack-sphinx-docs
|
||||
|
@ -607,7 +610,6 @@ os-client-config: Add shade-tox-tips jobs
|
|||
.. code:: yaml
|
||||
|
||||
- project:
|
||||
name: openstack/os-client-config
|
||||
templates:
|
||||
- shade-tox-tips
|
||||
check:
|
||||
|
@ -697,7 +699,7 @@ Zuul Startup
|
|||
* Ask mergers for branches of each repo
|
||||
* Ask mergers for .zuul.yaml file for each branch of each repo
|
||||
|
||||
``.zuul.yaml`` can be ``^\.?zuul.ya?ml$`` file or ``^\.?zuul.d$`` run-parts
|
||||
``.zuul.yaml`` can be ``^\.?zuul.yaml$`` file or ``^\.?zuul.d$`` run-parts
|
||||
directory.
|
||||
|
||||
.. ansi:: images/startup2.ans
|
||||
|
@ -792,11 +794,7 @@ OpenStack Github Support for Cross Community Testing
|
|||
* App added to github project by project admin
|
||||
* Project aded to OpenStack's main.yaml
|
||||
* Test interactions between OpenStack and important adjacent communities
|
||||
|
||||
* Ansible
|
||||
* Kubernetes
|
||||
* Ceph?
|
||||
* Open vSwitch?
|
||||
* https://github.com/ansible/ansible/pull/20974
|
||||
|
||||
Cross Community Testing
|
||||
=======================
|
||||
|
@ -854,22 +852,27 @@ Cross Community Support cont.
|
|||
status: 'failure'
|
||||
mysql:
|
||||
|
||||
Cross Community Depends-On (coming soon)
|
||||
========================================
|
||||
Cross Source Dependencies
|
||||
=========================
|
||||
|
||||
.. container:: progressive
|
||||
|
||||
* shade https://review.openstack.org/#/c/613914/
|
||||
* shade https://review.openstack.org/539563
|
||||
|
||||
Add support for server groups
|
||||
Shift voting flag and test_matrix_branch for ansible-devel job
|
||||
|
||||
Change-ID: I5b411be5c5aa43535fa89a51d6099aadd7a8ea61
|
||||
Change-ID: Ic9d3983de641dbe618c65b2cbf2dcfa3686575df
|
||||
|
||||
* ansible https://github.com/ansible/ansible/pull/32159
|
||||
* ansible https://github.com/ansible/ansible/pull/34925
|
||||
|
||||
Add os_server_group module
|
||||
continue fact gathering even without dmidecode
|
||||
|
||||
Depends-On: https://review.openstack.org/#/613914/
|
||||
* ansible https://github.com/ansible/ansible/pull/20974
|
||||
|
||||
Make a generalized OpenStack cloud constructor
|
||||
|
||||
Depends-On: https://review.openstack.org/539563
|
||||
Depends-On: https://github.com/ansible/ansible/pull/34925
|
||||
|
||||
Jobs
|
||||
====
|
||||
|
@ -879,8 +882,14 @@ Jobs
|
|||
* Execution content in Ansible (with live streaming!)
|
||||
* Jobs may be defined centrally or in the repo being tested
|
||||
* Jobs have contextual variants that simplify configuration
|
||||
* git.openstack.org/openstack-infra/zuul-jobs repo can be directly shared
|
||||
between zuul installations
|
||||
|
||||
Shared Job Configs
|
||||
==================
|
||||
|
||||
* Job config repos are all in git
|
||||
* Designed to support directly sharing job configurations
|
||||
* git.openstack.org/openstack-infra/zuul-jobs repo is a 'standard library'
|
||||
to be directly shared between zuul installations
|
||||
|
||||
Job
|
||||
===
|
||||
|
@ -897,10 +906,10 @@ Job
|
|||
nodes:
|
||||
- name: primary
|
||||
label: centos-7
|
||||
pre-run: playbooks/base/pre
|
||||
pre-run: playbooks/base/pre.yaml
|
||||
post-run:
|
||||
- playbooks/base/post-ssh
|
||||
- playbooks/base/post-logs
|
||||
- playbooks/base/post-ssh.yaml
|
||||
- playbooks/base/post-logs.yaml
|
||||
secrets:
|
||||
- site_logs
|
||||
|
||||
|
@ -911,9 +920,9 @@ Simple Job
|
|||
|
||||
- job:
|
||||
name: tox
|
||||
pre-run: playbooks/setup-tox
|
||||
run: playbooks/tox
|
||||
post-run: playbooks/fetch-tox-output
|
||||
pre-run: playbooks/setup-tox.yaml
|
||||
run: playbooks/tox.yaml
|
||||
post-run: playbooks/fetch-tox-output.yaml
|
||||
|
||||
- job:
|
||||
name: tox-py27
|
||||
|
@ -929,7 +938,7 @@ Simple Job Variant
|
|||
|
||||
- job:
|
||||
name: tox-py27
|
||||
branch: stable/mitaka
|
||||
branches: stable/mitaka
|
||||
nodeset:
|
||||
- name: ubuntu-trusty
|
||||
label: ubuntu-trusty
|
||||
|
@ -968,7 +977,7 @@ Multi-node Job
|
|||
- job:
|
||||
name: ceph-multinode
|
||||
nodeset: ceph-cluster
|
||||
run: playbooks/install-ceph
|
||||
run: playbooks/install-ceph.yaml
|
||||
|
||||
Multi-node Ceph Job Content
|
||||
===========================
|
||||
|
@ -998,9 +1007,10 @@ Projects
|
|||
::
|
||||
|
||||
zuul@ubuntu-xenial:~$ find /home/zuul/src -mindepth 3 -maxdepth 3 -type d
|
||||
src/git.openstack.org/openstack-infra/shade
|
||||
src/git.openstack.org/openstack/os-client-config
|
||||
src/github.com/ansible/ansible
|
||||
/home/zuul/src/git.openstack.org/openstack-infra/shade
|
||||
/home/zuul/src/git.openstack.org/openstack/keystoneauth
|
||||
/home/zuul/src/git.openstack.org/openstack/os-client-config
|
||||
/home/zuul/src/github.com/ansible/ansible
|
||||
|
||||
Project
|
||||
=======
|
||||
|
@ -1008,8 +1018,6 @@ Project
|
|||
.. code:: yaml
|
||||
|
||||
- project:
|
||||
# Needing to name the project in that project's .zuul.yaml is going away
|
||||
name: openstack/nova
|
||||
check:
|
||||
jobs:
|
||||
- openstack-tox-py27
|
||||
|
@ -1022,7 +1030,6 @@ Project with Local Variant
|
|||
.. code:: yaml
|
||||
|
||||
- project:
|
||||
name: openstack/nova
|
||||
check:
|
||||
jobs:
|
||||
- openstack-tox-py27
|
||||
|
@ -1061,7 +1068,7 @@ Project with Many Local Variants
|
|||
- name: centos-7
|
||||
label: centos-7
|
||||
- openstack-tox-py27
|
||||
branch: stable/newton
|
||||
branches: stable/newton
|
||||
nodeset:
|
||||
- name: ubuntu-trusty
|
||||
label: ubuntu-trusty
|
||||
|
@ -1085,7 +1092,6 @@ Project With Central and Local Config
|
|||
|
||||
# In git.openstack.org/openstack/nova/.zuul.yaml:
|
||||
- project:
|
||||
name: openstack/nova
|
||||
check:
|
||||
- nova-placement-functional-devstack
|
||||
|
||||
|
@ -1094,6 +1100,7 @@ Project with Job Dependencies
|
|||
|
||||
.. code:: yaml
|
||||
|
||||
# In git.openstack.org/openstack-infra/project-config:
|
||||
- project:
|
||||
name: openstack/nova
|
||||
release:
|
||||
|
@ -1113,8 +1120,10 @@ Playbooks
|
|||
|
||||
* Jobs run Ansible playbooks
|
||||
* Playbooks may be defined centrally or in the repo being tested
|
||||
* Playbooks can use roles from current or other Zuul repos (or Galaxy, coming soon)
|
||||
* Playbooks are run on the zuul-executor using bubblewrap https://github.com/projectatomic/bubblewrap
|
||||
* Playbooks can use roles from current or other Zuul repos
|
||||
(or Galaxy, coming soon)
|
||||
* Playbooks are run on the zuul-executor using bubblewrap
|
||||
https://github.com/projectatomic/bubblewrap
|
||||
* Playbooks are not allowed to execute content on 'localhost'
|
||||
|
||||
Job with Roles
|
||||
|
@ -1128,7 +1137,7 @@ Job with Roles
|
|||
Multi-node Zuul installation and integration test
|
||||
nodeset: zuul-cluster
|
||||
roles:
|
||||
- zuul: openstack/ansible-role-zuul
|
||||
- zuul: openstack-infra/ansible-role-zuul
|
||||
run: playbooks/zuul-integration
|
||||
|
||||
Job with Multiple Projects
|
||||
|
@ -1144,13 +1153,13 @@ Job with Multiple Projects
|
|||
vars:
|
||||
zuul_work_dir: src/git.openstack.org/openstack-infra/zuul
|
||||
required-projects:
|
||||
- name: openstack-infra/zuul
|
||||
override-branch: feature/zuulv3
|
||||
- openstack-infra/zuul
|
||||
|
||||
- project: openstack-infra/zuul-jobs
|
||||
check:
|
||||
jobs:
|
||||
- tox-py35-on-zuul
|
||||
- project:
|
||||
name: openstack-infra/zuul-jobs
|
||||
check:
|
||||
jobs:
|
||||
- tox-py35-on-zuul
|
||||
|
||||
Devstack-gate / Tempest Playbook
|
||||
================================
|
||||
|
@ -1218,10 +1227,10 @@ Secrets
|
|||
* Jobs using secrets are not reconfigured speculatively
|
||||
* Secrets can only be used by the same project they are defined in
|
||||
* Public key per project:
|
||||
``{{ zuul_url }}/{{ tenant }}/keys/{{ project }}.pub``
|
||||
``{{ zuul_url }}/{{ tenant }}/{{ project }}.pub``
|
||||
|
||||
::
|
||||
GET http://zuulv3.openstack.org/keys/openstack-infra/shade.pub
|
||||
GET http://zuul.openstack.org/openstack-infra/shade.pub
|
||||
|
||||
Secret Example (note, no admins had to enable this)
|
||||
===================================================
|
||||
|
@ -1283,35 +1292,36 @@ Secret Example
|
|||
Status
|
||||
======
|
||||
|
||||
* zuulv3 is running for OpenStack
|
||||
* zuulv3 also runing at BMW (in OpenShift)
|
||||
* automation job migration sucked (I wrote the script, whoops)
|
||||
* cleaning up fixing automation and bugs found running at scale
|
||||
* reference documentation exists and is complete
|
||||
* pre-repository job documentation
|
||||
* will release v3.0 once we're satisfied it's good for other people
|
||||
* Zuul v3 is in production for OpenStack (in OpenStack VMs)
|
||||
* Zuul v3 also runing at BMW (in OpenShift) and Godaddy (in kuberenetes)
|
||||
and Huawei's OpenLab.
|
||||
* Software Factory updated to v3
|
||||
https://softwarefactory-project.io/sf/welcome.html
|
||||
* will tag and release v3.0 once we're satisfied it's good for other people
|
||||
(within the next few weeks)
|
||||
|
||||
What's Next?
|
||||
============
|
||||
|
||||
* dashboard + REST API
|
||||
* user and deployer *documentation* - getting started walkthroughs
|
||||
* node providers:
|
||||
* static
|
||||
* shared job doc generation
|
||||
* node providers
|
||||
* kuberenetes
|
||||
* OCI/docker
|
||||
* Mac Stadium (for our Ansible friends)
|
||||
* bifrost
|
||||
* ec2
|
||||
* ansible
|
||||
* support for galaxy roles
|
||||
* in-line code-review comments from Zuul
|
||||
* shared job doc generation
|
||||
* native container/kubernetes execution?
|
||||
* native container/kubernetes job execution
|
||||
|
||||
Important Links
|
||||
===============
|
||||
|
||||
* https://git.openstack.org/cgit/openstack-infra/zuul/log/?h=feature/zuulv3
|
||||
* https://docs.openstack.org/infra/zuul/feature/zuulv3/
|
||||
* https://zuul-ci.org/
|
||||
* https://git.openstack.org/cgit/openstack-infra/zuul
|
||||
* https://docs.openstack.org/infra/zuul
|
||||
* https://docs.openstack.org/infra/manual/zuulv3.html
|
||||
* https://docs.openstack.org/infra/zuul-jobs/
|
||||
* https://docs.openstack.org/infra/openstack-zuul-jobs/
|
||||
* https://storyboard.openstack.org/#!/project/679
|
||||
* https://storyboard.openstack.org/#!/board/41
|
||||
|
|
Loading…
Reference in New Issue