| page_title | duploai_msk_kafka Resource - duploai |
|---|---|
| subcategory | |
| description | Manages a DuploCloud AI Helpdesk AWS MSK (Managed Streaming for Apache Kafka) provisioned cluster, in which you size the brokers, provisioned within an environment and resource group. |
Manages a DuploCloud AI Helpdesk AWS MSK (Managed Streaming for Apache Kafka) provisioned cluster, in which you size the brokers, provisioned within an environment and resource group.
# A provisioned MSK (Kafka) cluster sized by you.
resource "duploai_msk_kafka" "example" {
workspace_id = "6a25105705686d697e0da225"
name = "my-kafka-cluster"
environment_id = "<environment-id>"
resource_group_id = "<resource-group-id>"
instance_type = "kafka.m5.large"
number_of_broker_nodes = 3
broker_volume_size_gb = 100
kafka_version = "3.6.0"
# Optional: pin specific private subnets (one broker per AZ). Omit for all RG private subnets.
subnet_ids = ["subnet-0a727a1199534ecf3", "subnet-0fc56ead225db9bcc"]
encryption = "AwsManagedKey"
encryption_in_transit = "TLS"
}
output "kafka_bootstrap_brokers_tls" {
value = duploai_msk_kafka.example.bootstrap_brokers_tls
}
output "kafka_cluster_arn" {
value = duploai_msk_kafka.example.cluster_arn
}broker_volume_size_gb(Number) EBS storage per broker, in GiB. Can be increased in place.environment_id(String) ID of the environment in which the cluster is provisioned.instance_type(String) Broker instance type (e.g. kafka.m5.large). Can be changed in place.kafka_version(String) Apache Kafka version for the cluster (e.g. 3.6.0). Can be upgraded in place.name(String) Cluster name. Letters, numbers, and hyphens. Cannot be changed after creation.resource_group_id(String) ID of the resource group in which the cluster is provisioned.workspace_id(String) ID of the workspace that owns this MSK cluster.
configuration_arn(String) ARN of a saved MSK (Kafka broker) configuration to apply. Leave unset for the AWS default.configuration_revision(Number) Revision of the MSK configuration referenced by configuration_arn.encryption(String) Encryption at rest. AwsManagedKey uses the AWS-managed MSK key; ResourceGroupKmsKey uses the resource group's KMS key; NoEncryption disables it. Immutable after creation.encryption_in_transit(String) How clients connect: TLS (encrypted), TLS_PLAINTEXT (both), or PLAINTEXT (unencrypted).failure_retries(Number) Number of extra polls to tolerate a transient failure status during provisioning before treating it as terminal. Overrides the resource's default; leave unset to use it.number_of_broker_nodes(Number) Number of broker nodes. Must be a multiple of the number of broker subnets (Availability Zones); rounded up server-side. Can be increased in place.provisioner_type(String) Provisioner type. Defaults to DirectApiCall for MSK.provisioner_version(String) Optional provisioner version.scope_ids(Set of String) IDs of the scopes attached to this cluster.subnet_ids(List of String) Private subnets (2-4, each in a distinct Availability Zone) to place brokers in. Leave unset to use all of the resource group's private subnets. Write-only at creation.tags(Map of String) Tags applied to the cluster at creation. Platform ownership tags are added automatically.timeouts(Block, Optional) (see below for nested schema)
bootstrap_brokers(String) Plaintext bootstrap broker connection string.bootstrap_brokers_sasl_iam(String) SASL/IAM bootstrap broker connection string.bootstrap_brokers_sasl_scram(String) SASL/SCRAM bootstrap broker connection string.bootstrap_brokers_tls(String) TLS bootstrap broker connection string.cluster_arn(String) ARN of the provisioned MSK cluster.created_at(String) Timestamp when the cluster was created (RFC 3339).id(String) Composite resource identifier (workspace_id/id).msk_kafka_id(String) ID of this MSK Kafka cluster, for reference by dependent resources.security_group_ids(List of String) Security groups attached to the cluster (assigned by the platform).status(String) Current provisioning status of the cluster.updated_at(String) Timestamp when the cluster was last updated (RFC 3339).version(Number) Version counter, incremented on each update.
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.update(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).
Import is supported using the following syntax:
The terraform import command can be used, for example:
# Import an existing provisioned MSK cluster.
# - WORKSPACE_ID is the workspace the cluster belongs to
# - MSK_ID is the unique identifier of the cluster (e.g. 6a2258e94703bc957a1b824e)
terraform import duploai_msk_kafka.example WORKSPACE_ID/MSK_ID
# Example:
# terraform import duploai_msk_kafka.example 6a25105705686d697e0da225/6a2258e94703bc957a1b824e