Skip to content

This module supports provisioning an IBM Cloud Activity Tracker Event Routing target & routes

License

Notifications You must be signed in to change notification settings

terraform-ibm-modules/terraform-ibm-activity-tracker

Repository files navigation

IBM Cloud Activity Tracker Event Routing

Graduated (Supported) semantic-release pre-commit latest release Renovate enabled

This module supports configuring an IBM Cloud Activity Tracker event routing target, routes and settings.

Overview

terraform-ibm-activity-tracker

Usage

terraform {
  required_version = ">= 1.9.0"
  required_providers {
    ibm = {
      source  = "IBM-Cloud/ibm"
      version = "X.Y.Z"  # Lock into a provider version that satisfies the module constraints
    }
  }
}

locals {
    region = "us-south"
    target_ids = [
    module.activity_tracker.activity_tracker_targets["icl-target"].id,
    module.activity_tracker.activity_tracker_targets["cos-target"].id,
    module.activity_tracker.activity_tracker_targets["es-target"].id
  ]
}

provider "ibm" {
  ibmcloud_api_key = "XXXXXXXXXX"  # replace with apikey value
  region           = local.region
}

module "activity_tracker" {
  source            = "terraform-ibm-modules/activity-tracker/ibm"
  version           = "X.Y.Z" # Replace "X.Y.Z" with a release version to lock into a specific release

  # Cloud Logs target
  cloud_logs_targets = [
    {
      instance_id   = "xxXXxxXXxXxXXXXxxXxxxXXXXxXXXXX"
      target_region = local.region
      target_name   = "icl-target"
    }
  ]

  # COS target
  cos_targets = [
    {
      bucket_name                       = "cos-bucket"
      endpoint                          = "xxXXxxXXxXxXXXXxxXxxxXXXXxXXXXX"
      instance_id                       = "xxXXxxXXxXxXXXXxxXxxxXXXXxXXXXX"
      target_region                     = local.region
      target_name                       = "cos-target"
      skip_atracker_cos_iam_auth_policy = false
      service_to_service_enabled        = true
    }
  ]

  # Event Stream target
  eventstreams_targets = [
    {
      instance_id                      = "xxXXxxXXxXxXXXXxxXxxxXXXXxXXXXX"
      brokers                          = "xxXXxxXXxXxXXXXxxXxxxXXXXxXXXXX"
      topic                            = "es-topic"
      target_region                    = local.region
      target_name                      = "es-target"
      service_to_service_enabled       = true
      skip_atracker_es_iam_auth_policy = false
    }
  ]

  # AT Event routing route
  activity_tracker_routes = [
    {
      locations  = ["*", "global"]
      target_ids = local.target_ids
      route_name = "at-route"
    }
  ]
}

Required access policies

Requirements

Name Version
terraform >= 1.9.0
ibm >= 1.76.0, < 2.0.0
time >= 0.9.1, < 1.0.0

Modules

No modules.

Resources

Name Type
ibm_atracker_route.atracker_routes resource
ibm_atracker_settings.atracker_settings resource
ibm_atracker_target.atracker_cloud_logs_targets resource
ibm_atracker_target.atracker_cos_targets resource
ibm_atracker_target.atracker_eventstreams_targets resource
ibm_iam_authorization_policy.atracker_cloud_logs resource
ibm_iam_authorization_policy.atracker_cos resource
ibm_iam_authorization_policy.atracker_es resource
time_sleep.wait_for_authorization_policy resource
time_sleep.wait_for_cloud_logs_auth_policy resource
time_sleep.wait_for_event_stream_auth_policy resource
ibm_iam_account_settings.iam_account_settings data source

Inputs

Name Description Type Default Required
activity_tracker_routes List of routes to be created, maximum four routes are allowed
list(object({
locations = list(string)
target_ids = list(string)
route_name = string
}))
[] no
cloud_logs_targets List of Cloud Logs targets to be created
list(object({
instance_id = string
target_region = optional(string)
target_name = string
skip_atracker_cloud_logs_iam_auth_policy = optional(bool, false)
}))
[] no
cos_targets List of Cloud Object Storage targets to be created
list(object({
endpoint = string
bucket_name = string
instance_id = string
api_key = optional(string)
service_to_service_enabled = optional(bool, true)
target_region = optional(string)
target_name = string
skip_atracker_cos_iam_auth_policy = optional(bool, false)
}))
[] no
eventstreams_targets List of Event Streams targets to be created
list(object({
instance_id = string
brokers = list(string)
topic = string
api_key = optional(string)
service_to_service_enabled = optional(bool, true)
target_region = optional(string)
target_name = string
skip_atracker_es_iam_auth_policy = optional(bool, false)
}))
[] no
global_event_routing_settings Global account settings for event routing. Learn more
object({
default_targets = optional(list(string), [])
metadata_region_primary = string
metadata_region_backup = optional(string)
permitted_target_regions = list(string)
private_api_endpoint_only = optional(bool, false)
})
null no

Outputs

Name Description
activity_tracker_routes The map of created routes
activity_tracker_settings AT event routing account global settings.
activity_tracker_targets The map of created targets

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.