An open API service indexing awesome lists of open source software.

https://github.com/terraform-ibm-modules/terraform-ibm-activity-tracker

This module supports provisioning an IBM Cloud Activity Tracker Event Routing target & routes
https://github.com/terraform-ibm-modules/terraform-ibm-activity-tracker

activity-tracker at core-team event-routing ibm-cloud observability terraform terraform-module

Last synced: 2 months ago
JSON representation

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

Awesome Lists containing this project

README

          

# IBM Cloud Activity Tracker Event Routing

[![Graduated (Supported)](https://img.shields.io/badge/Status-Graduated%20(Supported)-brightgreen)](https://terraform-ibm-modules.github.io/documentation/#/badge-status)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![latest release](https://img.shields.io/github/v/release/terraform-ibm-modules/terraform-ibm-activity-tracker?logo=GitHub&sort=semver)](https://github.com/terraform-ibm-modules/terraform-ibm-activity-tracker/releases/latest)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)
[![Terraform Registry](https://img.shields.io/badge/terraform-registry-623CE4?logo=terraform)](https://registry.terraform.io/modules/terraform-ibm-modules/activity-tracker/ibm/latest)

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

## Overview

## terraform-ibm-activity-tracker

### Usage

```hcl
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 = ["*"]
target_ids = local.target_ids
route_name = "at-route"
}
]
}
```

### Required access policies

### Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.9.0 |
| [ibm](#requirement\_ibm) | >= 1.88.0, < 3.0.0 |
| [time](#requirement\_time) | >= 0.9.1, < 1.0.0 |

### Modules

| Name | Source | Version |
|------|--------|---------|
| [cbr\_rule](#module\_cbr\_rule) | terraform-ibm-modules/cbr/ibm//modules/cbr-rule-module | 1.36.4 |

### Resources

| Name | Type |
|------|------|
| [ibm_atracker_route.atracker_routes](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/resources/atracker_route) | resource |
| [ibm_atracker_settings.atracker_settings](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/resources/atracker_settings) | resource |
| [ibm_atracker_target.atracker_cloud_logs_targets](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/resources/atracker_target) | resource |
| [ibm_atracker_target.atracker_cos_targets](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/resources/atracker_target) | resource |
| [ibm_atracker_target.atracker_eventstreams_targets](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/resources/atracker_target) | resource |
| [ibm_iam_authorization_policy.atracker_cloud_logs](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/resources/iam_authorization_policy) | resource |
| [ibm_iam_authorization_policy.atracker_cos](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/resources/iam_authorization_policy) | resource |
| [ibm_iam_authorization_policy.atracker_es](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/resources/iam_authorization_policy) | resource |
| [time_sleep.wait_for_authorization_policy](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep) | resource |
| [time_sleep.wait_for_cloud_logs_auth_policy](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep) | resource |
| [time_sleep.wait_for_event_stream_auth_policy](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/sleep) | resource |
| [ibm_iam_account_settings.iam_account_settings](https://registry.terraform.io/providers/ibm-cloud/ibm/latest/docs/data-sources/iam_account_settings) | data source |

### Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [activity\_tracker\_routes](#input\_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 |
| [cbr\_rules](#input\_cbr\_rules) | The context-based restrictions rule to create. Only one rule is allowed. [Learn more](https://cloud.ibm.com/docs/account?topic=account-at_events_cbr). |
list(object({
description = string
account_id = string
region = optional(string)
rule_contexts = list(object({
attributes = optional(list(object({
name = string
value = string
}))) }))
enforcement_mode = string
operations = optional(list(object({
api_types = list(object({
api_type_id = string
}))
})))
}))
| `[]` | no |
| [cloud\_logs\_targets](#input\_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](#input\_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](#input\_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](#input\_global\_event\_routing\_settings) | Global account settings for event routing. [Learn more](https://cloud.ibm.com/docs/atracker?topic=atracker-settings&interface=ui) |
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](#output\_activity\_tracker\_routes) | The map of created routes |
| [activity\_tracker\_settings](#output\_activity\_tracker\_settings) | AT event routing account global settings. |
| [activity\_tracker\_targets](#output\_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](https://github.com/terraform-ibm-modules/.github/blob/main/.github/SUPPORT.md).

To set up your local development environment, see [Local development setup](https://terraform-ibm-modules.github.io/documentation/#/local-dev-setup) in the project documentation.