Script Tasks (Code in Any Language)
Kestra is language agnostic. Write your business logic in any language.
You can orchestrate custom business logic written in any language, and you can also build custom plugins in Java.
There are dedicated plugins for Python
, R
, Julia
, Ruby
, Node.js
, Powershell
and Shell
. You can also run any language using the Shell
plugin too.
By default, these tasks run in individual Docker containers (taskRunner type: io.kestra.plugin.scripts.runner.docker.Docker
). You can overwrite that default behavior if you prefer that your scripts run in a local process (taskRunner type: io.kestra.plugin.core.runner.Process
) instead.
If you use a commercial version of Kestra, you can also run your scripts on dedicated remote workers by specifying a workerGroup
property or using other Task Runner types for AWS, GCP, Azure and Kubernetes.
The following pages dive into details of each task runner, supported programming languages and how to manage dependencies.
Programming Languages
Kestra is language agnostic. Use any programming language inside of your workflows.
Commands and Script tasks
Types of tasks for executing programming languages.
Inline Scripts in Docker
Writing code directly inside your task.
DOCKER and PROCESS runners
Manage the environment your code is executed with runner.
Building a Custom Docker Image
Build a custom Docker image for your script tasks.
Installing Dependencies at Runtime
Install dependencies at runtime using beforeCommands.
Outputs and Metrics
Send Outputs and Metrics back to Kestra.
Input and Output Files
Manage Input and Output files with your scripts.
Logging
Send logs back to Kestra.
Bind Mount
Use bind-mount to execute locally stored scripts.
Git Clone task
Clone a Git repository and use the files in your tasks.
Working Directory
Run multiple tasks in the same working directory sequentially.
Was this page helpful?