Skip to main content
Glama
i-dot-ai
by i-dot-ai
ecs.tf4.8 kB
locals { backend_port = 8080 additional_policy_arns = {for idx, arn in [aws_iam_policy.ecs_exec_custom_policy.arn] : idx => arn} } module "backend" { name = "${local.name}-backend" # checkov:skip=CKV_SECRET_4:Skip secret check as these have to be used within the Github Action # checkov:skip=CKV_TF_1: We're using semantic versions instead of commit hash #source = "../../i-dot-ai-core-terraform-modules//modules/infrastructure/ecs" # For testing local changes source = "git::https://github.com/i-dot-ai/i-dot-ai-core-terraform-modules.git//modules/infrastructure/ecs?ref=v5.0.0-ecs" image_tag = var.image_tag ecr_repository_uri = "${data.aws_caller_identity.current.account_id}.dkr.ecr.${var.region}.amazonaws.com/parliament-mcp-mcp_server" vpc_id = data.terraform_remote_state.vpc.outputs.vpc_id private_subnets = data.terraform_remote_state.vpc.outputs.private_subnets host = local.host_backend load_balancer_security_group = module.load_balancer.load_balancer_security_group_id aws_lb_arn = module.load_balancer.alb_arn ecs_cluster_id = data.terraform_remote_state.platform.outputs.ecs_cluster_id ecs_cluster_name = data.terraform_remote_state.platform.outputs.ecs_cluster_name task_additional_iam_policies = local.additional_policy_arns certificate_arn = data.terraform_remote_state.universal.outputs.certificate_arn target_group_name_override = "parliament-mcp-be-${var.env}-tg" permissions_boundary_name = "infra/i-dot-ai-${var.env}-parliament-mcp-perms-boundary-app" create_networking = true create_listener = true environment_variables = { "ENVIRONMENT" : terraform.workspace, "APP_NAME" : "${local.name}-backend" "PORT" : local.backend_port, "REPO" : "parliament-mcp", "AWS_ACCOUNT_ID": data.aws_caller_identity.current.account_id, "DOCKER_BUILDER_CONTAINER": "parliament-mcp", "AUTH_PROVIDER_PUBLIC_KEY": data.aws_ssm_parameter.auth_provider_public_key.value, # Qdrant connection via ALB hostname "QDRANT_HOST": local.host_qdrant, "QDRANT_PORT": "6333", } secrets = [ for k, v in aws_ssm_parameter.env_secrets : { name = regex("([^/]+$)", v.arn)[0], # Extract right-most string (param name) after the final slash valueFrom = v.arn } ] container_port = local.backend_port health_check = { accepted_response = 200 path = "/healthcheck" interval = 60 timeout = 70 healthy_threshold = 2 unhealthy_threshold = 5 port = local.backend_port } } module "sns_topic" { # checkov:skip=CKV_TF_1: We're using semantic versions instead of commit hash # source = "../../i-dot-ai-core-terraform-modules/modules/observability/cloudwatch-slack-integration" source = "git::https://github.com/i-dot-ai/i-dot-ai-core-terraform-modules.git//modules/observability/cloudwatch-slack-integration?ref=v2.0.1-cloudwatch-slack-integration" name = local.name slack_webhook = data.aws_secretsmanager_secret_version.platform_slack_webhook.secret_string permissions_boundary_name = "infra/i-dot-ai-${var.env}-parliament-mcp-perms-boundary-app" } module "backend-ecs-alarm" { # checkov:skip=CKV_TF_1: We're using semantic versions instead of commit hash # source = "../../i-dot-ai-core-terraform-modules/modules/observability/ecs-alarms" source = "git::https://github.com/i-dot-ai/i-dot-ai-core-terraform-modules.git//modules/observability/ecs-alarms?ref=v1.0.1-ecs-alarms" name = "${local.name}-backend" ecs_service_name = module.backend.ecs_service_name ecs_cluster_name = data.terraform_remote_state.platform.outputs.ecs_cluster_name sns_topic_arn = [module.sns_topic.sns_topic_arn] period = 120 evaluation_periods = 3 } module "backend-alb-alarm" { # checkov:skip=CKV_TF_1: We're using semantic versions instead of commit hash # source = "../../i-dot-ai-core-terraform-modules/modules/observability/alb-alarms" source = "git::https://github.com/i-dot-ai/i-dot-ai-core-terraform-modules.git//modules/observability/alb-alarms?ref=v1.0.0-alb-alarms" name = "${local.name}-backend" alb_arn = module.load_balancer.alb_arn target_group = module.backend.aws_lb_target_group_name sns_topic_arn = [module.sns_topic.sns_topic_arn] }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/i-dot-ai/parliament-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server