Hi,
We're using "canary releasing" and deploy our release only to few
servers before deploying it to the entire pool.
The issue with Rundeck is that the list of nodes a job has to be
run on is define within the job definition and cannot be
externalize.
We could duplicate jobs and then configure a specific node list
for each, but a dynamic node selection within a defined pool
(for example, for avoiding adding a production server if I
configured this job to run on the test servers pool) would be more
flexible (we don't have fixed nodes in our deployment strategy),
and more maintenable (one deployment task = only one Rundeck job,
applicable for all nodes). If I go further into the development of
this idea, I think node selection (+ thread count) should be moved
out of the job definition.
2 new classes could be added to Rundeck model: the nodes set and
the runnable job. The runnable job would be composed of a job
definition and a nodes set.
The nodes set would have a boolean / checkbox to define if the
selected pool can be dynamically filtered by allowing the user to
add exclusions just before running the job. For example, the page
prompting for run options could also display the nodes "bubbles"
and make them clickable (all selected by default).