#484 new
Greg Schueler

Decouple Jobs from Workflows and Nodesets

Reported by Greg Schueler | December 5th, 2011 @ 03:38 PM

Allow Workflows and Nodesets to be definable outside of jobs, and turn Job definitions into a composition of: Nodeset(s), Workflow, job parameters/options.

Similar issues/requests: #70, #99, #185, #413, #414, #419, #470

Introduce "Named workflows" = stored workflows that can be created independently of a Job.
existing Jobs will use "anonymous"/internal workflows. Workflows will be organized/shared almost identically to the way Jobs are now, but will not have associated Nodesets or other execution parameters (threadcount). They can define Options which declare required/optional input parameters.

Introduce "Nodesets" = stored node filter sets, similar to user-specific stored Node filters now. They define a dynamic (filter-based) or static (list of names) set of Nodes. [Optional "Smart" nodesets could combine other nodesets]

Introduce mechanism for "Workflow References", which execute another stored workflow, and can pass in or set the Nodeset to execute. This may supplant/replace "Job references", or Job References may still remain.

The new "Job" definition will consist of:

  • a workflow to execute
  • node set to execute on
    • option to allow overrides or alternate node sets which are selectable by the user at execute time?
    • Job execution parameters: parallel/threadcount?
    • Job options(?) additional user input options?

Considerations:

  • Introduces possibly more Domain classes and more complexity
  • Requires new format definitions for import/export of Workflows and Nodesets independently of Jobs. Job definitions need update to support this.
  • New API endpoints: CRUD,import/export of Workflows and Nodesets
  • New GUI work: browse, CRUD of jobs/workflows/nodesets. Nodeset GUI could be merged with or supplant the current Node filters GUI which needs updating. Workflows GUI would be mostly similar to old Jobs GUI. Jobs GUI would have to be updated to support this.
  • Core execution engine work: Not much, the internal system already only executes with such a composition of objects (exec params, workflow, nodeset), so we are merely updating the App/storage layer.
  • options: each "workflow" will define necessary input options. Should a Job's options then just be the set of all options defined by the Workflows it uses? Should there be a way to define a custom set of input options, and provide custom defaults for workflow options? This would provide greater user choice.

Comments and changes to this ticket

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

(DEPRECATED) Please use github issues for issue tracking at http://github.com/dtolabs/rundeck/issues

Shared Ticket Bins