Closed jithine closed 5 years ago
Please refer to the design doc for details. Here is a to-do list:
data-schema
: add buildCluster table and also a buildClusterName field to build tablemodel
: model for buildCluster and pick buildCluster during build creationscm plugins
: add a getOrgPermission function to check an user's permission against an org. Done for scm-github, will do it for scm-gitlab and bitbucket laterapi
: add endpoints for build cluster; add feature flagconfig-parser
: throw err if contains invalid buildCluster annotationsqueue-worker
: add a scheduler mode to turn it into scheduler, deployed in ossd betamulti-build queue
: will use rabbitmq, server set up in both beta and prodbuild-queue-worker
: poll jobs from multi-build queue
and start builds immediatelyPlans for rolling it out / testing it out without downtime:
managedByScrewdrver: false
managedByScrewdrver: true
Feature is live and done.
New services added:
rabbitmq-ha
helm chart to install it (https://github.com/helm/charts/tree/master/stable/rabbitmq-ha)
Context
This is applicable for a Scalable Screwdriver instance which makes use of executor-queue
Screwdriver builds are executed via a single queue worker which reads the job configurations from Queue and uses appropriate executor to run execute the build.
This model can be expanded such that Screwdriver can send the build information to multiple build clusters which provides following capabilities.
Objective
References