Skip to content

AutoMQ/terraform-huaweicloud-automq-byoc-environment

Repository files navigation

HuaweiCloud AutoMQ BYOC Environment Terrafrom module

Preview

This module is designed for deploying the AutoMQ BYOC (Bring Your Own Cloud) environment using the HuaweiCloud Provider within an HuaweiCloud environment.

Upon completion of the installation, the module will output the endpoint of the AutoMQ BYOC environment along with the initial username and password. Users can manage the resources within the environment through the following two methods:

  • Using the Web UI to manage resources: This method allows users to manage instances, topics, ACLs, and other resources through a web-ui.
  • Using Terraform to manage resources: This method requires users to access the AutoMQ BYOC environment via a web browser for the first time to create a Service Account. Subsequently, users can manage resources within the environment using the Service Account's Access Key and the AutoMQ Terraform Provider.

For managing instances, topics, and other resources within the AutoMQ BYOC environment using the AutoMQ Terraform Provider, please refer to the documentation.

Module Usage

Use this module to install the AutoMQ BYOC environment, supporting two modes:

  • Create a new VPC: Recommended only for POC or other testing scenarios. In this mode, the user only needs to specify the region, and resources including VPC, Endpoint, Security Group, OBS Bucket, etc., will be created. After testing, all resources can be destroyed with one click.
  • Using an existing VPC: Recommended for production environments. In this mode, the user needs to provide a VPC, subnet, and OBS Bucket that meet the requirements. AutoMQ will deploy the BYOC environment console to the user-specified subnet.

Create a new VPC

module "automq_byoc" {
  source = "AutoMQ/automq-byoc-environment/huaweicloud"

  # Set the identifier for the environment to be installed. This ID will be used for naming internal resources. The environment ID supports only uppercase and lowercase English letters, numbers, and hyphens (-). It must start with a letter and is limited to a length of 32 characters.
  automq_byoc_env_id                       = "example" 

  # Set the target regionId of huaweicloud
  cloud_provider_region                    = "cn-north-4"
}

# Necessary outputs
output "automq_byoc_env_id" {
  value = module.automq_byoc.automq_byoc_env_id
}

output "automq_byoc_endpoint" {
  value = module.automq_byoc.automq_byoc_endpoint
}

output "automq_byoc_initial_username" {
  value = module.automq_byoc.automq_byoc_initial_username
}

output "automq_byoc_initial_password" {
  value = module.automq_byoc.automq_byoc_initial_password
}

output "automq_byoc_vpc_id" {
  value = module.automq_byoc.automq_byoc_vpc_id
}

output "automq_byoc_instance_id" {
  value = module.automq_byoc.automq_byoc_instance_id
}

Helpful Links/Information

Requirements

Name Version
terraform >= 1.0
huaweicloud >= 1.36.0

Providers

Name Version
huaweicloud >= 1.36.0

Modules

No modules.

Resources

Name Type
huaweicloud_compute_eip_associate.automq_byoc_eip_associate resource
huaweicloud_compute_instance.automq_byoc_console resource
huaweicloud_compute_volume_attach.data_volume_attachment resource
huaweicloud_dns_zone.private_zone resource
huaweicloud_evs_volume.data_volume resource
huaweicloud_identity_agency.automq_byoc_agency resource
huaweicloud_identity_role.automq_byoc_obs_policy resource
huaweicloud_identity_role.automq_byoc_policy resource
huaweicloud_networking_secgroup.automq_byoc_console_sg resource
huaweicloud_networking_secgroup_rule.allow_8080 resource
huaweicloud_obs_bucket.automq_byoc_data_bucket resource
huaweicloud_obs_bucket.automq_byoc_ops_bucket resource
huaweicloud_vpc.automq_byoc_vpc resource
huaweicloud_vpc_eip.automq_byoc_eip resource
huaweicloud_vpc_subnet.private_subnets resource
huaweicloud_vpc_subnet.public_subnet resource
huaweicloud_account.current data source
huaweicloud_availability_zones.zones data source
huaweicloud_images_image.automq_byoc_console_ami data source
huaweicloud_vpc.vpc_info data source
huaweicloud_vpc_subnet.public_subnet_info data source

Inputs

Name Description Type Default Required
automq_byoc_env_id The unique identifier of the AutoMQ environment. This parameter is used to create resources within the environment. Additionally, all cloud resource names will incorporate this parameter as part of their names. This parameter supports only numbers, uppercase and lowercase English letters, and hyphens. It must start with a letter and is limited to a length of 32 characters. string n/a yes
cloud_provider_region Set the cloud provider's region. AutoMQ will deploy to this region. string n/a yes
create_new_vpc This setting determines whether to create a new VPC. If set to true, a new VPC spanning three availability zones will be automatically created, which is recommended only for POC scenarios. bool true no
automq_byoc_vpc_id When the create_new_vpc parameter is set to false, this parameter needs to be set. Specify an existing VPC where AutoMQ will be deployed. string "" no
automq_byoc_env_console_public_subnet_id When the create_new_vpc parameter is set to false, this parameter needs to be set. Select a subnet for deploying the AutoMQ BYOC environment console. Ensure that the chosen subnet supports public access. string "" no
automq_byoc_env_console_cidr Set CIDR block to restrict the source IP address range for accessing the AutoMQ environment console. If not set, the default is 0.0.0.0/0. string "0.0.0.0/0" no
automq_byoc_data_bucket_name Set the existed OBS bucket used to store message data generated by applications. If this parameter is not set, a new OBS bucket will be automatically created. The message data Bucket must be separate from the Ops Bucket. string "" no
automq_byoc_ops_bucket_name Set the existed OBS bucket used to store AutoMQ system logs and metrics data for system monitoring and alerts. If this parameter is not set, a new OBS bucket will be automatically created. This Bucket does not contain any application business data. The Ops Bucket must be separate from the message data Bucket. string "" no
automq_byoc_ecs_instance_type Set the ECS instance type; this parameter is used only for deploying the AutoMQ environment console. You need to provide an ECS instance type with at least 2 cores and 8 GB of memory. string "s6.large.2" no
automq_byoc_env_version Set the version for the AutoMQ BYOC environment console. It is recommended to keep the default value, which is the latest version. Historical release note reference document. string "1.3.5" no
use_custom_ami The parameter defaults to false, which means a specific AMI is not specified. If you wish to use a custom AMI, set this parameter to true and specify the automq_byoc_env_console_ami parameter with your custom AMI ID. bool false no
automq_byoc_env_console_ami When the use_custom_ami parameter is set to true, this parameter must be set with a custom AMI Name to deploy the AutoMQ console. string "" no

Outputs

Name Description
automq_byoc_env_id This parameter is used to create resources within the environment. Additionally, all cloud resource names will incorporate this parameter as part of their names. This parameter supports only numbers, uppercase and lowercase English letters, and hyphens. It must start with a letter and is limited to a length of 32 characters.
automq_byoc_endpoint The endpoint for the AutoMQ environment console. Users can set this endpoint to the AutoMQ Terraform Provider to manage resources through Terraform. Additionally, users can access this endpoint via web browser, log in, and manage resources within the environment using the WebUI.
automq_byoc_initial_username The initial username for the AutoMQ environment console. It has the EnvironmentAdmin role permissions. This account is used to log in to the environment, create ServiceAccounts, and manage other resources. For detailed information about environment members, please refer to the documentation.
automq_byoc_initial_password The initial password for the AutoMQ environment console. This account is used to log in to the environment, create ServiceAccounts, and manage other resources. For detailed information about environment members, please refer to the documentation.
automq_byoc_vpc_id The VPC ID for the AutoMQ environment deployment.
automq_byoc_instance_id The ECS instance id for AutoMQ Console.
automq_byoc_data_bucket_name The object storage bucket used to store message data generated by applications. The message data Bucket must be separate from the Ops Bucket.
automq_byoc_ops_bucket_name The object storage bucket used to store AutoMQ system logs and metrics data for system monitoring and alerts. This Bucket does not contain any application business data. The Ops Bucket must be separate from the message data Bucket.
automq_byoc_env_console_ecs_instance_ip The instance IP of the deployed AutoMQ BYOC control panel. You can access the service through this IP.
automq_byoc_env_console_public_subnet_id The VPC subnet for the AutoMQ environment deployment.
automq_byoc_security_group_name Security group bound to the AutoMQ BYOC service.
automq_byoc_agency_name AutoMQ BYOC is bound to the agency of the Console.
automq_byoc_vpc_dns_zone_id DNS Zone bound to the VPC.
automq_byoc_env_console_cidr AutoMQ BYOC security group CIDR.
automq_byoc_huaweicloud_current_account_id n/a