Skip to content

walrus-catalog-sandbox/terraform-alicloud-kafka

Repository files navigation

Alibaba ApsaraMQ for Apache Kafka Service

Terraform module which deploys Kafka service on Alibaba Cloud.

Usage

module "kafka" {
  source = "..."

  infrastructure = {
    vpc_id        = "..."
  }
}

Examples

Contributing

Please read our contributing guide if you're interested in contributing to Walrus template.

Requirements

Name Version
terraform >= 1.0
alicloud >= 1.212.0
random >= 3.5.1

Providers

Name Version
alicloud >= 1.212.0
random >= 3.5.1

Modules

No modules.

Resources

Name Type
alicloud_alikafka_consumer_group.default resource
alicloud_alikafka_instance.default resource
alicloud_alikafka_topic.dynamic resource
alicloud_security_group.default resource
random_string.name_suffix resource
alicloud_kms_keys.selected data source
alicloud_vpcs.selected data source
alicloud_vswitches.selected data source

Inputs

Name Description Type Default Required
context Receive contextual information. When Walrus deploys, Walrus will inject specific contextual information into this field.

Examples:
context:
project:
name: string
id: string
environment:
name: string
id: string
resource:
name: string
id: string
map(any) {} no
infrastructure Specify the infrastructure information for deploying.

Examples:
infrastructure:
vpc_id: string # the ID of the VPC where the Kafka service applies
kms_key_id: string,optional # the ID of the KMS key which to encrypt the Kafka data
object({
vpc_id = string
kms_key_id = optional(string)
})
n/a yes
seeding Specify the configuration to kafka provisioning.

Examples:
seeding: 
- topic: string, optional
partition: number, optional
list(object({
topic = optional(string)
partitions = optional(number, 1)
}))
null no
storage Specify the disk type of the instance. 0: efficient cloud disk , 1: SSD.

Examples:
storage:
class: number, optional # https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/alikafka_instance#disk_type
size: number, optional # in megabyte
object({
class = optional(number, 0)
size = optional(number, 500)
})
{
"class": 0,
"size": 500
}
no

Outputs

Name Description
address The address, a string only has host, might be a comma separated string or a single string.
connection The connection, a string combined host and port, might be a comma separated string or a single string.
consumer_group_id The consumer group id.
context The input context, a map, which is used for orchestration.
port The port of the service.
refer The refer, a map, including hosts, ports and account, which is used for dependencies or collaborations.

License

Copyright (c) 2023 Seal, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at LICENSE file for details.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.