All Projects → waveaccounting → terraform-aws-chatbot-slack-configuration

waveaccounting / terraform-aws-chatbot-slack-configuration

Licence: Apache-2.0 license
Module to enable Chatbot Slack channel configuration in Terraform

Programming Languages

Makefile
30231 projects
HCL
1544 projects

Projects that are alternatives of or similar to terraform-aws-chatbot-slack-configuration

terraform-aws-msk-cluster
Terraform module which creates Msk Kafka Cluster on AWS
Stars: ✭ 26 (-16.13%)
Mutual labels:  terraform-module, terraform-aws
terraform-tuesdays
Demo files for various Terraform Tuesday Examples
Stars: ✭ 211 (+580.65%)
Mutual labels:  terraform-module, terraform-aws
terraform-aws-account
🌳 A sustainable Terraform Package which creates Account & IAM resources on AWS
Stars: ✭ 18 (-41.94%)
Mutual labels:  terraform-module, terraform-aws
terraform-aws-resource-naming
Terraform module to generate resource name with random_id added as suffix.
Stars: ✭ 18 (-41.94%)
Mutual labels:  terraform-module
terraform-linode-k8s
Kubernetes installer for Linode
Stars: ✭ 63 (+103.23%)
Mutual labels:  terraform-module
terraform-oci-compute-instance
Terraform Module for creating Oracle Cloud Infrastructure compute instances
Stars: ✭ 29 (-6.45%)
Mutual labels:  terraform-module
openapi-tf-example
Example of how you can use OpenAPI with AWS API Gateway, Also includes integrations with AWSLambda, AWS Cognito, AWS SNS and CloudWatch logs
Stars: ✭ 38 (+22.58%)
Mutual labels:  terraform-aws
terraform-github-repository-webhooks
Terraform module to provision webhooks on a set of GitHub repositories
Stars: ✭ 20 (-35.48%)
Mutual labels:  terraform-module
terraform-kubernetes-alb-ingress-controller
Terraform module to ease deployment of the AWS ALB Ingress Controller
Stars: ✭ 55 (+77.42%)
Mutual labels:  terraform-module
terraform-aws-cloudwatch-logs
Terraform Module to Provide a CloudWatch Logs Endpoint
Stars: ✭ 59 (+90.32%)
Mutual labels:  terraform-module
Autospotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,014 (+6396.77%)
Mutual labels:  terraform-module
terraform-aws-eks-jx
A Terraform module for creating Jenkins X infrastructure on AWS
Stars: ✭ 55 (+77.42%)
Mutual labels:  terraform-module
terraform-aws-bastion-ssm-iam
AWS Bastion server which can reside in the private subnet utilizing Systems Manager Sessions
Stars: ✭ 26 (-16.13%)
Mutual labels:  terraform-module
terraform-module-template
Template repo with Terraform module basics
Stars: ✭ 17 (-45.16%)
Mutual labels:  terraform-module
terraform-openstack-rke2
Deploy Kubernetes on OpenStack with RKE2
Stars: ✭ 38 (+22.58%)
Mutual labels:  terraform-module
terraform-aws-ecs-cloudwatch-sns-alarms
Terraform module to create CloudWatch Alarms on ECS Service level metrics.
Stars: ✭ 23 (-25.81%)
Mutual labels:  terraform-module
terraform-aws-eks-workers
Terraform module to provision an AWS AutoScaling Group, IAM Role, and Security Group for EKS Workers
Stars: ✭ 82 (+164.52%)
Mutual labels:  terraform-module
Terraform Aws Eks
Terraform module to create an Elastic Kubernetes (EKS) cluster and associated worker instances on AWS
Stars: ✭ 2,464 (+7848.39%)
Mutual labels:  terraform-module
Terraform Aws Vpc
Terraform module which creates VPC resources on AWS
Stars: ✭ 2,043 (+6490.32%)
Mutual labels:  terraform-module
terraform-aws-vpn-gateway
Terraform module which creates VPN gateway resources on AWS 🇺🇦
Stars: ✭ 101 (+225.81%)
Mutual labels:  terraform-module

Description

This module is a bit of a hack around the fact that AWS Chatbot managed to launch without API support (which means no native Terraform support) but does support configuration via Cloudformation. Behind the scenes this module is launching a Cloudformation stack on your behalf and managing things that way.

Usage

Basic Configuration

locals {
  chatbot_logging_level      = "INFO"
  chatbot_slack_workspace_id = "T024F6QTP"

  chatbot_tags = {
    Automation     = "Terraform + Cloudformation"
    Terraform      = true
    Cloudformation = true
  }
}

data "aws_iam_role" "chatbot" {
  name = "Wave__AwsChatBot"
}

data "aws_sns_topic" "serverless_sumologic_convox_scylla_pipeline_notifications" {
  name = "serverless-sumologic-convox-scylla-pipeline-notifications"
}

module "chatbot_slack_configuration" {
  source  = "waveaccounting/chatbot-slack-configuration/aws"
  version = "1.1.0"

  configuration_name = "config-name"
  iam_role_arn       = data.aws_iam_role.chatbot.arn
  slack_channel_id   = "ABCDEADF"
  slack_workspace_id = local.chatbot_slack_workspace_id

  sns_topic_arns = [
    data.aws_sns_topic.serverless_sumologic_convox_scylla_pipeline_notifications.arn,
  ]

  tags = local.chatbot_tags
}

Logging all events

module "chatbot_slack_configuration" {
  source  = "waveaccounting/chatbot-slack-configuration/aws"
  version = "1.1.0"

  configuration_name = "config-name"
  iam_role_arn       = data.aws_iam_role.chatbot.arn
  logging_level      = local.chatbot_logging_level
  slack_channel_id   = "ABCDEADF"
  slack_workspace_id = local.chatbot_slack_workspace_id

  sns_topic_arns = [
    data.aws_sns_topic.serverless_sumologic_convox_scylla_pipeline_notifications.arn,
  ]

  tags = local.chatbot_tags
}

Configuring channel guardrails and user role required

module "chatbot_slack_configuration" {
  source  = "waveaccounting/chatbot-slack-configuration/aws"
  version = "1.1.0"

  configuration_name = "config-name"
  iam_role_arn       = data.aws_iam_role.chatbot.arn
  logging_level      = local.chatbot_logging_level
  slack_channel_id   = "ABCDEADF"
  slack_workspace_id = local.chatbot_slack_workspace_id

  guardrail_policies = ["arn:aws:iam::aws:policy/ReadOnlyAccess"]
  user_role_required = true

  sns_topic_arns = [
    data.aws_sns_topic.serverless_sumologic_convox_scylla_pipeline_notifications.arn,
  ]

  tags = local.chatbot_tags
}

Requirements

Name Version
terraform >= 0.12

Providers

Name Version
aws n/a
local n/a

Inputs

Name Description Type Default Required
configuration_name The name of the configuration. any n/a yes
guardrail_policies The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. list(string)
[
"arn:aws:iam::aws:policy/AdministratorAccess"
]
no
iam_role_arn The ARN of the IAM role that defines the permissions for AWS Chatbot. This is a user-defined role that AWS Chatbot will assume. This is not the service-linked role. For more information, see IAM Policies for AWS Chatbot. any n/a yes
logging_level Specifies the logging level for this configuration. This property affects the log entries pushed to Amazon CloudWatch Logs. Logging levels include ERROR, INFO, or NONE. string "ERROR" no
slack_channel_id The ID of the Slack channel. To get the ID, open Slack, right click on the channel name in the left pane, then choose Copy Link. The channel ID is the 9-character string at the end of the URL. For example, ABCBBLZZZ. any n/a yes
slack_workspace_id The ID of the Slack workspace authorized with AWS Chatbot. To get the workspace ID, you must perform the initial authorization flow with Slack in the AWS Chatbot console. Then you can copy and paste the workspace ID from the console. For more details, see steps 1-4 in Setting Up AWS Chatbot with Slack in the AWS Chatbot User Guide. any n/a yes
sns_topic_arns The ARNs of the SNS topics that deliver notifications to AWS Chatbot. list(string) n/a yes
tags Additional tags (e.g. map('BusinessUnit','XYZ') map(string) {} no
user_role_required Enables use of a user role requirement in your chat configuration. bool false no

Outputs

Name Description
configuration_arn The ARN of the Chatbot Slack configuration
stack_id The unique identifier for the stack.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].