main.tf 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. locals {
  2. environment = "boundaries"
  3. aws_region = "eu-west-1"
  4. }
  5. resource "random_id" "random" {
  6. byte_length = 20
  7. }
  8. data "terraform_remote_state" "iam" {
  9. backend = "local"
  10. config = {
  11. path = "${path.module}/setup/terraform.tfstate"
  12. }
  13. }
  14. resource "aws_kms_key" "github" {
  15. is_enabled = true
  16. }
  17. resource "aws_kms_alias" "github" {
  18. name = "alias/github/action-runners"
  19. target_key_id = aws_kms_key.github.key_id
  20. }
  21. module "runners" {
  22. source = "../../"
  23. providers = {
  24. aws = aws.terraform_role
  25. }
  26. aws_region = local.aws_region
  27. vpc_id = module.vpc.vpc_id
  28. subnet_ids = module.vpc.private_subnets
  29. kms_key_arn = aws_kms_key.github.key_id
  30. prefix = local.environment
  31. tags = {
  32. Project = "ProjectX"
  33. }
  34. github_app = {
  35. key_base64 = var.github_app_key_base64
  36. id = var.github_app_id
  37. client_id = var.github_app_client_id
  38. client_secret = var.github_app_client_secret
  39. webhook_secret = random_id.random.hex
  40. }
  41. webhook_lambda_zip = "lambdas-download/webhook.zip"
  42. runner_binaries_syncer_lambda_zip = "lambdas-download/runner-binaries-syncer.zip"
  43. runners_lambda_zip = "lambdas-download/runners.zip"
  44. enable_organization_runners = false
  45. runner_extra_labels = "default,example"
  46. instance_profile_path = "/runners/"
  47. role_path = "/runners/"
  48. role_permissions_boundary = data.terraform_remote_state.iam.outputs.boundary
  49. }