Zuul v2 Current Status
- In production for OpenStack
- Also in use by ~50 3rd-party CI systems for OpenStack
- Also in use by Wikimedia, HPE and others
- Receives events from and reports results to Gerrit
- Multiple git repository relationship aware
- Nodepool attaches single-use cloud slaves to Jenkins Master Pool
- Triggers jobs on Jenkins Pool for executing job content
Jenkins serves no role except remote execution
What is Zuul v3
- Replace Jenkins with Ansible
- Change zuul/nodepool interaction to zuul requesting N resources from nodepool
- Zuul requests N resources from nodepool
- Zuul creates ansible inventory, passes to job executors
- Job executor runs job content on build resources using ansible + inventory
- Add github PR integration in addition to gerrit
- Add multi-tenancy for job configs and secrets
- Add in-repo job configs - self testing CI config
- Add reusable build resources (such as bare metal)
- Add container build resources (docker, kubernetes)
Zuul v3 Current Status
- Zuul v3 Spec is approved - OpenStack CI will move to it
- First phase of all the hard bits is done in the v3 branch
- Nodepool v2 branching now as nodepool/shade integration has landed
- Estimate 2 months of effort to be at initial feature complete for OpenStack
Zuul v3 Future need
- Supporting expanded userbases outside of OpenStack adds importance to original wishlist features
- Github Integration
- Container Integration
- Non-OpenStack Cloud (AWS, GCE, Azure)
- Github support for the v2 branch already written, not merged pending v3
- Initial design for container integration done
- Need a deeper detailed spec
- Non-OpenStack Cloud simple to implement in nodepool v2
Zuul v2.5
- Waiting for Zuul v3 got costly
- Zuul "2.5" is a release-valve to solve immedate problems
- Jenkins replaced by Ansible
- Ansible workers directly read Jenkins Job Builder templates
- Accelerating review of github PR patches with view of landing in weeks