Implementation Specification for Build Farm Builder Pools
Created: 2010-03-15 by Julian Edwards
Contributors: <none yet>
Depends on: n/a
Enhancement Proposal: LEP/BuildFarmBuilderPools
Summary: Make pools of builders reserved for usage by different groups of users. This is largely driven by the need to reserve a set of builders for doing daily builds.
Each pool of builders can be reserved exclusively for certain PPAs, or let any builds use them but with the priority given to certain PPAs.
New database tables:
will define the pools and the affinity between PPAs and the pools. The Builder table will gain a "pool" column which is a Reference to BuilderPool. It can be NULL if the builder is not in a pool.
- UI changes to define and control builder pools and which PPAs can use them.
- buildd-manager changes to honour the pools
A list of assumptions should go here. This should include any assumptions about the users, the workflow, the implementation, the system this will reside on, the hardware requirements, access, etc.. Note that these are assumptions that everyone should believe are "business as usual". If you find yourself writing things which aren't, they are requirements and should be documented in the Implementation section below.
This section should cover changes required to the UI, or specific UI features that are required to implement this. It should be a more technical description of what the LEP shows in its UI workflow section.
This section should describe a plan of action (the "how") to implement the changes discussed. This could include subsections in addition to what is provided in this spec template.
Code changes should include an overview of what needs to change, and in some cases even the specific details.
What Database changes are you proposing? Do you need a new index created? Proposing a new table? If so, what does it look like?
CREATE TABLE BuilderPolicy ( id serial PRIMARY KEY, title text NOT NULL, exclusive bool NOT NULL ); CREATE TABLE ArchiveBuilderPolicy ( id serial PRIMARY KEY, archive integer NOT NULL REFERENCES Archive, policy integer NOT NULL REFERENCES BuilderPolicy ); ALTER TABLE Builder ADD COLUMN builder_policy integer REFERENCES BuilderPolicy;
- data migration, if any
- redirects from old URLs to new ones, if any
how users will be pointed to the new way of doing things, if necessary. (If your change is big enough, consider using the rollout template.)
In this section list out any issues which are unresolved and will impact or block the implementation of this spec.