streamtime_fleet (Resource)
A fleet: the Kubernetes cluster Streamtime runs workloads on. Creating one provisions the cluster (or, for bring-your-own Kubernetes, registers it; install the Agent afterwards) and waits until it is ready. Use streamtime_fleet_configuration_profile to see the placement and advanced settings each fleet provider takes.
Example Usage
# A fleet on your own Kubernetes cluster (bring your own Kubernetes). Apply registers
# it; then install the Agent on the cluster from the fleet's page in Streamtime.
resource "streamtime_fleet" "byok" {
identifier = "prod"
fleet_provider = "byok"
domain = streamtime_base_domain.example.domain
workloads = jsonencode({
streaming = {
enabled = true
providers = ["strimzi"]
}
})
# Cloud fleets also take placement_config and, for some providers, advanced_config.
# Their fields depend on the fleet provider: read them from
# data.streamtime_fleet_configuration_profile.<name>.placement_schema.
timeouts = {
create = "90m"
delete = "60m"
}
}
Schema
Required
domain(String) Base domain the fleet’s endpoints are served under (a streamtime_base_domain’s domain).fleet_provider(String) Where the fleet runs, for example aws, gcp, azure, oci, digitalocean, civo, byok (your own Kubernetes) or byovm (your own virtual machines). See streamtime_fleet_configuration_profiles. Changing it creates a new fleet.identifier(String) Unique name of the fleet: up to 24 lowercase letters, digits and dashes. Changing it creates a new fleet.
Optional
advanced_config(String, Sensitive) Advanced settings, as a JSON object set with jsonencode(). The fields depend on fleet_provider and may include credentials. Changes to placement_config or advanced_config are saved but not yet applied to a running fleet.alert_channels(Set of String) Identifiers of alert channels that receive the fleet’s alerts.alert_webhook_secret(String, Sensitive) Secret used to sign the fleet’s alert webhooks. Streamtime never returns it.autoscale(Boolean) Let the fleet’s node pools grow and shrink with load, where the cloud supports it.enable_ai(Boolean) Turn on the AI assistant for this fleet.max_kafka_units(Number) Cluster capacity the fleet can hold, in capacity units.max_tenants(Number) Most workloads that can share the fleet.network(String) Identifier of the streamtime_network to create the fleet in. Changing it creates a new fleet. If Streamtime no longer links the fleet to its network (the network was deleted and created again), apply links it again in place.observability_providers(Set of String) Identifiers of observability accounts the fleet sends metrics and logs to.placement_config(String) Where and how the fleet is placed (region, sizes, versions), as a JSON object set with jsonencode(). The fields depend on fleet_provider. Settings Streamtime fills in are not shown as changes.streamtime_ai_access(String) What the AI assistant may do on the fleet: read_only or read_write.tenancy_mode(String) Shared, Isolated or Dedicated.timeouts(Attributes) (see below for nested schema)workloads(String) Workload categories the fleet hosts, as a JSON object set with jsonencode(): streaming, stream_processing and analytics, each with enabled, providers and units (cloud fleets) or weight (your own Kubernetes).
Read-Only
configuration_state(String) Whether the fleet’s settings are complete: incomplete, valid or invalid.generation(Number) Version of the fleet’s settings; it goes up when they change.id(String) Same as identifier. Use the identifier to import.observed_generation(Number) Version of the settings the running fleet has.reconciliation_state(String) Progress of the last change: pending, queued, running, succeeded or failed.status(String) Health of the fleet, for example Provisioning, Healthy or Error.
Nested Schema for timeouts
Optional:
create(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as “30s” or “2h45m”. Valid time units are “s” (seconds), “m” (minutes), “h” (hours).delete(String) A string that can be parsed as a duration consisting of numbers and unit suffixes, such as “30s” or “2h45m”. Valid time units are “s” (seconds), “m” (minutes), “h” (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
Import
Import is supported using the following syntax:
The terraform import command can be used, for example:
# Import by identifier.
terraform import streamtime_fleet.byok prod