Manage Kestra Tenants with the Terraform Provider
For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append.mdto anykestra.io/docs/*URL for plain Markdown.
Terraform Resource: kestra_tenant
Manages a Kestra Tenant.
This resource is only available on the Enterprise Edition
Example usage
resource "kestra_tenant" "example" { tenant_id = "my-tenant" name = "My Tenant"
# cap how many executions of the whole tenant run at once concurrency { limit = 10 behavior = "QUEUE" }
# and how many may start inside a sliding window quotas { duration = "PT1H" limit = 100 behavior = "FAIL" }}Schema
Required
tenant_id(String) The tenant id.
Optional
concurrency(Block List) The concurrency limit applied to the executions of every flow inside this scope and its descendants. (see below for nested schema)default_worker_selector(Block List) The default routing applied to every task of the tenant that does not define its own. Tasks are routed to akestra_worker_queuewhose tag set matches. (see below for nested schema)name(String) The tenant name.outputs_in_internal_storage(Boolean) Whether outputs are stored in internal storage.quotas(Block List) Quotas evaluated before an execution starts. Without any quota, executions run normally. (see below for nested schema)require_existing_namespace(Boolean) Whether tenant requires an existing namespace.secret_configuration(Map of String) The secret configuration.secret_isolation(Block List) Secret isolation configuration (same shape as storage_isolation). (see below for nested schema)secret_read_only(Boolean) Whether secrets are read-only in this tenant.secret_type(String) The secret type.storage_configuration(Map of String) The storage configuration.storage_isolation(Block List) Storage isolation configuration. (see below for nested schema)storage_type(String) The storage type.
Read-Only
id(String) The tenant id.
Nested Schema for concurrency
Required:
behavior(String) What happens to an execution once the limit is reached.limit(Number) The maximum number of concurrent executions.
Nested Schema for default_worker_selector
Required:
tags(Set of String) The tags used to route to a matching Worker Queue (each tag is an RFC 1123 label). The API rejectsmatchandfallbackwithout a non-empty tag set.
Optional:
fallback(String) The strategy when no worker is available:FAIL(default),WAIT,CANCELorIGNORE.match(String) How the tags are matched against a Worker Queue tag set:ALL(default, the queue tags must be a superset) orANY(they must intersect).
Nested Schema for quotas
Required:
behavior(String) What happens to an execution once the quota is exhausted.duration(String) The sliding window the quota is counted over, as an ISO-8601 duration (for examplePT1H).limit(Number) The maximum number of executions allowed inside the window.
Nested Schema for secret_isolation
Optional:
denied_services(Set of String) Set of denied services.enabled(Boolean) Whether isolation is enabled.
Nested Schema for storage_isolation
Optional:
denied_services(Set of String) Set of denied services.enabled(Boolean) Whether isolation is enabled.
Import
Import is supported using the following syntax:
The terraform import command can be used, for example:
terraform import kestra_tenant.example {{tenant_id}}Was this page helpful?