Skip to content

terraform-ibm-modules/terraform-ibm-mq-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IBM MQ Operator on Red Hat OpenShift Container Platform module

Implemented (No quality checks) latest release pre-commit Renovate enabled semantic-release

The module installs an IBM MQ operator on the existing cluster.

For more information about the IBM MQ operator refer to the official documentation available here

For more information about the IBM MQ refer to the official documentation available here

Overview

terraform-ibm-mq-operator

Usage

##############################################################################
# Config providers
##############################################################################

provider "ibm" {
  ibmcloud_api_key = var.ibmcloud_api_key # pragma: allowlist secret
  region           = var.region
}

provider "helm" {
  kubernetes {
    host  = data.ibm_container_cluster_config.cluster_config.host
    token = data.ibm_container_cluster_config.cluster_config.token
  }
}

provider "kubernetes" {
  host  = data.ibm_container_cluster_config.cluster_config.host
  token = data.ibm_container_cluster_config.cluster_config.token
}

##############################################################################
# IBM MQ operator deployment on the OCP cluster
##############################################################################

data "ibm_container_cluster_config" "cluster_config" {
  cluster_name_id = var.cluster_id
  config_dir      = "${path.module}/kubeconfig"
  endpoint_type   = var.cluster_config_endpoint_type != "default" ? var.cluster_config_endpoint_type : null # null represents default
}

module "ibm_mq_operator" {
  # Replace "master" with a GIT release version to lock into a specific release
  source                                = "https://github.com/terraform-ibm-modules/terraform-ibm-mq-operator.git?ref=master"
  cluster_id                            = var.cluster_id
  add_ibm_operator_catalog              = true
  create_ibm_mq_operator_namespace      = false
  ibm_mq_operator_namespace             = "openshift-operators"
  ibm_mq_operator_target_namespace      = "ibm-mq-operator"
  cluster_config_endpoint_type          = "default"
  operator_helm_release_namespace       = "ibm-mq-operator"
  create_ibm_mq_queue_manager_namespace = true
  ibm_mq_queue_manager_namespace        = "ibm-mq-operator-qm"
  create_queue_manager                  = var.create_queue_manager
  queue_manager_name                    = "ibm-mq-operator-qm"
  queue_manager_license                 = var.queue_manager_license
  queue_manager_license_usage           = var.queue_manager_license_usage
  queue_manager_version                 = var.queue_manager_version
}

locals {
  mq_queue_manager_web_url = var.create_queue_manager ? "https://${module.ibm_mq_operator.ibm_mq_queue_manager_web_url}/ibmmq/console/login.html" : "MQ Queue Manager is not deployed."
}

output "ibm_mq_queue_manager_web_url" {
  description = "Queue Manager web URL"
  value       = local.mq_queue_manager_web_url
}

Required IAM access policies

  • IAM Services
    • Kubernetes service
      • Viewer platform access
      • Manager service access

Requirements

Name Version
terraform >= 1.3.0
external >=2.2.3, <3.0.0
helm >= 2.8.0, <3.0.0
ibm >= 1.59.0, < 2.0.0
kubernetes >= 2.16.1, <3.0.0
null >= 3.2.1, < 4.0.0
time >= 0.9.1, < 1.0.0

Modules

No modules.

Resources

Name Type
helm_release.ibm_mq_operator resource
helm_release.ibm_mq_operator_group resource
helm_release.ibm_mq_queue_manager resource
helm_release.ibm_operator_catalog resource
kubernetes_namespace.helm_release_operator_namespace resource
kubernetes_namespace.ibm_mq_operator_namespace resource
kubernetes_namespace.ibm_mq_queue_manager_namespace resource
null_resource.confirm_ibm_mq_operator_operational resource
time_sleep.wait_catalog resource
time_sleep.wait_ibm_mq_operator resource
time_sleep.wait_ibm_mq_queue_manager resource
external_external.mq_queue_manager_url data source
ibm_container_cluster_config.cluster_config data source

Inputs

Name Description Type Default Required
add_ibm_operator_catalog Install the IBM Operator Catalog in the cluster before installing the IBM MQ Operator. Default is true. bool true no
cluster_config_endpoint_type Specify which type of endpoint to use for for cluster config access: 'default', 'private', 'vpe', 'link'. 'default' value will use the default endpoint of the cluster. string "default" no
cluster_id ID of the target cluster where the IBM MQ operator will be installed. string n/a yes
create_ibm_mq_operator_namespace Set to true to create the namespace where the IBM MQ Operator will be deployed. Default to false. bool false no
create_ibm_mq_queue_manager_namespace Set to true to create the namespace where the IBM MQ Queue Manager will be installed. Default to true. bool true no
create_queue_manager Set to true to create a Queue Manager for the IBM MQ operator. Default is true. bool true no
ibm_mq_operator_namespace Namespace where the IBM MQ operator is deployed. Default is openshift-operators. string "openshift-operators" no
ibm_mq_operator_target_namespace Namespace to be watched by the IBM MQ Operator. Default is null, which means that the operator watches all the namespaces. string null no
ibm_mq_queue_manager_namespace Namespace where the IBM MQ Queue Manager will be installed. Its only used when var.create_ibm_mq_queue_manager_namespace is set to true. string null no
operator_helm_release_namespace Namespace where the helm releases are deployed. Default is ibm-mq-operator. string "ibm-mq-operator" no
queue_manager_license IBM MQ Queue Manager license. More info on IBM MQ Queue Manager licenses and its usage can be seen here: https://www.ibm.com/docs/en/ibm-mq/9.3?topic=mqibmcomv1beta1-licensing-reference. string null no
queue_manager_license_usage IBM MQ Queue Manager license usage. More info on IBM MQ Queue Manager licenses and its usage can be seen here: https://www.ibm.com/docs/en/ibm-mq/9.3?topic=mqibmcomv1beta1-licensing-reference. string null no
queue_manager_name Name of the IBM MQ Queue Manager. string null no
queue_manager_version IBM MQ Queue Manager version. Make sure the version is compatible with the IBM MQ Queue Manager license and usage. string "9.3.3.3-r1" no

Outputs

Name Description
ibm_mq_operator_namespace Namespace where the IBM MQ operator is installed.
ibm_mq_operator_target_namespace Namespace watched by the IBM MQ operator.
ibm_mq_queue_manager_web_url Queue Manager web URL

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.