ionoscloud_kafka_cluster
Creates and manages IonosCloud Kafka Cluster objects.
Manages a Kafka Cluster on IonosCloud.
Example Usage
This resource will create an operational Kafka Cluster. After this section completes, the provisioner can be called.
# Basic example
resource "ionoscloud_datacenter" "example" {
name = "example-kafka-datacenter"
location = "de/fra"
}
resource "ionoscloud_lan" "example" {
datacenter_id = ionoscloud_datacenter.example.id
public = false
name = "example-kafka-lan"
}
resource "ionoscloud_kafka_cluster" "example" {
name = "example-kafka-cluster"
location = "de/fra"
version = "3.7.0"
size = "S"
connections {
datacenter_id = ionoscloud_datacenter.example.id
lan_id = ionoscloud_lan.example.id
broker_addresses = [
"192.168.1.101/24",
"192.168.1.102/24",
"192.168.1.103/24"
]
}
}
# Complete example
resource "ionoscloud_datacenter" "example" {
name = "example-kafka-datacenter"
location = "de/fra"
}
resource "ionoscloud_lan" "example" {
datacenter_id = ionoscloud_datacenter.example.id
public = false
name = "example-kafka-lan"
}
resource "ionoscloud_server" "example" {
name = "example-kafka-server"
datacenter_id = ionoscloud_datacenter.example.id
cores = 1
ram = 2 * 1024
availability_zone = "AUTO"
image_name = "ubuntu:latest" # alias name
image_password = random_password.password.result
volume {
name = "example-kafka-volume"
size = 6
disk_type = "SSD Standard"
}
nic {
lan = ionoscloud_lan.example.id
name = "example-kafka-nic"
dhcp = true
}
}
resource "random_password" "password" {
length = 16
special = false
}
locals {
prefix = format("%s/%s", ionoscloud_server.example.nic[0].ips[0], "24")
server_net_index = split(".", ionoscloud_server.example.nic[0].ips[0])[3]
kafka_cluster_broker_ips = [
for i in range(local.server_net_index + 1, local.server_net_index + 4) :cidrhost(local.prefix, i)
]
kafka_cluster_broker_ips_cidr = [for ip in local.kafka_cluster_broker_ips : format("%s/%s", ip, "24")]
}
resource "ionoscloud_kafka_cluster" "example" {
name = "example-kafka-cluster"
location = ionoscloud_datacenter.example.location
version = "3.7.0"
size = "S"
connections {
datacenter_id = ionoscloud_datacenter.example.id
lan_id = ionoscloud_lan.example.id
broker_addresses = local.kafka_cluster_broker_ips_cidr
}
}
Argument reference
id
- (Computed)[string] The UUID of the Kafka Cluster.name
- (Required)[string] Name of the Kafka Cluster.location
- (Optional)[string] The location of the Kafka Cluster. Possible values:de/fra
,de/txl
. If this is not set and if no value is provided for theIONOS_API_URL
env var, the defaultlocation
will be:de/fra
.version
- (Required)[string] Version of the Kafka Cluster. Possible values:3.7.0
size
- (Required)[string] Size of the Kafka Cluster. Possible values:XS
,S
connections
- (Required) Connection information of the Kafka Cluster. Minimum items: 1, maximum items: 1.datacenter_id
- (Required)[string] The datacenter to connect your instance to.lan_id
- (Required)[string] The numeric LAN ID to connect your instance to.broker_addresses
- (Required)[list] IP addresses and subnet of cluster brokers. Note the following unavailable IP range: 10.224.0.0/11
broker_addresses
- (Computed)[list] IP address and port of cluster brokers.
⚠ NOTE:
IONOS_API_URL_KAFKA
can be used to set a custom API URL for the kafka resource.location
field needs to be empty, otherwise it will override the custom API URL. Settingendpoint
orIONOS_API_URL
does not have any effect.
Import
Kafka Cluster can be imported using the location
and kafka cluster id
:
terraform import ionoscloud_kafka_cluster.mycluster location:kafka cluster uuid
Last updated