Hey folks, There are 2 new plugin pending hosting request right now, and
I would like to elaborate on the Gating subsystem it introduces.
Partially to get the word our, but also to gain more feedback.
The concept of Gating permits Jenkins to become aware of availability of
individual infrastructure components that builds interact with (think
SCM hosting, release servers, support infrastructure, etc.), and make a
decision of not to run builds or pipeline stages there when they are
down and when failure is iminnent.
To obtain the needed data, gating-core plugin depends on other plugins
(specific to individual monitoring tools) that will obtain and report
infrastructure availability. The other plugin is one such backend for
Gating core plugin provides:
- The way to visualize the availability of reported resources from all
available sources (i.e., backend plugins)
- The generic job property to declare dependency on resources, so when
some of them is down, the build will wait in Jenkins queue until they
are all up.
- Pipeline block-step that will block execution of its nested steps
until all resources are up.
- Exposes those data for other plugins that interact with external
systems can learn out outages in a civilized way.
Note that in the past, Red Hat have also authored `cachet-gating` plugin
that *do not* implement this general gating approach, and since we are
abandoning cachet monitoring/reporting system internally, it might as
well never support it.
Please let me know if there are any questions or comments that you have.
The broader the perspective before the first release, the better.