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