terraform-ibm-modules / terraform-ibm-mq-cloud

Provisions and configures IBM Cloud MQ on Cloud.
Apache License 2.0
0 stars 1 forks source link
core-team deployable-architecture ibm-cloud mq supported terraform terraform-module

Terraform MQ on Cloud Module

Incubating (Not yet consumable) latest release pre-commit Renovate enabled semantic-release

IBM MQ on IBM Cloud enables you to quickly and easily deploy queue managers in the cloud and connect your applications to them, providing reliable data transfer between different parts of your enterprise application landscape.

Use the terraform IBM module for MQ on Cloud manage MQ resources. Queue manager, User, Application and Certificate interfaces enable convenient management of MQ on Cloud resource lifecycles.

Information: The terraform IBM module for MQ on Cloud is incubating and NOT GA on IBM Cloud. The features demonstrated here are incomplete, may not be in final form and may generate unpredicatable failures.

Overview

terraform-ibm-mq-cloud

Usage

module "mq_on_cloud" {
  source            = "terraform-ibm-modules/mq-cloud/ibm/"
  version           = "x.x.x" #
  resource_group_id = module.resource_group.resource_group_id

  name   = "${var.prefix}-mq-instance"
  region = "us-east"
  existing_mq_capacity_crn = "crn:<...>" # MQ on Cloud capacity instance crn

  queue_manager_display_name = "queue-manager"
  queue_manager_name         = "qm"
  queue_manager_size         = "xsmall"
  queue_manager_version      = "9.4.0_3"

  applications = {
    "application" = {
      name = "application"
    }
  }
  users = {
    "user" = {
      name  = "user"
      email = "user@example.com"
    }
  }
  keystore_certificates = {
    "ks-cert" = {
      certificate = "YmFzZTY0IGVuY29kZWQgY2VydGlmaWNhdGUK" # Base64 encoded certificate
      label       = "ks_cert_1"
    }
  }
  truststore_certificates = {
    "ts-cert" = {
      certificate = "YmFzZTY0IGVuY29kZWQgY2VydGlmaWNhdGUK" # Base64 encoded certificate
      label       = "ts_cert_1"
    }
  }

}

Required IAM access policies

Requirements

Name Version
terraform >= 1.3.0

Modules

Name Source Version
application ./modules/application n/a
keystore_certificate ./modules/keystore-certificate n/a
mqcloud_instance ./modules/mq-instance n/a
queue_manager ./modules/queue-manager n/a
truststore_certificate ./modules/truststore-certificate n/a
user ./modules/user n/a

Resources

No resources.

Inputs

Name Description Type Default Required
applications A map of IBM MQ on Cloud applications to be created.
map(object({
name = string
}))
{} no
existing_mq_capacity_crn The CRN of an existing capacity service instance, if not specifed, a new capacity plan will be created string null no
keystore_certificates A map of IBM MQ on Cloud keystore certificates to be created.
map(object({
certificate = string
label = string
}))
{} no
name The name to give the MQ on Cloud instance. string n/a yes
queue_manager_display_name A displayable name for the queue manager. string n/a yes
queue_manager_location The location in which the queue manager will be deployed. Defaults to using the first location in the created service instance string null no
queue_manager_name A queue manager name conforming to MQ restrictions. 1 to 48 characters matching regular expression '/^[a-zA-Z0-9._]*$/' . string n/a yes
queue_manager_size The queue manager deployment sizes. Valid values are xsmall, small, medium, large . string "xsmall" no
queue_manager_version The MQ version of the queue manager. string n/a yes
region The region to provision the MQ on Cloud instance to. string n/a yes
resource_group_id The ID of the resource group to provision the MQ on Cloud instance to. string n/a yes
tags The list of resource tags that you want to associate with your MQ on Cloud instance. list(string) [] no
truststore_certificates A map of IBM MQ on Cloud truststore certificates to be created.
map(object({
certificate = string
label = string
}))
{} no
users A map of IBM MQ on Cloud users to be created.
map(object({
email = string
name = string
}))
{} no

Outputs

Name Description
queue_manager_id The ID of the MQ on Cloud queue manager
queue_manager_options Queue manager options for the MQ on Cloud deployment service instance
service_instance_capacity_crn The CRN of the MQ on Cloud capacity service instance
service_instance_capacity_guid The GUID of the MQ on Cloud capacity service instance
service_instance_deployment_crn The CRN of the MQ on Cloud deployment service instance
service_instance_deployment_guid The GUID of the MQ on Cloud deployment service instance

Contributing

You can report issues and request features for this module in GitHub issues in the module repo. See Report an issue or request a feature.

To set up your local development environment, see Local development setup in the project documentation.