ModalCLI
yaml
type: "io.kestra.plugin.modal.cli.modalcli"
Examples
yaml
id: modal_hello_world
namespace: company.team
tasks:
- id: hello
type: io.kestra.plugin.modal.cli.ModalCLI
env:
MODAL_TOKEN_ID: "your_modal_token_id"
MODAL_TOKEN_SECRET: "your_modal_token_secret"
commands:
- modal run hello.py
inputFiles:
hello.py: |
import modal
app = modal.App("hello-world")
@app.function()
def hello():
print("hello from modal")
return "Success!"
yaml
id: env_vars_modal
namespace: company.team
inputs:
- id: run_modal
displayName: Whether to run the Modal task
type: BOOLEAN
defaults: true
- id: cpu
type: SELECT
displayName: CPU request
description: The number of CPU cores to allocate to the container
defaults: "0.25"
values: ["0.25", "0.5", "0.75", "1.0", "1.5", "2.0", "4.0", "8.0", "16.0", "32.0"]
dependsOn:
inputs:
- run_modal
condition: "{{ inputs.run_modal equals true }}"
- id: memory
type: SELECT
displayName: Memory request
description: Amount of memory in MiB to allocate to the container
defaults: "512"
values: ["512", "1024", "2048", "4096", "8192", "16384", "32768"]
dependsOn:
inputs:
- run_modal
condition: "{{ inputs.run_modal }}"
tasks:
- id: set_compute_resources
type: io.kestra.plugin.modal.cli.ModalCLI
env:
MODAL_TOKEN_ID: "{{ secret('MODAL_TOKEN_ID') }}"
MODAL_TOKEN_SECRET: "{{ secret('MODAL_TOKEN_SECRET') }}"
CPU: "{{ inputs.cpu }}"
MEMORY: "{{ inputs.memory }}"
commands:
- modal run script.py
inputFiles:
script.py: |
import os
import modal
app = modal.App(
"env-vars",
secrets=[modal.Secret.from_local_environ(env_keys=["CPU", "MEMORY"])],
)
@app.function(cpu=float(os.getenv("CPU")), memory=int(os.getenv("MEMORY")))
def generate_data():
cpu = os.getenv("CPU")
memory = os.getenv("MEMORY")
resources = dict(cpu=cpu, memory=memory)
print(f"Running the function with CPU={cpu} and MEMORY={memory}")
return resources
@app.local_entrypoint()
def main():
output = generate_data.remote()
print(f"hello from main function - output is: {output}")
yaml
id: modal_git
namespace: company.team
tasks:
- id: repository
type: io.kestra.plugin.core.flow.WorkingDirectory
tasks:
- id: clone
type: io.kestra.plugin.git.Clone
branch: main
url: https://github.com/kestra-io/scripts
- id: modal_cli
type: io.kestra.plugin.modal.cli.ModalCLI
commands:
- modal run modal/getting_started.py
env:
MODAL_TOKEN_ID: "{{ secret('MODAL_TOKEN_ID') }}"
MODAL_TOKEN_SECRET: "{{ secret('MODAL_TOKEN_SECRET') }}"
yaml
id: modal
namespace: company.team
tasks:
- id: modal_cli
type: io.kestra.plugin.modal.cli.ModalCLI
namespaceFiles:
enabled: true
commands:
- modal run gpu.py
env:
MODAL_TOKEN_ID: "{{ secret('MODAL_TOKEN_ID') }}"
MODAL_TOKEN_SECRET: "{{ secret('MODAL_TOKEN_SECRET') }}"
Properties
commands *Requiredarray
SubType string
beforeCommands array
SubType string
containerImage string
Default
ghcr.io/kestra-io/modal
env object
SubType string
inputFiles objectstring
namespaceFiles Non-dynamicNamespaceFiles
outputFiles array
SubType string
Outputs
exitCode integer
Default
0
outputFiles object
SubType string
taskRunner TaskRunnerDetailResult
vars object
Definitions
io.kestra.plugin.ee.kubernetes.runner.SideCar
image string
Default
busybox
io.kestra.plugin.scripts.runner.docker.Cpu
cpus numberstring
io.kestra.plugin.ee.kubernetes.runner.Kubernetes-Resource
cpu string
memory string
io.kestra.plugin.ee.kubernetes.runner.Kubernetes-Resources
limit Kubernetes-Resource
request Kubernetes-Resource
Credentials for a private container registry.
auth string
identityToken string
password string
registry string
registryToken string
username string
io.kestra.plugin.ee.azure.batch.models.ComputeNodeIdentityReference
resourceId string
io.kestra.plugin.ee.gcp.runner.Batch-ComputeResource
bootDisk string
cpu string
memory string
io.kestra.plugin.ee.aws.runner.Batch-Resources
request *RequiredBatch-Resource
io.kestra.plugin.ee.kubernetes.models.OAuthTokenProvider
output string
task Task
io.kestra.core.models.tasks.NamespaceFiles
enabled booleanstring
Default
true
exclude array
SubType string
folderPerNamespace booleanstring
Default
false
ifExists string
Default
OVERWRITE
Possible Values
OVERWRITE
FAIL
WARN
IGNORE
include array
SubType string
namespaces array
SubType string
Default
["{{flow.namespace}}"]
Task runner that executes a task inside a pod in a Kubernetes cluster.
type *Requiredobject
config Connection
containerSpec object
delete booleanstring
Default
true
fileSideCarSpec object
fileSidecar SideCar
Default
{
"image": "busybox"
}
labels object
namespace string
Default
default
nodeSelector object
podSpec object
pullPolicy string
Default
ALWAYS
Possible Values
IF_NOT_PRESENT
ALWAYS
NEVER
resources Kubernetes-Resources
resume booleanstring
Default
true
serviceAccountName string
version string
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
waitForLogs string
Default
PT5S
Format
duration
waitUntilCompletion string
Default
PT1H
Format
duration
waitUntilRunning string
Default
PT10M
Format
duration
io.kestra.core.models.tasks.runners.TaskRunnerDetailResult
Task runner that executes a task inside a job in Azure Batch.
accessKey *Requiredstring
account *Requiredstring
endpoint *Requiredstring
poolId *Requiredstring
type *Requiredobject
blobStorage BlobStorageForBatch
completionCheckInterval string
Default
PT5S
Format
duration
delete booleanstring
Default
true
registry ContainerRegistry
resume booleanstring
Default
true
streamLogs booleanstring
Default
false
version string
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
waitUntilCompletion string
Default
PT1H
Format
duration
io.kestra.plugin.ee.gcp.runner.Batch-LifecyclePolicyAction
exitCodes array
SubType integer
Task runner that executes a task inside a job in Google Cloud Run.
region *Requiredstring
type *Requiredobject
bucket string
completionCheckInterval string
Default
PT5S
Format
duration
delete booleanstring
Default
true
projectId string
resume booleanstring
Default
true
scopes array
SubType string
Default
["https://www.googleapis.com/auth/cloud-platform"]
serviceAccount string
version string
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
waitForLogInterval string
Default
PT5S
Format
duration
waitUntilCompletion string
Default
PT1H
Format
duration
io.kestra.plugin.ee.gcp.runner.Batch-LifecyclePolicy
action string
Possible Values
ACTION_UNSPECIFIED
RETRY_TASK
FAIL_TASK
UNRECOGNIZED
actionCondition Batch-LifecyclePolicyAction
io.kestra.plugin.ee.gcp.runner.Batch-NetworkInterface
network *Requiredstring
subnetwork string
io.kestra.plugin.ee.aws.runner.Batch-Resource
cpu *Requiredstring
memory *Requiredstring
io.kestra.plugin.ee.kubernetes.models.Connection
apiVersion string
Default
v1
caCertData string
caCertFile string
clientCertData string
clientCertFile string
clientKeyAlgo string
Default
RSA
clientKeyData string
clientKeyFile string
clientKeyPassphrase string
disableHostnameVerification booleanstring
keyStoreFile string
keyStorePassphrase string
masterUrl string
Default
https://kubernetes.default.svc
namespace string
oauthToken string
oauthTokenProvider OAuthTokenProvider
password string
trustCerts booleanstring
trustStoreFile string
trustStorePassphrase string
username string
io.kestra.plugin.ee.azure.storage.blob.models.BlobStorageForBatch
containerName *Requiredstring
connectionString string
endpoint string
Task runner that executes a task as a subprocess on the Kestra host.
type *Requiredobject
version string
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
Task runner that executes a task inside a job in Google Cloud Batch.
region *Requiredstring
type *Requiredobject
bucket string
completionCheckInterval string
Default
PT5S
Format
duration
computeResource Batch-ComputeResource
delete booleanstring
Default
true
entryPoint array
SubType string
machineType string
Default
e2-medium
maxCreateJobRetryCount integerstring
Default
2
maxRetryCount integer
Minimum
>= 0
Maximum
<= 10
projectId string
reservation string
resume booleanstring
Default
true
scopes array
SubType string
Default
["https://www.googleapis.com/auth/cloud-platform"]
serviceAccount string
version string
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
waitForLogInterval string
Default
PT5S
Format
duration
waitUntilCompletion string
Default
PT1H
Format
duration
io.kestra.plugin.scripts.runner.docker.Memory
kernelMemory string
memory string
memoryReservation string
memorySwap string
memorySwappiness string
oomKillDisable booleanstring
io.kestra.plugin.ee.azure.batch.models.ContainerRegistry
identityReference ComputeNodeIdentityReference
password string
registryServer string
userName string
io.kestra.plugin.scripts.exec.scripts.models.DockerOptions
image *Requiredstring
Min length
1
config stringobject
cpu Cpu
credentials Credentials
entryPoint array
SubType string
extraHosts array
SubType string
host string
memory Memory
networkMode string
privileged booleanstring
pullPolicy string
Default
IF_NOT_PRESENT
Possible Values
IF_NOT_PRESENT
ALWAYS
NEVER
shmSize string
user string
volumes array
SubType string
Run a task in a Docker container.
type *Requiredobject
config stringobject
cpu Cpu
credentials Credentials
delete booleanstring
Default
true
entryPoint array
SubType string
Default
[
""
]
extraHosts array
SubType string
fileHandlingStrategy string
Default
VOLUME
Possible Values
MOUNT
VOLUME
host string
killGracePeriod string
Default
PT0S
Format
duration
memory Memory
networkMode string
portBindings array
SubType string
privileged booleanstring
pullPolicy string
Default
IF_NOT_PRESENT
Possible Values
IF_NOT_PRESENT
ALWAYS
NEVER
shmSize string
user string
version string
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
volumes array
SubType string
wait booleanstring
Default
true
A request for devices to be sent to device drivers.
capabilities array
SubType array
count integerstring
deviceIds array
SubType string
driver string
options object
SubType string
Task runner that executes a task inside a job in AWS Batch.
computeEnvironmentArn *Requiredstring
region *Requiredstring
type *Requiredobject
accessKeyId string
bucket string
completionCheckInterval string
Default
PT5S
Format
duration
delete booleanstring
Default
true
endpointOverride string
executionRoleArn string
jobQueueArn string
resources Batch-Resources
Default
{
"request": {
"memory": "2048",
"cpu": "1"
}
}
resume booleanstring
Default
true
secretKeyId string
sessionToken string
stsEndpointOverride string
stsRoleArn string
stsRoleExternalId string
stsRoleSessionDuration string
Default
PT15M
Format
duration
stsRoleSessionName string
taskRoleArn string
version string
Validation RegExp
\d+\.\d+\.\d+(-[a-zA-Z0-9-]+)?|([a-zA-Z0-9]+)
waitUntilCompletion string
Default
PT1H
Format
duration