This module deploys the following monitoring agent to an IBM Cloud Red Hat OpenShift Container Platform or Kubernetes cluster:
# ############################################################################
# Init cluster config for helm
# ############################################################################
data "ibm_container_cluster_config" "cluster_config" {
# update this value with the Id of the cluster where these agent will be provisioned
cluster_name_id = "cluster_id"
}
# ############################################################################
# Config providers
# ############################################################################
provider "ibm" {
# update this value with your IBM Cloud API key value
ibmcloud_api_key = "XXXXXXXXXXXXXXXXX" # pragma: allowlist secret
}
provider "helm" {
kubernetes {
host = data.ibm_container_cluster_config.cluster_config.host
token = data.ibm_container_cluster_config.cluster_config.token
cluster_ca_certificate = data.ibm_container_cluster_config.cluster_config.ca_certificate
}
}
# ############################################################################
# Install monitoring agents
# ############################################################################
module "monitoring_agents" {
source = "terraform-ibm-modules/monitoring-agent/ibm"
version = "X.X.X" # Replace "X.X.X" with a release version to lock into a specific release
is_vpc_cluster = true # Change to false if target cluster is running on classic infrastructure
cluster_id = "cluster id" # update this with your cluster id where the agent will be installed
cluster_resource_group_id = "resource group id" # update this with the Id of your IBM Cloud resource group
access_key = "XXXXXXXX"
cloud_monitoring_instance_region = "us-south"
}
You need the following permissions to run this module.
- Service
- Resource group only
Viewer
access on the specific resource group
- Kubernetes service
Viewer
platform accessManager
service access
- Resource group only
Name | Version |
---|---|
terraform | >= 1.9.0 |
helm | >= 2.15.0, <3.0.0 |
ibm | >= 1.76.1, <2.0.0 |
No modules.
Name | Type |
---|---|
helm_release.cloud_monitoring_agent | resource |
ibm_container_cluster.cluster | data source |
ibm_container_cluster_config.cluster_config | data source |
ibm_container_vpc_cluster.cluster | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
access_key | Access key used by the IBM Cloud Monitoring agent to communicate with the instance | string |
n/a | yes |
chart | The name of the Helm chart to deploy. | string |
"sysdig-deploy" |
no |
chart_location | The location of the Cloud Monitoring agent helm chart. | string |
"https://charts.sysdig.com" |
no |
chart_version | The version of the Cloud Monitoring agent helm chart to deploy. | string |
"1.81.0" |
no |
cloud_monitoring_instance_endpoint_type | Specify the IBM Cloud Monitoring instance endpoint type (public or private) to use. Used to construct the ingestion endpoint. | string |
"private" |
no |
cloud_monitoring_instance_region | The IBM Cloud Monitoring instance region. Used to construct the ingestion endpoint. | string |
n/a | yes |
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 | The ID of the cluster you wish to deploy the agent in | string |
n/a | yes |
cluster_resource_group_id | The Resource Group ID of the cluster | string |
n/a | yes |
container_filter | To filter custom containers, specify which containers to include or exclude from metrics collection for the cloud monitoring agent. See https://cloud.ibm.com/docs/monitoring?topic=monitoring-change_kube_agent#change_kube_agent_filter_data. | list(object({ |
[] |
no |
image_registry | The image registry to use for the Cloud Monitoring agent. | string |
"icr.io/ext/sysdig/agent" |
no |
image_tag_digest | The image tag digest to use for the Cloud Monitoring agent. | string |
"13.9.0@sha256:7f1beb74255789746eb78d2cc628aad2ebb1b61abea601b4c8b09f23e18d992f" |
no |
is_vpc_cluster | Specify true if the target cluster for the monitoring agent is a VPC cluster, false if it is a classic cluster. | bool |
true |
no |
metrics_filter | To filter custom metrics, specify the Cloud Monitoring metrics to include or to exclude. See https://cloud.ibm.com/docs/monitoring?topic=monitoring-change_kube_agent#change_kube_agent_inc_exc_metrics. | list(object({ |
[] |
no |
name | Cloud Monitoring agent name. Used for naming all kubernetes and helm resources on the cluster. | string |
"sysdig-agent" |
no |
namespace | Namespace where to deploy the Cloud Monitoring agent. Default value is 'ibm-observe' | string |
"ibm-observe" |
no |
tolerations | List of tolerations to apply to Cloud Monitoring agent. | list(object({ |
[ |
no |
wait_till | To avoid long wait times when you run your Terraform code, you can specify the stage when you want Terraform to mark the cluster resource creation as completed. Depending on what stage you choose, the cluster creation might not be fully completed and continues to run in the background. However, your Terraform code can continue to run without waiting for the cluster to be fully created. Supported args are MasterNodeReady , OneWorkerNodeReady , IngressReady and Normal |
string |
"Normal" |
no |
wait_till_timeout | Timeout for wait_till in minutes. | number |
90 |
no |
No outputs.
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.