Following on from the infrastructure architecture, the following describes the the Task executor architecture and the Task frameworks available.
Note: we also refer to Tasks as Workers
Boomerang Flow uses Tekton TaskRuns to create a powerful dynamic Task execution system based on Kubernetes and tightly coupled into the experience. This experience will spin up TaskRuns, and Kubernetes Pods, for every Task in the workflow and map to Configmaps, Secrets, and Persistent Volumes to achieve the end to end automation based on a Workflow DAG.
The current worker design abstracts the complexities of the automation away from the end user by providing a Drag and Drop interface and even providing extensibility through a Task Management interface. Ensuring that users do not need to learn about Kubernetes, Tekton, or YAML to bring new tasks.
We design the implementation so that overrides can be provided by the end user, as necessary, to allow some flexibility or customization in the automation. As well as a powerful parameter layering system giving the end users ultimate extensibility.
Boomerang Flow mainly focuses on providing no-code prebuilt Tasks, however also have the extensibility for you to bring your own:
These frameworks are node modules that enable worker developers to use a prebuilt CLI and Common Core functions to easily drop in and run any command.
These frameworks can be found here on Boomerangs GitHub.
The Worker CLI provides two pieces of functionality:
Summary | |
---|---|
Type | Custom |
Platform Owner | Tyson Lawrie, Tim Bula, and Benjamin Ruby |
Platform Version | 0.8.5 |
Languages | Node.js |
Dependent Middleware | None |
Implementation | Node Module (npm) and Node Executable (npx) |
What's next
Nothing at this time. We are actively looking for enhancement and change requests.
Considerations
N/A
Worker Core is a node package that provides common helper methods. They are:
common
- methods that can be used by Task developers to enhance and speed the ease of their developmentlog
- logging utilities that use Chalk to output nice values in the log for the userutils
- utility functions to help plugin authors retrieve, resolve, and set Task parametersSummary | |
---|---|
Type | Custom |
Platform Owner | Tyson Lawrie, Tim Bula, and Benjamin Ruby |
Platform Version | 1.3.5 |
Languages | Node.js |
Dependent Middleware | None |
Implementation | Node Module (npm) |
What's next
Considerations
N/A
To allow a higher productivity in designing and building your Workflows, you can now use the Tekton Catalog Tasks found here on GitHub.
Create a new Boomerang Task using the definition of Tekton Catalog Tasks, through the new yaml
view section. You can even extend the newly created Boomerang Tasks though the UI's Definition Fields and Result Parameters sections.
Considerations
You are not bound to any programming language to create your own custom Boomerang Tasks, as long as you can run your code as a Docker® container.
As an example, we've created the platform's Box® Boomerang Tasks based on Java ® Spring Boot technology, found here on GitHub.
Considerations