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
##############################################################################
# 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
}
- IAM Services
- Kubernetes service
Viewer
platform accessManager
service access
- Kubernetes service
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 |
No modules.
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 |
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 |
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 |
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.