Update slides for changes since the fall

This commit is contained in:
Monty Taylor 2018-02-21 12:12:45 -06:00
parent 4ac60cf090
commit 0560476234
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
1 changed files with 84 additions and 74 deletions

View File

@ -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