From 5cc082a403acc523e11116edf926339408655342 Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Sun, 22 Dec 2024 13:45:21 +0100 Subject: [PATCH 01/12] creating TF code from the existing CFn template --- .gitignore | 2 + sys/terraform/.terraform.lock.hcl | 25 +++ sys/terraform/cloudwatch.tf | 27 +++ sys/terraform/data.tf | 3 + sys/terraform/ecs.tf | 262 ++++++++++++++++++++++++++++++ sys/terraform/elb.tf | 139 ++++++++++++++++ sys/terraform/iam.tf | 57 +++++++ sys/terraform/import.tf | 117 +++++++++++++ sys/terraform/main.tf | 24 +++ sys/terraform/redis.tf | 47 ++++++ sys/terraform/variables.tf | 138 ++++++++++++++++ 11 files changed, 841 insertions(+) create mode 100644 sys/terraform/.terraform.lock.hcl create mode 100644 sys/terraform/cloudwatch.tf create mode 100644 sys/terraform/data.tf create mode 100644 sys/terraform/ecs.tf create mode 100644 sys/terraform/elb.tf create mode 100644 sys/terraform/iam.tf create mode 100644 sys/terraform/import.tf create mode 100644 sys/terraform/main.tf create mode 100644 sys/terraform/redis.tf create mode 100644 sys/terraform/variables.tf diff --git a/.gitignore b/.gitignore index 7bc0a98f..bb02ef5e 100644 --- a/.gitignore +++ b/.gitignore @@ -45,4 +45,6 @@ sys/nginx/certs/ca-key.pem sys/nginx/certs/server.csr sys/nginx/certs/server.key sys/nginx/certs/server.pem +sys/terraform/.terraform +sys/terraform/terraform.tfvars ###< custom ### diff --git a/sys/terraform/.terraform.lock.hcl b/sys/terraform/.terraform.lock.hcl new file mode 100644 index 00000000..537023c6 --- /dev/null +++ b/sys/terraform/.terraform.lock.hcl @@ -0,0 +1,25 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/aws" { + version = "5.82.2" + constraints = "~> 5.0" + hashes = [ + "h1:RuPaHbllUB8a2TGTyc149wJfoh6zhIEjUvFYKR6iP2E=", + "zh:0262fc96012fb7e173e1b7beadd46dfc25b1dc7eaef95b90e936fc454724f1c8", + "zh:397413613d27f4f54d16efcbf4f0a43c059bd8d827fe34287522ae182a992f9b", + "zh:436c0c5d56e1da4f0a4c13129e12a0b519d12ab116aed52029b183f9806866f3", + "zh:4d942d173a2553d8d532a333a0482a090f4e82a2238acf135578f163b6e68470", + "zh:624aebc549bfbce06cc2ecfd8631932eb874ac7c10eb8466ce5b9a2fbdfdc724", + "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", + "zh:9e632dee2dfdf01b371cca7854b1ec63ceefa75790e619b0642b34d5514c6733", + "zh:a07567acb115b60a3df8f6048d12735b9b3bcf85ec92a62f77852e13d5a3c096", + "zh:ab7002df1a1be6432ac0eb1b9f6f0dd3db90973cd5b1b0b33d2dae54553dfbd7", + "zh:bc1ff65e2016b018b3e84db7249b2cd0433cb5c81dc81f9f6158f2197d6b9fde", + "zh:bcad84b1d767f87af6e1ba3dc97fdb8f2ad5de9224f192f1412b09aba798c0a8", + "zh:cf917dceaa0f9d55d9ff181b5dcc4d1e10af21b6671811b315ae2a6eda866a2a", + "zh:d8e90ecfb3216f3cc13ccde5a16da64307abb6e22453aed2ac3067bbf689313b", + "zh:d9054e0e40705df729682ad34c20db8695d57f182c65963abd151c6aba1ab0d3", + "zh:ecf3a4f3c57eb7e89f71b8559e2a71e4cdf94eea0118ec4f2cb37e4f4d71a069", + ] +} diff --git a/sys/terraform/cloudwatch.tf b/sys/terraform/cloudwatch.tf new file mode 100644 index 00000000..7e95f680 --- /dev/null +++ b/sys/terraform/cloudwatch.tf @@ -0,0 +1,27 @@ +# TODO: import dashboard + +resource "aws_cloudwatch_event_rule" "eventrulecontributorsupdate" { + name = "app-contributors-update" + schedule_expression = "rate(24 hours)" + state = "DISABLED" + // CF Property(Targets) = [ + // { + // Id = "phpfpm" + // Arn = aws_ecs_cluster.ecscluster.arn + // RoleArn = var.exec_role_arn + // Input = "{"containerOverrides":[{"name":"phpfpm","command":["./bin/console","app:contributors:update"]}]}" + // EcsParameters = { + // TaskDefinitionArn = aws_ecs_task_definition.ecstask.arn + // LaunchType = "FARGATE" + // NetworkConfiguration = { + // AwsVpcConfiguration = { + // SecurityGroups = [ + // aws_security_group.sgecs.arn + // ] + // Subnets = var.subnets + // } + // } + // } + // } + // ] +} diff --git a/sys/terraform/data.tf b/sys/terraform/data.tf new file mode 100644 index 00000000..eb58f218 --- /dev/null +++ b/sys/terraform/data.tf @@ -0,0 +1,3 @@ +data "aws_region" "current" {} + +data "aws_caller_identity" "current" {} diff --git a/sys/terraform/ecs.tf b/sys/terraform/ecs.tf new file mode 100644 index 00000000..3dd5c46a --- /dev/null +++ b/sys/terraform/ecs.tf @@ -0,0 +1,262 @@ +resource "aws_security_group" "sgecs" { + description = "${var.service_name}-ecs" + name = "${var.service_name}-ecs" + egress { + cidr_blocks = ["0.0.0.0/0"] + protocol = "-1" + from_port = 0 + to_port = 0 + } + vpc_id = var.vpc_id + tags = { + env = var.service_name + } +} + +resource "aws_security_group_rule" "sgecs_ingress_http" { + type = "ingress" + security_group_id = aws_security_group.sgecs.id + cidr_blocks = ["0.0.0.0/0"] + from_port = 80 + protocol = "tcp" + to_port = 80 +} +resource "aws_security_group_rule" "sgecs_ingress_https" { + type = "ingress" + security_group_id = aws_security_group.sgecs.id + cidr_blocks = ["0.0.0.0/0"] + from_port = 443 + protocol = "tcp" + to_port = 443 +} + +resource "aws_cloudwatch_log_group" "cloudwatchloggroup" { + name = "${var.service_name}-logs" + retention_in_days = 14 +} + +resource "aws_ecs_cluster" "ecscluster" { + name = "${var.service_name}-cluster-${var.environment}" + // CF Property(CapacityProviders) = [ + // "FARGATE", + // "FARGATE_SPOT" + // ] + setting { + name = "containerInsights" + value = "disabled" + } + tags = { + env = var.service_name + } +} + +resource "aws_ecs_service" "ecsservice" { + cluster = aws_ecs_cluster.ecscluster.arn + desired_count = 1 + health_check_grace_period_seconds = 15 + # launch_type = "FARGATE" + + + capacity_provider_strategy { + base = 0 + capacity_provider = "FARGATE_SPOT" + weight = 2 + } + capacity_provider_strategy { + base = 1 + capacity_provider = "FARGATE" + weight = 1 + } + + load_balancer { + container_name = "nginx" + container_port = 80 + target_group_arn = aws_lb_target_group.elbtargetgroup.id + } + name = var.service_name + task_definition = "${var.service_name}:${aws_ecs_task_definition.ecstask.revision}" + network_configuration { + assign_public_ip = true + security_groups = [aws_security_group.sgecs.id] + subnets = var.subnets + } + tags = { + env = var.service_name + } +} + +resource "aws_ecs_task_definition" "ecstask" { + execution_role_arn = var.exec_role_arn + container_definitions = jsonencode([ + { + name = "phpfpm" + portMappings = [ + { + hostPort = 9000 + protocol = "tcp" + containerPort = 9000 + } + ] + command = [] + credentialSpecs = [] + dnsSearchDomains = [] + dnsServers = [] + dockerLabels = {} + dockerSecurityOptions = [] + entryPoint = [] + environment = [ + { + name = "APP_ENV" + value = var.env_appenv + }, + { + name = "APP_DEBUG" + value = var.env_appdebug + }, + { + name = "APP_SECRET" + value = var.env_appsecret + }, + { + name = "APP_XDEBUG" + value = var.env_appxdebug + }, + { + name = "APP_XDEBUG_HOST" + value = var.env_appxdebughost + }, + { + name = "REDIS_HOST" + value = var.env_redishost + }, + { + name = "GITHUB_AUTH_METHOD" + value = var.env_githubauthmethod + }, + { + name = "GITHUB_USERNAME" + value = var.env_githubusername + }, + { + name = "GITHUB_SECRET" + value = var.env_githubsecret + }, + { + name = "CIRCLE_CI_TOKEN" + value = var.env_circlecitoken + }, + { + name = "SENTRY_DSN" + value = var.env_sentrydsn + }, + { + name = "BITBUCKET_AUTH_METHOD" + value = var.env_bitbucketauthmethod + }, + { + name = "BITBUCKET_SECRET" + value = var.env_bitbucketsecret + }, + { + name = "BITBUCKET_TOKEN" + value = var.env_bitbuckettoken + }, + { + name = "TRUSTED_PROXIES" + value = var.env_trustedproxies + }, + { + name = "GITLAB_TOKEN" + value = var.env_gitlabtoken + } + ] + image = "${data.aws_caller_identity.current.account_id}.dkr.ecr.${data.aws_region.current.name}.amazonaws.com/${var.service_name}:phpfpm-${var.ecr_image_tag_php}" + essential = true + environmentFiles = [] + extraHosts = [] + links = [] + mountPoints = [] + secrets = [] + systemControls = [] + ulimits = [] + volumesFrom = [] + logConfiguration = { + logDriver = "awslogs" + options = { + awslogs-group = aws_cloudwatch_log_group.cloudwatchloggroup.name + awslogs-region = data.aws_region.current.name + awslogs-stream-prefix = "${var.service_name}-phpfpm" + } + secretOptions = [] + } + }, + { + name = "nginx" + + dependsOn = [ + { + + condition = "START" + containerName = "phpfpm" + } + ] + command = [] + credentialSpecs = [] + dnsSearchDomains = [] + dnsServers = [] + dockerLabels = {} + dockerSecurityOptions = [] + entryPoint = [] + portMappings = [ + { + hostPort = 80 + protocol = "tcp" + containerPort = 80 + } + ] + environment = [ + { + name = "PHPFPM_HOST" + value = var.env_phpfpmhost + }, + { + name = "REDIS_HOST" + value = var.env_redishost + }, + { + name = "RESOLVER_IP" + value = var.env_resolverip + } + ] + image = "${data.aws_caller_identity.current.account_id}.dkr.ecr.${data.aws_region.current.name}.amazonaws.com/${var.service_name}:nginx-${var.ecr_image_tag_nginx}" + essential = true + environmentFiles = [] + extraHosts = [] + links = [] + mountPoints = [] + secrets = [] + systemControls = [] + ulimits = [] + volumesFrom = [] + logConfiguration = { + logDriver = "awslogs" + options = { + awslogs-group = aws_cloudwatch_log_group.cloudwatchloggroup.name + awslogs-region = data.aws_region.current.name + awslogs-stream-prefix = "${var.service_name}-nginx" + } + secretOptions = [] + } + } + ]) + memory = "2048" + family = var.service_name + requires_compatibilities = [ + "FARGATE" + ] + network_mode = "awsvpc" + cpu = "1024" + tags = { + env = var.service_name + } +} diff --git a/sys/terraform/elb.tf b/sys/terraform/elb.tf new file mode 100644 index 00000000..20997a77 --- /dev/null +++ b/sys/terraform/elb.tf @@ -0,0 +1,139 @@ +resource "aws_security_group" "sgelb" { + description = "${var.service_name}-elb" + name = "${var.service_name}-elb" + egress { + cidr_blocks = ["0.0.0.0/0"] + protocol = "-1" + from_port = 0 + to_port = 0 + } + vpc_id = var.vpc_id + tags = { + env = var.service_name + } +} + +resource "aws_security_group_rule" "sgelb_ingress_http" { + type = "ingress" + security_group_id = aws_security_group.sgelb.id + cidr_blocks = ["0.0.0.0/0"] + from_port = 80 + protocol = "tcp" + to_port = 80 +} +resource "aws_security_group_rule" "sgelb_ingress_https" { + type = "ingress" + security_group_id = aws_security_group.sgelb.id + cidr_blocks = ["0.0.0.0/0"] + from_port = 443 + protocol = "tcp" + to_port = 443 +} + +resource "aws_lb_target_group" "elbtargetgroup" { + name = "badegposer" + port = 80 + protocol = "HTTP" + vpc_id = var.vpc_id + target_type = "ip" + tags = { + "env" = "badge-poser" + } + tags_all = { + "env" = "badge-poser" + } +} + +resource "aws_lb" "elb" { + name = "${var.service_name}-elb" + subnets = var.subnets + // CF Property(SecurityGroups) = [ + // aws_security_group.sgelb.arn + // ] + // CF Property(tags) = { + // env = var.service_name + // } + tags = { + "env" = "badge-poser" + } + tags_all = { + "env" = "badge-poser" + } +} + +resource "aws_lb_listener" "elblistener80" { + load_balancer_arn = aws_lb.elb.arn + port = 80 + // CF Property(Protocol) = "HTTP" + default_action { + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "AWS is a teapot" + status_code = "418" + } + } +} + +resource "aws_lb_listener" "elblistener443" { + load_balancer_arn = aws_lb.elb.arn + certificate_arn = "arn:aws:acm:eu-west-1:478389220392:certificate/2225440f-8847-4834-a90b-4b81a0105955" + port = 443 + default_action { + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "https teapot" + status_code = "418" + } + } +} + +resource "aws_appautoscaling_target" "asscalabletarget" { + max_capacity = 1 + min_capacity = 1 + resource_id = "service/${var.service_name}-cluster-${var.environment}/${var.service_name}" + role_arn = var.exec_role_arn + scalable_dimension = "ecs:service:DesiredCount" + service_namespace = "ecs" +} + +resource "aws_lb_listener_rule" "elblistenerrule80" { + listener_arn = aws_lb_listener.elblistener80.arn + action { + type = "fixed-response" + fixed_response { + content_type = "text/plain" + message_body = "AWS is a teapot" + status_code = "418" + } + } + condition {} +} + +resource "aws_lb_listener_rule" "elblistenerrule443" { + listener_arn = aws_lb_listener.elblistener443.arn + action { + type = "forward" + target_group_arn = aws_lb_target_group.elbtargetgroup.arn + + forward { + target_group { + arn = aws_lb_target_group.elbtargetgroup.arn + weight = 1 + } + } + } + condition { + host_header { + values = [ + "poser.pugx.org", + ] + } + } + condition { + path_pattern { + values = ["/*"] + } + } +} diff --git a/sys/terraform/iam.tf b/sys/terraform/iam.tf new file mode 100644 index 00000000..d62acebe --- /dev/null +++ b/sys/terraform/iam.tf @@ -0,0 +1,57 @@ +resource "aws_iam_user" "iamusergithubactions" { + // CF Property(Policies) = [ + // { + // PolicyName = "GitHubActionsDeploy" + // PolicyDocument = { + // Version = "2012-10-17" + // Statement = [ + // { + // Sid = "GitHubActionsDeploy" + // Effect = "Allow" + // Action = [ + // "cloudformation:CreateChangeSet", + // "sts:GetCallerIdentity" + // ] + // Resource = [ + // "arn:aws:ecr:eu-west-1:*:repository/badge-poser", + // "arn:aws:cloudformation:eu-west-1:*:stack/poser-ecs/6ad34900-d679-11ea-a884-0a9b71aae734" + // ] + // }, + // { + // Sid = "GitHubActionsDeployECR" + // Effect = "Allow" + // Action = [ + // "ecr:BatchCheckLayerAvailability", + // "ecr:BatchGetImage", + // "ecr:CompleteLayerUpload", + // "ecr:DescribeImages", + // "ecr:DescribeRepositories", + // "ecr:GetDownloadUrlForLayer", + // "ecr:InitiateLayerUpload", + // "ecr:ListImages", + // "ecr:PutImage", + // "ecr:UploadLayerPart" + // ] + // Resource = "arn:aws:ecr:eu-west-1:*:repository/badge-poser" + // }, + // { + // Sid = "GitHubActionsDeployECRToken" + // Effect = "Allow" + // Action = [ + // "ecr:GetAuthorizationToken" + // ] + // Resource = "*" + // } + // ] + // } + // } + // ] + name = "github_action_deploy" + tags = { + env = var.service_name + } +} + +resource "aws_iam_access_key" "iamkey" { + user = aws_iam_user.iamusergithubactions.name +} diff --git a/sys/terraform/import.tf b/sys/terraform/import.tf new file mode 100644 index 00000000..638b0059 --- /dev/null +++ b/sys/terraform/import.tf @@ -0,0 +1,117 @@ +import { + to = aws_cloudwatch_event_rule.eventrulecontributorsupdate + id = "default/app-contributors-update" +} + +import { + to = aws_security_group.sgecs + id = "sg-06c2c1b1e7d48f166" +} + +import { + to = aws_cloudwatch_log_group.cloudwatchloggroup + id = "badge-poser-logs" +} + +import { + to = aws_ecs_cluster.ecscluster + id = "badge-poser-cluster-prod" +} + +import { + to = aws_ecs_service.ecsservice + id = "badge-poser-cluster-prod/badge-poser" +} + +import { + to = aws_ecs_task_definition.ecstask + id = "arn:aws:ecs:eu-west-1:478389220392:task-definition/badge-poser:138" +} + +import { + to = aws_security_group.sgelb + id = "sg-039400b411ff60301" +} + +import { + to = aws_iam_user.iamusergithubactions + id = "github_action_deploy" +} + +import { + to = aws_iam_access_key.iamkey + id = "" +} + +import { + to = aws_security_group.sgredis + id = "sg-09ad9402145d8eb17" +} + +import { + to = aws_elasticache_cluster.rediscluster + id = "poser-stats" +} + +import { + to = aws_elasticache_subnet_group.redissubnet + id = "poser-subnet" +} + +import { + to = aws_lb_target_group.elbtargetgroup + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:targetgroup/badegposer/d24c3e0c7d0276d3" +} + +import { + to = aws_security_group_rule.sgelb_ingress_http + id = "sg-039400b411ff60301_ingress_tcp_80_80_0.0.0.0/0" +} + +import { + to = aws_security_group_rule.sgelb_ingress_https + id = "sg-039400b411ff60301_ingress_tcp_443_443_0.0.0.0/0" +} + +import { + to = aws_security_group_rule.sgredis_ingress_redis + id = "sg-09ad9402145d8eb17_ingress_tcp_6379_6379_0.0.0.0/0" +} + +import { + to = aws_security_group_rule.sgecs_ingress_http + id = "sg-06c2c1b1e7d48f166_ingress_tcp_80_80_0.0.0.0/0" +} + +import { + to = aws_security_group_rule.sgecs_ingress_https + id = "sg-06c2c1b1e7d48f166_ingress_tcp_443_443_0.0.0.0/0" +} + + +import { + to = aws_lb.elb + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:loadbalancer/app/badge-poser-elb/81d698b74f86c6b9" +} + +import { + to = aws_lb_listener.elblistener80 + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener/app/badge-poser-elb/81d698b74f86c6b9/cff7a4a219047f82" +} + +import { + to = aws_lb_listener.elblistener443 + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener/app/badge-poser-elb/81d698b74f86c6b9/fc943ccbe12b086f" +} + + +import { + to = aws_lb_listener_rule.elblistenerrule80 + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener-rule/app/badge-poser-elb/81d698b74f86c6b9/cff7a4a219047f82/23a572ed933cc547" +} + + +import { + to = aws_lb_listener_rule.elblistenerrule443 + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener-rule/app/badge-poser-elb/81d698b74f86c6b9/fc943ccbe12b086f/57de0169e306c96e" +} diff --git a/sys/terraform/main.tf b/sys/terraform/main.tf new file mode 100644 index 00000000..f28f0134 --- /dev/null +++ b/sys/terraform/main.tf @@ -0,0 +1,24 @@ +locals { + mappings = { + } + stack_name = "stack" +} + +terraform { + required_providers { + aws = { + source = "hashicorp/aws" + version = "~> 5.0" + } + } + + # backend "s3" { + # bucket = "mybucket" + # key = "prod.tf" + # region = "eu-west-1" + # } +} + +provider "aws" { + profile = "poser" +} diff --git a/sys/terraform/redis.tf b/sys/terraform/redis.tf new file mode 100644 index 00000000..64184f84 --- /dev/null +++ b/sys/terraform/redis.tf @@ -0,0 +1,47 @@ +resource "aws_security_group" "sgredis" { + description = "${var.service_name}-redis" + name = "${var.service_name}-redis" + egress { + cidr_blocks = ["0.0.0.0/0"] + protocol = "-1" + from_port = 0 + to_port = 0 + } + vpc_id = var.vpc_id + tags = { + env = var.service_name + } +} + +resource "aws_security_group_rule" "sgredis_ingress_redis" { + type = "ingress" + security_group_id = aws_security_group.sgredis.id + cidr_blocks = ["0.0.0.0/0"] + from_port = 6379 + protocol = "tcp" + to_port = 6379 +} + +resource "aws_elasticache_cluster" "rediscluster" { + cluster_id = "poser-stats" + auto_minor_version_upgrade = true + node_type = "cache.t4g.micro" + subnet_group_name = aws_elasticache_subnet_group.redissubnet.id + engine = "redis" + engine_version = "7.0" + security_group_ids = [aws_security_group.sgredis.id] + snapshot_retention_limit = 1 + transit_encryption_enabled = false + tags = { + "env" = "badge-poser" + } + tags_all = { + "env" = "badge-poser" + } +} + +resource "aws_elasticache_subnet_group" "redissubnet" { + name = "poser-subnet" + description = "poser-subnet" + subnet_ids = var.subnets +} diff --git a/sys/terraform/variables.tf b/sys/terraform/variables.tf new file mode 100644 index 00000000..5ac1b89f --- /dev/null +++ b/sys/terraform/variables.tf @@ -0,0 +1,138 @@ +variable "ecr_image_tag_nginx" { + description = "Specifies the ECR Image Tag for nginx container." + type = string +} + +variable "ecr_image_tag_php" { + description = "Specifies the ECR Image Tag for PHP-FPM container." + type = string +} + +variable "elb_certificate_arn" { + description = "Specifies the ARN of the Certificate." + type = string +} + +variable "environment" { + description = "The Environment" + type = string +} + +variable "exec_role_arn" { + description = "Specifies the ARN of the Execution Role for ECS." + type = string +} + +variable "service_name" { + description = "The name of the service being created. It identifies all the resources related to it." + type = string + default = "badge-poser" +} + +variable "subnets" { + description = "Specifies the ID of Subnets belongin to the correct VPC." + type = list(string) +} + +variable "vpc_id" { + description = "Specifies the ID of an existing VPC in which to launch your container instances." + type = string +} + +variable "env_appdebug" { + description = "Environment variable for APP_DEBUG" + type = string + default = "0" +} + +variable "env_appenv" { + description = "Environment variable for APP_ENV" + type = string + default = "prod" +} + +variable "env_appsecret" { + description = "Environment variable for APP_SECRET" + type = string +} + +variable "env_appxdebug" { + description = "Environment variable for APP_XDEBUG" + type = string + default = "0" +} + +variable "env_appxdebughost" { + description = "Environment variable for APP_XDEBUG_HOST" + type = string +} + +variable "env_bitbucketauthmethod" { + description = "Environment variable for BITBUCKET_AUTH_METHOD" + type = string + default = "http_password" +} + +variable "env_bitbucketsecret" { + description = "Environment variable for BITBUCKET_SECRET" + type = string +} + +variable "env_bitbuckettoken" { + description = "Environment variable for BITBUCKET_TOKEN" + type = string +} + +variable "env_circlecitoken" { + description = "Environment variable for CIRCLE_CI_TOKEN" + type = string +} + +variable "env_githubauthmethod" { + description = "Environment variable for GITHUB_AUTH_METHOD" + type = string + default = "access_token_header" +} + +variable "env_githubsecret" { + description = "Environment variable for GITHUB_SECRET" + type = string +} + +variable "env_githubusername" { + description = "Environment variable for GITHUB_USERNAME" + type = string +} + +variable "env_redishost" { + description = "Environment variable for REDIS_HOST" + type = string +} + +variable "env_phpfpmhost" { + description = "Environment variable for PHPFPM_HOST" + type = string + default = "127.0.0.1" +} + +variable "env_resolverip" { + description = "Environment variable for RESOLVER_IP" + type = string + default = "169.254.169.253" +} + +variable "env_sentrydsn" { + description = "Environment variable for SENTRY_DSN" + type = string +} + +variable "env_trustedproxies" { + description = "Environment variable for TRUSTED_PROXIES" + type = string + default = "REMOTE_ADDR" +} + +variable "env_gitlabtoken" { + description = "Environment variable for GITLAB_TOKEN" + type = string +} From c597379bad0d6dcb8eff99299fde707ff7916a23 Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Mon, 23 Dec 2024 19:36:02 +0100 Subject: [PATCH 02/12] refactoring --- sys/terraform/ecs.tf | 203 ++++--------------------- sys/terraform/ecs/task-definition.json | 159 +++++++++++++++++++ sys/terraform/elb.tf | 28 +--- sys/terraform/iam.tf | 88 +++++------ sys/terraform/import.tf | 101 ++++++------ sys/terraform/main.tf | 5 + sys/terraform/redis.tf | 9 -- 7 files changed, 277 insertions(+), 316 deletions(-) create mode 100644 sys/terraform/ecs/task-definition.json diff --git a/sys/terraform/ecs.tf b/sys/terraform/ecs.tf index 3dd5c46a..f1bc0646 100644 --- a/sys/terraform/ecs.tf +++ b/sys/terraform/ecs.tf @@ -8,9 +8,6 @@ resource "aws_security_group" "sgecs" { to_port = 0 } vpc_id = var.vpc_id - tags = { - env = var.service_name - } } resource "aws_security_group_rule" "sgecs_ingress_http" { @@ -45,17 +42,12 @@ resource "aws_ecs_cluster" "ecscluster" { name = "containerInsights" value = "disabled" } - tags = { - env = var.service_name - } } resource "aws_ecs_service" "ecsservice" { cluster = aws_ecs_cluster.ecscluster.arn desired_count = 1 health_check_grace_period_seconds = 15 - # launch_type = "FARGATE" - capacity_provider_strategy { base = 0 @@ -80,175 +72,37 @@ resource "aws_ecs_service" "ecsservice" { security_groups = [aws_security_group.sgecs.id] subnets = var.subnets } - tags = { - env = var.service_name - } } resource "aws_ecs_task_definition" "ecstask" { execution_role_arn = var.exec_role_arn - container_definitions = jsonencode([ - { - name = "phpfpm" - portMappings = [ - { - hostPort = 9000 - protocol = "tcp" - containerPort = 9000 - } - ] - command = [] - credentialSpecs = [] - dnsSearchDomains = [] - dnsServers = [] - dockerLabels = {} - dockerSecurityOptions = [] - entryPoint = [] - environment = [ - { - name = "APP_ENV" - value = var.env_appenv - }, - { - name = "APP_DEBUG" - value = var.env_appdebug - }, - { - name = "APP_SECRET" - value = var.env_appsecret - }, - { - name = "APP_XDEBUG" - value = var.env_appxdebug - }, - { - name = "APP_XDEBUG_HOST" - value = var.env_appxdebughost - }, - { - name = "REDIS_HOST" - value = var.env_redishost - }, - { - name = "GITHUB_AUTH_METHOD" - value = var.env_githubauthmethod - }, - { - name = "GITHUB_USERNAME" - value = var.env_githubusername - }, - { - name = "GITHUB_SECRET" - value = var.env_githubsecret - }, - { - name = "CIRCLE_CI_TOKEN" - value = var.env_circlecitoken - }, - { - name = "SENTRY_DSN" - value = var.env_sentrydsn - }, - { - name = "BITBUCKET_AUTH_METHOD" - value = var.env_bitbucketauthmethod - }, - { - name = "BITBUCKET_SECRET" - value = var.env_bitbucketsecret - }, - { - name = "BITBUCKET_TOKEN" - value = var.env_bitbuckettoken - }, - { - name = "TRUSTED_PROXIES" - value = var.env_trustedproxies - }, - { - name = "GITLAB_TOKEN" - value = var.env_gitlabtoken - } - ] - image = "${data.aws_caller_identity.current.account_id}.dkr.ecr.${data.aws_region.current.name}.amazonaws.com/${var.service_name}:phpfpm-${var.ecr_image_tag_php}" - essential = true - environmentFiles = [] - extraHosts = [] - links = [] - mountPoints = [] - secrets = [] - systemControls = [] - ulimits = [] - volumesFrom = [] - logConfiguration = { - logDriver = "awslogs" - options = { - awslogs-group = aws_cloudwatch_log_group.cloudwatchloggroup.name - awslogs-region = data.aws_region.current.name - awslogs-stream-prefix = "${var.service_name}-phpfpm" - } - secretOptions = [] - } - }, - { - name = "nginx" - - dependsOn = [ - { - - condition = "START" - containerName = "phpfpm" - } - ] - command = [] - credentialSpecs = [] - dnsSearchDomains = [] - dnsServers = [] - dockerLabels = {} - dockerSecurityOptions = [] - entryPoint = [] - portMappings = [ - { - hostPort = 80 - protocol = "tcp" - containerPort = 80 - } - ] - environment = [ - { - name = "PHPFPM_HOST" - value = var.env_phpfpmhost - }, - { - name = "REDIS_HOST" - value = var.env_redishost - }, - { - name = "RESOLVER_IP" - value = var.env_resolverip - } - ] - image = "${data.aws_caller_identity.current.account_id}.dkr.ecr.${data.aws_region.current.name}.amazonaws.com/${var.service_name}:nginx-${var.ecr_image_tag_nginx}" - essential = true - environmentFiles = [] - extraHosts = [] - links = [] - mountPoints = [] - secrets = [] - systemControls = [] - ulimits = [] - volumesFrom = [] - logConfiguration = { - logDriver = "awslogs" - options = { - awslogs-group = aws_cloudwatch_log_group.cloudwatchloggroup.name - awslogs-region = data.aws_region.current.name - awslogs-stream-prefix = "${var.service_name}-nginx" - } - secretOptions = [] - } - } - ]) + container_definitions = templatefile("ecs/task-definition.json", { + account_id = data.aws_caller_identity.current.account_id + aws_region = data.aws_region.current.name + service_name = var.service_name + ecr_image_tag_nginx = var.ecr_image_tag_nginx + ecr_image_tag_php = var.ecr_image_tag_php + cloudwatchloggroup = aws_cloudwatch_log_group.cloudwatchloggroup.name + env_appdebug = var.env_appdebug + env_appenv = var.env_appenv + env_appsecret = var.env_appsecret + env_appxdebug = var.env_appxdebug + env_appxdebughost = var.env_appxdebughost + env_bitbucketauthmethod = var.env_bitbucketauthmethod + env_bitbucketsecret = var.env_bitbucketsecret + env_bitbuckettoken = var.env_bitbuckettoken + env_circlecitoken = var.env_circlecitoken + env_githubauthmethod = var.env_githubauthmethod + env_githubsecret = var.env_githubsecret + env_githubusername = var.env_githubusername + env_gitlabtoken = var.env_gitlabtoken + env_phpfpmhost = var.env_phpfpmhost + env_redishost = var.env_redishost + env_redishost = var.env_redishost + env_resolverip = var.env_resolverip + env_sentrydsn = var.env_sentrydsn + env_trustedproxies = var.env_trustedproxies + }) memory = "2048" family = var.service_name requires_compatibilities = [ @@ -256,7 +110,4 @@ resource "aws_ecs_task_definition" "ecstask" { ] network_mode = "awsvpc" cpu = "1024" - tags = { - env = var.service_name - } } diff --git a/sys/terraform/ecs/task-definition.json b/sys/terraform/ecs/task-definition.json new file mode 100644 index 00000000..85e4e239 --- /dev/null +++ b/sys/terraform/ecs/task-definition.json @@ -0,0 +1,159 @@ +[{ + "name": "phpfpm", + "portMappings": [ + { + "hostPort": 9000, + "protocol": "tcp", + "containerPort": 9000 + } + ], + "command": [], + "credentialSpecs": [], + "dnsSearchDomains": [], + "dnsServers": [], + "dockerLabels": {}, + "dockerSecurityOptions": [], + "entryPoint": [], + "environment": [ + { + "name": "APP_ENV", + "value": "${env_appenv}" + }, + { + "name": "APP_DEBUG", + "value": "${env_appdebug}" + }, + { + "name": "APP_SECRET", + "value": "${env_appsecret}" + }, + { + "name": "APP_XDEBUG", + "value": "${env_appxdebug}" + }, + { + "name": "APP_XDEBUG_HOST", + "value": "${env_appxdebughost}" + }, + { + "name": "REDIS_HOST", + "value": "${env_redishost}" + }, + { + "name": "GITHUB_AUTH_METHOD", + "value": "${env_githubauthmethod}" + }, + { + "name": "GITHUB_USERNAME", + "value": "${env_githubusername}" + }, + { + "name": "GITHUB_SECRET", + "value": "${env_githubsecret}" + }, + { + "name": "CIRCLE_CI_TOKEN", + "value": "${env_circlecitoken}" + }, + { + "name": "SENTRY_DSN", + "value": "${env_sentrydsn}" + }, + { + "name": "BITBUCKET_AUTH_METHOD", + "value": "${env_bitbucketauthmethod}" + }, + { + "name": "BITBUCKET_SECRET", + "value": "${env_bitbucketsecret}" + }, + { + "name": "BITBUCKET_TOKEN", + "value": "${env_bitbuckettoken}" + }, + { + "name": "TRUSTED_PROXIES", + "value": "${env_trustedproxies}" + }, + { + "name": "GITLAB_TOKEN", + "value": "${env_gitlabtoken}" + } + ], + "image": "${account_id}.dkr.ecr.${aws_region}.amazonaws.com/${service_name}:phpfpm-${ecr_image_tag_php}", + "essential": true, + "environmentFiles": [], + "extraHosts": [], + "links": [], + "mountPoints": [], + "secrets": [], + "systemControls": [], + "ulimits": [], + "volumesFrom": [], + "logConfiguration": { + "logDriver": "awslogs", + "options": { + "awslogs-group": "${cloudwatchloggroup}", + "awslogs-region": "${aws_region}", + "awslogs-stream-prefix": "${service_name}-phpfpm" + }, + "secretOptions": [] + } +}, +{ + "name": "nginx", + "dependsOn": [ + { + "condition": "START", + "containerName": "phpfpm" + } + ], + "command": [], + "credentialSpecs": [], + "dnsSearchDomains": [], + "dnsServers": [], + "dockerLabels": {}, + "dockerSecurityOptions": [], + "entryPoint": [], + "portMappings": [ + { + "hostPort": 80, + "protocol": "tcp", + "containerPort": 80 + } + ], + "environment": [ + { + "name": "PHPFPM_HOST", + "value": "${env_phpfpmhost}" + }, + { + "name": "REDIS_HOST", + "value": "${env_redishost}" + }, + { + "name": "RESOLVER_IP", + "value": "${env_resolverip}" + } + ], + "image": "${account_id}.dkr.ecr.${aws_region}.amazonaws.com/${service_name}:nginx-${ecr_image_tag_nginx}", + "essential": true, + "environmentFiles": [], + "extraHosts": [], + "links": [], + "mountPoints": [], + "secrets": [], + "systemControls": [], + "ulimits": [], + "volumesFrom": [], + "logConfiguration": { + "logDriver": "awslogs", + "options": { + "awslogs-group": "${cloudwatchloggroup}", + "awslogs-region": "${aws_region}", + "awslogs-stream-prefix": "${service_name}-nginx" + }, + "secretOptions": [] + } +} +] diff --git a/sys/terraform/elb.tf b/sys/terraform/elb.tf index 20997a77..fc197e8a 100644 --- a/sys/terraform/elb.tf +++ b/sys/terraform/elb.tf @@ -8,9 +8,6 @@ resource "aws_security_group" "sgelb" { to_port = 0 } vpc_id = var.vpc_id - tags = { - env = var.service_name - } } resource "aws_security_group_rule" "sgelb_ingress_http" { @@ -36,35 +33,18 @@ resource "aws_lb_target_group" "elbtargetgroup" { protocol = "HTTP" vpc_id = var.vpc_id target_type = "ip" - tags = { - "env" = "badge-poser" - } - tags_all = { - "env" = "badge-poser" - } } resource "aws_lb" "elb" { - name = "${var.service_name}-elb" - subnets = var.subnets - // CF Property(SecurityGroups) = [ - // aws_security_group.sgelb.arn - // ] - // CF Property(tags) = { - // env = var.service_name - // } - tags = { - "env" = "badge-poser" - } - tags_all = { - "env" = "badge-poser" - } + name = "${var.service_name}-elb" + subnets = var.subnets + security_groups = [aws_security_group.sgelb.name] } resource "aws_lb_listener" "elblistener80" { load_balancer_arn = aws_lb.elb.arn port = 80 - // CF Property(Protocol) = "HTTP" + protocol = "HTTP" default_action { type = "fixed-response" fixed_response { diff --git a/sys/terraform/iam.tf b/sys/terraform/iam.tf index d62acebe..22b54024 100644 --- a/sys/terraform/iam.tf +++ b/sys/terraform/iam.tf @@ -1,55 +1,43 @@ +data "aws_iam_policy_document" "iamusergithubactions" { + statement { + sid = "GitHubActionsDeploy" + effect = "Allow" + actions = ["cloudformation:CreateChangeSet", "sts:GetCallerIdentity"] + resources = ["arn:aws:ecr:eu-west-1:*:repository/badge-poser", "arn:aws:cloudformation:eu-west-1:*:stack/poser-ecs/6ad34900-d679-11ea-a884-0a9b71aae734"] + } + statement { + sid = "GitHubActionsDeployECR" + effect = "Allow" + actions = [ + "ecr:BatchCheckLayerAvailability", + "ecr:BatchGetImage", + "ecr:CompleteLayerUpload", + "ecr:DescribeImages", + "ecr:DescribeRepositories", + "ecr:GetDownloadUrlForLayer", + "ecr:InitiateLayerUpload", + "ecr:ListImages", + "ecr:PutImage", + "ecr:UploadLayerPart" + ] + resources = ["arn:aws:ecr:eu-west-1:*:repository/badge-poser"] + } + statement { + sid = "GitHubActionsDeployECRToken" + effect = "Allow" + actions = ["ecr:GetAuthorizationToken"] + resources = ["*"] + } +} + +resource "aws_iam_user_policy" "lb_ro" { + name = "GitHubActionsDeploy" + user = aws_iam_user.iamusergithubactions.name + policy = data.aws_iam_policy_document.iamusergithubactions.json +} + resource "aws_iam_user" "iamusergithubactions" { - // CF Property(Policies) = [ - // { - // PolicyName = "GitHubActionsDeploy" - // PolicyDocument = { - // Version = "2012-10-17" - // Statement = [ - // { - // Sid = "GitHubActionsDeploy" - // Effect = "Allow" - // Action = [ - // "cloudformation:CreateChangeSet", - // "sts:GetCallerIdentity" - // ] - // Resource = [ - // "arn:aws:ecr:eu-west-1:*:repository/badge-poser", - // "arn:aws:cloudformation:eu-west-1:*:stack/poser-ecs/6ad34900-d679-11ea-a884-0a9b71aae734" - // ] - // }, - // { - // Sid = "GitHubActionsDeployECR" - // Effect = "Allow" - // Action = [ - // "ecr:BatchCheckLayerAvailability", - // "ecr:BatchGetImage", - // "ecr:CompleteLayerUpload", - // "ecr:DescribeImages", - // "ecr:DescribeRepositories", - // "ecr:GetDownloadUrlForLayer", - // "ecr:InitiateLayerUpload", - // "ecr:ListImages", - // "ecr:PutImage", - // "ecr:UploadLayerPart" - // ] - // Resource = "arn:aws:ecr:eu-west-1:*:repository/badge-poser" - // }, - // { - // Sid = "GitHubActionsDeployECRToken" - // Effect = "Allow" - // Action = [ - // "ecr:GetAuthorizationToken" - // ] - // Resource = "*" - // } - // ] - // } - // } - // ] name = "github_action_deploy" - tags = { - env = var.service_name - } } resource "aws_iam_access_key" "iamkey" { diff --git a/sys/terraform/import.tf b/sys/terraform/import.tf index 638b0059..d7f93a0f 100644 --- a/sys/terraform/import.tf +++ b/sys/terraform/import.tf @@ -1,117 +1,104 @@ -import { - to = aws_cloudwatch_event_rule.eventrulecontributorsupdate - id = "default/app-contributors-update" -} - +# ECS import { to = aws_security_group.sgecs id = "sg-06c2c1b1e7d48f166" } - import { - to = aws_cloudwatch_log_group.cloudwatchloggroup - id = "badge-poser-logs" + to = aws_security_group_rule.sgecs_ingress_http + id = "sg-06c2c1b1e7d48f166_ingress_tcp_80_80_0.0.0.0/0" +} +import { + to = aws_security_group_rule.sgecs_ingress_https + id = "sg-06c2c1b1e7d48f166_ingress_tcp_443_443_0.0.0.0/0" } - import { to = aws_ecs_cluster.ecscluster id = "badge-poser-cluster-prod" } - import { to = aws_ecs_service.ecsservice id = "badge-poser-cluster-prod/badge-poser" } - import { to = aws_ecs_task_definition.ecstask id = "arn:aws:ecs:eu-west-1:478389220392:task-definition/badge-poser:138" } +# ELB import { to = aws_security_group.sgelb id = "sg-039400b411ff60301" } - import { - to = aws_iam_user.iamusergithubactions - id = "github_action_deploy" + to = aws_security_group_rule.sgelb_ingress_http + id = "sg-039400b411ff60301_ingress_tcp_80_80_0.0.0.0/0" } - import { - to = aws_iam_access_key.iamkey - id = "" + to = aws_security_group_rule.sgelb_ingress_https + id = "sg-039400b411ff60301_ingress_tcp_443_443_0.0.0.0/0" } - import { - to = aws_security_group.sgredis - id = "sg-09ad9402145d8eb17" + to = aws_lb_target_group.elbtargetgroup + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:targetgroup/badegposer/d24c3e0c7d0276d3" } - import { - to = aws_elasticache_cluster.rediscluster - id = "poser-stats" + to = aws_lb.elb + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:loadbalancer/app/badge-poser-elb/81d698b74f86c6b9" } - import { - to = aws_elasticache_subnet_group.redissubnet - id = "poser-subnet" + to = aws_lb_listener.elblistener80 + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener/app/badge-poser-elb/81d698b74f86c6b9/cff7a4a219047f82" } - import { - to = aws_lb_target_group.elbtargetgroup - id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:targetgroup/badegposer/d24c3e0c7d0276d3" + to = aws_lb_listener.elblistener443 + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener/app/badge-poser-elb/81d698b74f86c6b9/fc943ccbe12b086f" } - import { - to = aws_security_group_rule.sgelb_ingress_http - id = "sg-039400b411ff60301_ingress_tcp_80_80_0.0.0.0/0" + to = aws_lb_listener_rule.elblistenerrule80 + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener-rule/app/badge-poser-elb/81d698b74f86c6b9/cff7a4a219047f82/23a572ed933cc547" } - import { - to = aws_security_group_rule.sgelb_ingress_https - id = "sg-039400b411ff60301_ingress_tcp_443_443_0.0.0.0/0" + to = aws_lb_listener_rule.elblistenerrule443 + id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener-rule/app/badge-poser-elb/81d698b74f86c6b9/fc943ccbe12b086f/57de0169e306c96e" } +# REDIS +import { + to = aws_security_group.sgredis + id = "sg-09ad9402145d8eb17" +} import { to = aws_security_group_rule.sgredis_ingress_redis id = "sg-09ad9402145d8eb17_ingress_tcp_6379_6379_0.0.0.0/0" } - import { - to = aws_security_group_rule.sgecs_ingress_http - id = "sg-06c2c1b1e7d48f166_ingress_tcp_80_80_0.0.0.0/0" + to = aws_elasticache_cluster.rediscluster + id = "poser-stats" } - import { - to = aws_security_group_rule.sgecs_ingress_https - id = "sg-06c2c1b1e7d48f166_ingress_tcp_443_443_0.0.0.0/0" + to = aws_elasticache_subnet_group.redissubnet + id = "poser-subnet" } - +# LOGS import { - to = aws_lb.elb - id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:loadbalancer/app/badge-poser-elb/81d698b74f86c6b9" + to = aws_cloudwatch_log_group.cloudwatchloggroup + id = "badge-poser-logs" } -import { - to = aws_lb_listener.elblistener80 - id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener/app/badge-poser-elb/81d698b74f86c6b9/cff7a4a219047f82" -} +# CRONJOBS import { - to = aws_lb_listener.elblistener443 - id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener/app/badge-poser-elb/81d698b74f86c6b9/fc943ccbe12b086f" + to = aws_cloudwatch_event_rule.eventrulecontributorsupdate + id = "default/app-contributors-update" } - +# IAM import { - to = aws_lb_listener_rule.elblistenerrule80 - id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener-rule/app/badge-poser-elb/81d698b74f86c6b9/cff7a4a219047f82/23a572ed933cc547" + to = aws_iam_user.iamusergithubactions + id = "github_action_deploy" } - - import { - to = aws_lb_listener_rule.elblistenerrule443 - id = "arn:aws:elasticloadbalancing:eu-west-1:478389220392:listener-rule/app/badge-poser-elb/81d698b74f86c6b9/fc943ccbe12b086f/57de0169e306c96e" + to = aws_iam_user_policy.lb_ro + id = "github_action_deploy:GitHubActionsDeploy" } diff --git a/sys/terraform/main.tf b/sys/terraform/main.tf index f28f0134..6964e52e 100644 --- a/sys/terraform/main.tf +++ b/sys/terraform/main.tf @@ -21,4 +21,9 @@ terraform { provider "aws" { profile = "poser" + default_tags { + tags = { + "env" = var.service_name + } + } } diff --git a/sys/terraform/redis.tf b/sys/terraform/redis.tf index 64184f84..e73a9ff4 100644 --- a/sys/terraform/redis.tf +++ b/sys/terraform/redis.tf @@ -8,9 +8,6 @@ resource "aws_security_group" "sgredis" { to_port = 0 } vpc_id = var.vpc_id - tags = { - env = var.service_name - } } resource "aws_security_group_rule" "sgredis_ingress_redis" { @@ -32,12 +29,6 @@ resource "aws_elasticache_cluster" "rediscluster" { security_group_ids = [aws_security_group.sgredis.id] snapshot_retention_limit = 1 transit_encryption_enabled = false - tags = { - "env" = "badge-poser" - } - tags_all = { - "env" = "badge-poser" - } } resource "aws_elasticache_subnet_group" "redissubnet" { From 0e20e593dcd1b7b569d8c148ab1a4426847ef9a8 Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Thu, 26 Dec 2024 19:34:41 +0100 Subject: [PATCH 03/12] fixed sg id + lint --- sys/terraform/ecs.tf | 48 ++++++++++++++++++++++---------------------- sys/terraform/elb.tf | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/sys/terraform/ecs.tf b/sys/terraform/ecs.tf index f1bc0646..bfa59e61 100644 --- a/sys/terraform/ecs.tf +++ b/sys/terraform/ecs.tf @@ -77,31 +77,31 @@ resource "aws_ecs_service" "ecsservice" { resource "aws_ecs_task_definition" "ecstask" { execution_role_arn = var.exec_role_arn container_definitions = templatefile("ecs/task-definition.json", { - account_id = data.aws_caller_identity.current.account_id - aws_region = data.aws_region.current.name - service_name = var.service_name - ecr_image_tag_nginx = var.ecr_image_tag_nginx - ecr_image_tag_php = var.ecr_image_tag_php - cloudwatchloggroup = aws_cloudwatch_log_group.cloudwatchloggroup.name - env_appdebug = var.env_appdebug - env_appenv = var.env_appenv - env_appsecret = var.env_appsecret - env_appxdebug = var.env_appxdebug - env_appxdebughost = var.env_appxdebughost + account_id = data.aws_caller_identity.current.account_id + aws_region = data.aws_region.current.name + service_name = var.service_name + ecr_image_tag_nginx = var.ecr_image_tag_nginx + ecr_image_tag_php = var.ecr_image_tag_php + cloudwatchloggroup = aws_cloudwatch_log_group.cloudwatchloggroup.name + env_appdebug = var.env_appdebug + env_appenv = var.env_appenv + env_appsecret = var.env_appsecret + env_appxdebug = var.env_appxdebug + env_appxdebughost = var.env_appxdebughost env_bitbucketauthmethod = var.env_bitbucketauthmethod - env_bitbucketsecret = var.env_bitbucketsecret - env_bitbuckettoken = var.env_bitbuckettoken - env_circlecitoken = var.env_circlecitoken - env_githubauthmethod = var.env_githubauthmethod - env_githubsecret = var.env_githubsecret - env_githubusername = var.env_githubusername - env_gitlabtoken = var.env_gitlabtoken - env_phpfpmhost = var.env_phpfpmhost - env_redishost = var.env_redishost - env_redishost = var.env_redishost - env_resolverip = var.env_resolverip - env_sentrydsn = var.env_sentrydsn - env_trustedproxies = var.env_trustedproxies + env_bitbucketsecret = var.env_bitbucketsecret + env_bitbuckettoken = var.env_bitbuckettoken + env_circlecitoken = var.env_circlecitoken + env_githubauthmethod = var.env_githubauthmethod + env_githubsecret = var.env_githubsecret + env_githubusername = var.env_githubusername + env_gitlabtoken = var.env_gitlabtoken + env_phpfpmhost = var.env_phpfpmhost + env_redishost = var.env_redishost + env_redishost = var.env_redishost + env_resolverip = var.env_resolverip + env_sentrydsn = var.env_sentrydsn + env_trustedproxies = var.env_trustedproxies }) memory = "2048" family = var.service_name diff --git a/sys/terraform/elb.tf b/sys/terraform/elb.tf index fc197e8a..c54d7535 100644 --- a/sys/terraform/elb.tf +++ b/sys/terraform/elb.tf @@ -38,7 +38,7 @@ resource "aws_lb_target_group" "elbtargetgroup" { resource "aws_lb" "elb" { name = "${var.service_name}-elb" subnets = var.subnets - security_groups = [aws_security_group.sgelb.name] + security_groups = [aws_security_group.sgelb.id] } resource "aws_lb_listener" "elblistener80" { From 2d926bbe06347310bdd2320aa785e367050c25bd Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Thu, 26 Dec 2024 19:35:47 +0100 Subject: [PATCH 04/12] ignore tf state file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index bb02ef5e..af19e36b 100644 --- a/.gitignore +++ b/.gitignore @@ -47,4 +47,5 @@ sys/nginx/certs/server.key sys/nginx/certs/server.pem sys/terraform/.terraform sys/terraform/terraform.tfvars +sys/terraform/terraform.tfstate ###< custom ### From 58cd40a2bfccc9a4ee52e7ea5d1b759f388c930f Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Thu, 26 Dec 2024 19:38:55 +0100 Subject: [PATCH 05/12] first steps to remove CF stack --- sys/cloudformation/parameters.prod.json | 19 ------------------- sys/cloudformation/stack.png | Bin 253300 -> 0 bytes sys/cloudformation/stack.yaml | 18 +++++++++++++++++- 3 files changed, 17 insertions(+), 20 deletions(-) delete mode 100644 sys/cloudformation/parameters.prod.json delete mode 100644 sys/cloudformation/stack.png diff --git a/sys/cloudformation/parameters.prod.json b/sys/cloudformation/parameters.prod.json deleted file mode 100644 index c46ac753..00000000 --- a/sys/cloudformation/parameters.prod.json +++ /dev/null @@ -1,19 +0,0 @@ -[ - {"ParameterKey": "ELBCertificateArn", "ParameterValue": ""}, - {"ParameterKey": "EcrImageTagNginx", "ParameterValue": "1734722017"}, - {"ParameterKey": "EcrImageTagPhp", "ParameterValue": "1734722017"}, - {"ParameterKey": "Environment", "ParameterValue": "prod"}, - {"ParameterKey": "ExecRoleArn", "ParameterValue": ""}, - {"ParameterKey": "Subnets", "ParameterValue": ""}, - {"ParameterKey": "VpcId", "ParameterValue": ""}, - - {"ParameterKey": "EnvAPPENV", "ParameterValue": "prod"}, - {"ParameterKey": "EnvREDISHOST", "ParameterValue": ""}, - {"ParameterKey": "EnvAPPSECRET", "ParameterValue": ""}, - {"ParameterKey": "EnvBITBUCKETSECRET", "ParameterValue": ""}, - {"ParameterKey": "EnvBITBUCKETTOKEN", "ParameterValue": ""}, - {"ParameterKey": "EnvGITLABTOKEN", "ParameterValue": ""}, - {"ParameterKey": "EnvCIRCLECITOKEN", "ParameterValue": ""}, - {"ParameterKey": "EnvGITHUBUSERNAME", "ParameterValue": ""}, - {"ParameterKey": "EnvSENTRYDSN", "ParameterValue": ""} -] diff --git a/sys/cloudformation/stack.png b/sys/cloudformation/stack.png deleted file mode 100644 index db199f9f935358b90a4ed86e015d43e4d1e39545..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253300 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�y>H#MSXTz>nr$wmyhqy|{Gl&W{AGymKo|JW?Q1bz)jI*bfz4IWN?UU>7t zG4W}p-f-{2poJgu)JXY0nT!yR9m^gJC7L<*I1kR%7<;lH&#E7CvBoxJ=lpxqk#auv z3i>@?X5PJEN`Vo~N-JITkR1(c^MYUTlBQCb%9XgK_hBxhdvG=YAp}gr((aBA1Q7Eod_Gq9k&3-Wb z_7}gw8f6{xZo5Ex?Lx%+kV4wpXoCA+>nZh})yvJizU1@@&l>i}kweMmCrw5P;~g-e zx3`{{5C7CKx4Exw-kT?4^LNiZq8=` Date: Thu, 26 Dec 2024 19:56:10 +0100 Subject: [PATCH 06/12] changed deploy command to use TF --- .github/workflows/deploy.yml | 4 ++-- Makefile | 20 +++----------------- sys/terraform/ecs.tf | 1 + 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index f14e4487..c225967c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -38,8 +38,8 @@ jobs: - name: Prepare settings env: - PARAM_JSON: ${{ secrets.PARAM_JSON }} - run: echo "$PARAM_JSON" > sys/cloudformation/parameters.secrets.prod.json + PARAM_TFVARS: ${{ secrets.PARAM_TFVARS }} + run: echo "$PARAM_TFVARS" > sys/terraform/terraform.tfvars - name: Deploy env: diff --git a/Makefile b/Makefile index 1ede5f6f..d2100d0b 100644 --- a/Makefile +++ b/Makefile @@ -80,23 +80,9 @@ PREVIOUS_TAG=$(shell git ls-remote --tags 2>&1 | awk '{print $$2}' | sort -r | h ECR_REGISTRY = $(AWS_ACCOUNT_ID).dkr.ecr.$(AWS_REGION).amazonaws.com deploy_prod: build_prod_images push_prod_images ## deploy to prod - cat sys/cloudformation/parameters.prod.json \ - | sed -e 's/{"ParameterKey": "EcrImageTagNginx", "ParameterValue": ".*"}/{"ParameterKey": "EcrImageTagNginx", "ParameterValue": "'$(VER)'"}/' \ - -e 's/{"ParameterKey": "EcrImageTagPhp", "ParameterValue": ".*"}/{"ParameterKey": "EcrImageTagPhp", "ParameterValue": "'$(VER)'"}/' \ - | tee sys/cloudformation/parameters.prod.json.new; \ - mv sys/cloudformation/parameters.prod.json sys/cloudformation/parameters.prod.json.bak; \ - mv sys/cloudformation/parameters.prod.json.new sys/cloudformation/parameters.prod.json; \ - cat sys/cloudformation/parameters.secrets.prod.json \ - | sed -e 's/{"ParameterKey": "EcrImageTagNginx", "ParameterValue": ".*"}/{"ParameterKey": "EcrImageTagNginx", "ParameterValue": "'$(VER)'"}/' \ - -e 's/{"ParameterKey": "EcrImageTagPhp", "ParameterValue": ".*"}/{"ParameterKey": "EcrImageTagPhp", "ParameterValue": "'$(VER)'"}/' \ - | tee sys/cloudformation/parameters.secrets.prod.json.new; \ - mv sys/cloudformation/parameters.secrets.prod.json sys/cloudformation/parameters.secrets.prod.json.bak; \ - mv sys/cloudformation/parameters.secrets.prod.json.new sys/cloudformation/parameters.secrets.prod.json; \ - aws --profile=$(AWS_PROFILE) cloudformation create-change-set --capabilities CAPABILITY_NAMED_IAM \ - --stack=poser-ecs \ - --change-set-name=poser-ecs-$(VER) \ - --template-body=file://$$PWD/sys/cloudformation/stack.yaml \ - --parameters=file://sys/cloudformation/parameters.secrets.prod.json +# TODO: convert to terraform apply +# TODO: modify IAM policy to allow only the creation of ECS tasks via pipelines + terraform plan -var="ecr_image_tag_nginx=$(VER)" -var="ecr_image_tag_php=$(VER)" build_%: export BADGE_POSER_REGISTRY = $(ECR_REGISTRY)/badge-poser build_%: export DOCKER_BUILDKIT = 1 diff --git a/sys/terraform/ecs.tf b/sys/terraform/ecs.tf index bfa59e61..3d52a1a8 100644 --- a/sys/terraform/ecs.tf +++ b/sys/terraform/ecs.tf @@ -110,4 +110,5 @@ resource "aws_ecs_task_definition" "ecstask" { ] network_mode = "awsvpc" cpu = "1024" + skip_destroy = true } From 2c4bb65e75b7868a09d19573c7369e9e0380e588 Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Thu, 26 Dec 2024 20:01:02 +0100 Subject: [PATCH 07/12] installing tf cli --- .github/workflows/deploy.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c225967c..26d97d65 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -36,11 +36,17 @@ jobs: aws --profile $AWS_PROFILE configure set aws_access_key_id $AWS_ACCESS_KEY_ID aws --profile $AWS_PROFILE configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY + - name: Configure Terraform + uses: hashicorp/setup-terraform@v3 + - name: Prepare settings env: PARAM_TFVARS: ${{ secrets.PARAM_TFVARS }} run: echo "$PARAM_TFVARS" > sys/terraform/terraform.tfvars + - name: Terraform init + run: terraform init + - name: Deploy env: AWS_PROFILE: ${{ secrets.AWS_PROFILE }} From 50b31344d7946fa5944b2dac6f251a862a51a7ba Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Mon, 30 Dec 2024 19:10:29 +0100 Subject: [PATCH 08/12] moved secret env vars into AWS SM --- sys/terraform/ecs.tf | 7 ---- sys/terraform/ecs/task-definition.json | 57 +++++++++++++------------- sys/terraform/elb.tf | 2 +- sys/terraform/secret.tf | 16 ++++++++ sys/terraform/variables.tf | 5 +++ 5 files changed, 51 insertions(+), 36 deletions(-) create mode 100644 sys/terraform/secret.tf diff --git a/sys/terraform/ecs.tf b/sys/terraform/ecs.tf index 3d52a1a8..57bd6599 100644 --- a/sys/terraform/ecs.tf +++ b/sys/terraform/ecs.tf @@ -85,17 +85,10 @@ resource "aws_ecs_task_definition" "ecstask" { cloudwatchloggroup = aws_cloudwatch_log_group.cloudwatchloggroup.name env_appdebug = var.env_appdebug env_appenv = var.env_appenv - env_appsecret = var.env_appsecret env_appxdebug = var.env_appxdebug env_appxdebughost = var.env_appxdebughost env_bitbucketauthmethod = var.env_bitbucketauthmethod - env_bitbucketsecret = var.env_bitbucketsecret - env_bitbuckettoken = var.env_bitbuckettoken - env_circlecitoken = var.env_circlecitoken env_githubauthmethod = var.env_githubauthmethod - env_githubsecret = var.env_githubsecret - env_githubusername = var.env_githubusername - env_gitlabtoken = var.env_gitlabtoken env_phpfpmhost = var.env_phpfpmhost env_redishost = var.env_redishost env_redishost = var.env_redishost diff --git a/sys/terraform/ecs/task-definition.json b/sys/terraform/ecs/task-definition.json index 85e4e239..6f072fd0 100644 --- a/sys/terraform/ecs/task-definition.json +++ b/sys/terraform/ecs/task-definition.json @@ -23,10 +23,6 @@ "name": "APP_DEBUG", "value": "${env_appdebug}" }, - { - "name": "APP_SECRET", - "value": "${env_appsecret}" - }, { "name": "APP_XDEBUG", "value": "${env_appxdebug}" @@ -44,49 +40,54 @@ "value": "${env_githubauthmethod}" }, { - "name": "GITHUB_USERNAME", - "value": "${env_githubusername}" + "name": "SENTRY_DSN", + "value": "${env_sentrydsn}" }, { - "name": "GITHUB_SECRET", - "value": "${env_githubsecret}" + "name": "BITBUCKET_AUTH_METHOD", + "value": "${env_bitbucketauthmethod}" }, { - "name": "CIRCLE_CI_TOKEN", - "value": "${env_circlecitoken}" + "name": "TRUSTED_PROXIES", + "value": "${env_trustedproxies}" + } + ], + "image": "${account_id}.dkr.ecr.${aws_region}.amazonaws.com/${service_name}:phpfpm-${ecr_image_tag_php}", + "essential": true, + "environmentFiles": [], + "extraHosts": [], + "links": [], + "mountPoints": [], + "secrets": [ + { + "name": "APP_SECRET", + "valueFrom": "arn:aws:secretsmanager:${aws_region}:${account_id}:secret:${service_name}:APP_SECRET::" }, { - "name": "SENTRY_DSN", - "value": "${env_sentrydsn}" + "name": "GITHUB_USERNAME", + "valueFrom": "arn:aws:secretsmanager:${aws_region}:${account_id}:secret:${service_name}:GITHUB_USERNAME::" }, { - "name": "BITBUCKET_AUTH_METHOD", - "value": "${env_bitbucketauthmethod}" + "name": "GITHUB_SECRET", + "valueFrom": "arn:aws:secretsmanager:${aws_region}:${account_id}:secret:${service_name}:GITHUB_SECRET::" }, { - "name": "BITBUCKET_SECRET", - "value": "${env_bitbucketsecret}" + "name": "CIRCLE_CI_TOKEN", + "valueFrom": "arn:aws:secretsmanager:${aws_region}:${account_id}:secret:${service_name}:CIRCLE_CI_TOKEN::" }, { - "name": "BITBUCKET_TOKEN", - "value": "${env_bitbuckettoken}" + "name": "BITBUCKET_SECRET", + "valueFrom": "arn:aws:secretsmanager:${aws_region}:${account_id}:secret:${service_name}:BITBUCKET_SECRET::" }, { - "name": "TRUSTED_PROXIES", - "value": "${env_trustedproxies}" + "name": "BITBUCKET_TOKEN", + "valueFrom": "arn:aws:secretsmanager:${aws_region}:${account_id}:secret:${service_name}:BITBUCKET_TOKEN::" }, { "name": "GITLAB_TOKEN", - "value": "${env_gitlabtoken}" + "valueFrom": "arn:aws:secretsmanager:${aws_region}:${account_id}:secret:${service_name}:GITLAB_TOKEN::" } ], - "image": "${account_id}.dkr.ecr.${aws_region}.amazonaws.com/${service_name}:phpfpm-${ecr_image_tag_php}", - "essential": true, - "environmentFiles": [], - "extraHosts": [], - "links": [], - "mountPoints": [], - "secrets": [], "systemControls": [], "ulimits": [], "volumesFrom": [], diff --git a/sys/terraform/elb.tf b/sys/terraform/elb.tf index c54d7535..3e394675 100644 --- a/sys/terraform/elb.tf +++ b/sys/terraform/elb.tf @@ -73,7 +73,7 @@ resource "aws_appautoscaling_target" "asscalabletarget" { max_capacity = 1 min_capacity = 1 resource_id = "service/${var.service_name}-cluster-${var.environment}/${var.service_name}" - role_arn = var.exec_role_arn + role_arn = var.exec_role_arn_autoscale scalable_dimension = "ecs:service:DesiredCount" service_namespace = "ecs" } diff --git a/sys/terraform/secret.tf b/sys/terraform/secret.tf new file mode 100644 index 00000000..9cd443d7 --- /dev/null +++ b/sys/terraform/secret.tf @@ -0,0 +1,16 @@ +resource "aws_secretsmanager_secret" "poser" { + name = var.service_name +} + +resource "aws_secretsmanager_secret_version" "poser" { + secret_id = aws_secretsmanager_secret.poser.id + secret_string = jsonencode({ + APP_SECRET = var.env_appsecret + GITHUB_SECRET = var.env_githubsecret + GITHUB_USERNAME = var.env_githubusername + CIRCLE_CI_TOKEN = var.env_circlecitoken + BITBUCKET_SECRET = var.env_bitbucketsecret + BITBUCKET_TOKEN = var.env_bitbuckettoken + GITLAB_TOKEN = var.env_gitlabtoken + }) +} diff --git a/sys/terraform/variables.tf b/sys/terraform/variables.tf index 5ac1b89f..80a2caa7 100644 --- a/sys/terraform/variables.tf +++ b/sys/terraform/variables.tf @@ -23,6 +23,11 @@ variable "exec_role_arn" { type = string } +variable "exec_role_arn_autoscale" { + description = "Specifies the ARN of the Execution Role for Autoscaling." + type = string +} + variable "service_name" { description = "The name of the service being created. It identifies all the resources related to it." type = string From d5f2add1fce09d0f4c7bade4ce5b88f95d6792b2 Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Mon, 30 Dec 2024 19:21:55 +0100 Subject: [PATCH 09/12] created custom role for ecs exec (able to read newly created secret) --- sys/terraform/cloudwatch.tf | 2 +- sys/terraform/ecs.tf | 2 +- sys/terraform/iam.tf | 39 +++++++++++++++++++++++++++++++++++++ sys/terraform/variables.tf | 5 ----- 4 files changed, 41 insertions(+), 7 deletions(-) diff --git a/sys/terraform/cloudwatch.tf b/sys/terraform/cloudwatch.tf index 7e95f680..67ae45ff 100644 --- a/sys/terraform/cloudwatch.tf +++ b/sys/terraform/cloudwatch.tf @@ -8,7 +8,7 @@ resource "aws_cloudwatch_event_rule" "eventrulecontributorsupdate" { // { // Id = "phpfpm" // Arn = aws_ecs_cluster.ecscluster.arn - // RoleArn = var.exec_role_arn + // RoleArn = aws_iam_role.ecs_task_role.arn // Input = "{"containerOverrides":[{"name":"phpfpm","command":["./bin/console","app:contributors:update"]}]}" // EcsParameters = { // TaskDefinitionArn = aws_ecs_task_definition.ecstask.arn diff --git a/sys/terraform/ecs.tf b/sys/terraform/ecs.tf index 57bd6599..b557c42f 100644 --- a/sys/terraform/ecs.tf +++ b/sys/terraform/ecs.tf @@ -75,7 +75,7 @@ resource "aws_ecs_service" "ecsservice" { } resource "aws_ecs_task_definition" "ecstask" { - execution_role_arn = var.exec_role_arn + execution_role_arn = aws_iam_role.ecs_task_role.arn container_definitions = templatefile("ecs/task-definition.json", { account_id = data.aws_caller_identity.current.account_id aws_region = data.aws_region.current.name diff --git a/sys/terraform/iam.tf b/sys/terraform/iam.tf index 22b54024..3c1b0f0b 100644 --- a/sys/terraform/iam.tf +++ b/sys/terraform/iam.tf @@ -43,3 +43,42 @@ resource "aws_iam_user" "iamusergithubactions" { resource "aws_iam_access_key" "iamkey" { user = aws_iam_user.iamusergithubactions.name } + +resource "aws_iam_role" "ecs_task_role" { + name = "${var.service_name}-ecs-exec" + + assume_role_policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Sid = "" + Principal = { + Service = "ecs-tasks.amazonaws.com" + } + }, + ] + }) +} + +resource "aws_iam_role_policy" "read_secrets_policy" { + name = "read-secrets" + role = aws_iam_role.ecs_task_role.id + + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Action = ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"] + Effect = "Allow" + Resource = aws_secretsmanager_secret.poser.arn + }, + ] + }) +} + +resource "aws_iam_role_policy_attachment" "ecs_task_role" { + role = aws_iam_role.ecs_task_role.name + policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy" +} diff --git a/sys/terraform/variables.tf b/sys/terraform/variables.tf index 80a2caa7..59af0750 100644 --- a/sys/terraform/variables.tf +++ b/sys/terraform/variables.tf @@ -18,11 +18,6 @@ variable "environment" { type = string } -variable "exec_role_arn" { - description = "Specifies the ARN of the Execution Role for ECS." - type = string -} - variable "exec_role_arn_autoscale" { description = "Specifies the ARN of the Execution Role for Autoscaling." type = string From dcd53f44c72e041e3767cc5df316a1b79c305386 Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Mon, 30 Dec 2024 19:27:14 +0100 Subject: [PATCH 10/12] reusing redis hostname --- sys/terraform/ecs.tf | 3 +-- sys/terraform/variables.tf | 5 ----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/sys/terraform/ecs.tf b/sys/terraform/ecs.tf index b557c42f..26092ba5 100644 --- a/sys/terraform/ecs.tf +++ b/sys/terraform/ecs.tf @@ -90,8 +90,7 @@ resource "aws_ecs_task_definition" "ecstask" { env_bitbucketauthmethod = var.env_bitbucketauthmethod env_githubauthmethod = var.env_githubauthmethod env_phpfpmhost = var.env_phpfpmhost - env_redishost = var.env_redishost - env_redishost = var.env_redishost + env_redishost = aws_elasticache_cluster.rediscluster.cache_nodes[0].address env_resolverip = var.env_resolverip env_sentrydsn = var.env_sentrydsn env_trustedproxies = var.env_trustedproxies diff --git a/sys/terraform/variables.tf b/sys/terraform/variables.tf index 59af0750..05302a16 100644 --- a/sys/terraform/variables.tf +++ b/sys/terraform/variables.tf @@ -104,11 +104,6 @@ variable "env_githubusername" { type = string } -variable "env_redishost" { - description = "Environment variable for REDIS_HOST" - type = string -} - variable "env_phpfpmhost" { description = "Environment variable for PHPFPM_HOST" type = string From 244bd3322153a41f9480ea29d912b042be820950 Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Tue, 31 Dec 2024 09:22:57 +0100 Subject: [PATCH 11/12] imported acm cert --- sys/terraform/elb.tf | 2 +- sys/terraform/import.tf | 6 ++++++ sys/terraform/variables.tf | 5 ----- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sys/terraform/elb.tf b/sys/terraform/elb.tf index 3e394675..175cc42c 100644 --- a/sys/terraform/elb.tf +++ b/sys/terraform/elb.tf @@ -57,7 +57,7 @@ resource "aws_lb_listener" "elblistener80" { resource "aws_lb_listener" "elblistener443" { load_balancer_arn = aws_lb.elb.arn - certificate_arn = "arn:aws:acm:eu-west-1:478389220392:certificate/2225440f-8847-4834-a90b-4b81a0105955" + certificate_arn = aws_acm_certificate.cert.arn port = 443 default_action { type = "fixed-response" diff --git a/sys/terraform/import.tf b/sys/terraform/import.tf index d7f93a0f..0831c5f0 100644 --- a/sys/terraform/import.tf +++ b/sys/terraform/import.tf @@ -102,3 +102,9 @@ import { to = aws_iam_user_policy.lb_ro id = "github_action_deploy:GitHubActionsDeploy" } + +# ACM +import { + to = aws_acm_certificate.cert + id = "arn:aws:acm:eu-west-1:478389220392:certificate/2225440f-8847-4834-a90b-4b81a0105955" +} diff --git a/sys/terraform/variables.tf b/sys/terraform/variables.tf index 05302a16..91a28656 100644 --- a/sys/terraform/variables.tf +++ b/sys/terraform/variables.tf @@ -8,11 +8,6 @@ variable "ecr_image_tag_php" { type = string } -variable "elb_certificate_arn" { - description = "Specifies the ARN of the Certificate." - type = string -} - variable "environment" { description = "The Environment" type = string From a16faccfcaca5d7ccb85a17eeab22c7b1456aefa Mon Sep 17 00:00:00 2001 From: Fabio Cicerchia Date: Sun, 5 Jan 2025 09:42:08 +0100 Subject: [PATCH 12/12] using snake case on app vars --- sys/terraform/ecs.tf | 34 +++++++++++++------------- sys/terraform/ecs/task-definition.json | 24 +++++++++--------- sys/terraform/iam.tf | 4 +-- sys/terraform/import.tf | 4 +-- sys/terraform/secret.tf | 16 ++++++------ sys/terraform/variables.tf | 34 +++++++++++++------------- 6 files changed, 58 insertions(+), 58 deletions(-) diff --git a/sys/terraform/ecs.tf b/sys/terraform/ecs.tf index 26092ba5..eb1dd825 100644 --- a/sys/terraform/ecs.tf +++ b/sys/terraform/ecs.tf @@ -77,23 +77,23 @@ resource "aws_ecs_service" "ecsservice" { resource "aws_ecs_task_definition" "ecstask" { execution_role_arn = aws_iam_role.ecs_task_role.arn container_definitions = templatefile("ecs/task-definition.json", { - account_id = data.aws_caller_identity.current.account_id - aws_region = data.aws_region.current.name - service_name = var.service_name - ecr_image_tag_nginx = var.ecr_image_tag_nginx - ecr_image_tag_php = var.ecr_image_tag_php - cloudwatchloggroup = aws_cloudwatch_log_group.cloudwatchloggroup.name - env_appdebug = var.env_appdebug - env_appenv = var.env_appenv - env_appxdebug = var.env_appxdebug - env_appxdebughost = var.env_appxdebughost - env_bitbucketauthmethod = var.env_bitbucketauthmethod - env_githubauthmethod = var.env_githubauthmethod - env_phpfpmhost = var.env_phpfpmhost - env_redishost = aws_elasticache_cluster.rediscluster.cache_nodes[0].address - env_resolverip = var.env_resolverip - env_sentrydsn = var.env_sentrydsn - env_trustedproxies = var.env_trustedproxies + account_id = data.aws_caller_identity.current.account_id + aws_region = data.aws_region.current.name + service_name = var.service_name + ecr_image_tag_nginx = var.ecr_image_tag_nginx + ecr_image_tag_php = var.ecr_image_tag_php + cloudwatch_log_group = aws_cloudwatch_log_group.cloudwatchloggroup.name + env_app_debug = var.env_app_debug + env_app_env = var.env_app_env + env_app_xdebug = var.env_app_xdebug + env_app_xdebug_host = var.env_app_xdebug_host + env_bitbucket_auth_method = var.env_bitbucket_auth_method + env_github_auth_method = var.env_github_auth_method + env_phpfpm_host = var.env_phpfpm_host + env_redis_host = aws_elasticache_cluster.rediscluster.cache_nodes[0].address + env_resolver_ip = var.env_resolver_ip + env_sentry_dsn = var.env_sentry_dsn + env_trusted_proxies = var.env_trusted_proxies }) memory = "2048" family = var.service_name diff --git a/sys/terraform/ecs/task-definition.json b/sys/terraform/ecs/task-definition.json index 6f072fd0..ed57e0d3 100644 --- a/sys/terraform/ecs/task-definition.json +++ b/sys/terraform/ecs/task-definition.json @@ -17,11 +17,11 @@ "environment": [ { "name": "APP_ENV", - "value": "${env_appenv}" + "value": "${env_app_env}" }, { "name": "APP_DEBUG", - "value": "${env_appdebug}" + "value": "${env_app_debug}" }, { "name": "APP_XDEBUG", @@ -29,27 +29,27 @@ }, { "name": "APP_XDEBUG_HOST", - "value": "${env_appxdebughost}" + "value": "${env_app_xdebug_host}" }, { "name": "REDIS_HOST", - "value": "${env_redishost}" + "value": "${env_redis_host}" }, { "name": "GITHUB_AUTH_METHOD", - "value": "${env_githubauthmethod}" + "value": "${env_github_auth_method}" }, { "name": "SENTRY_DSN", - "value": "${env_sentrydsn}" + "value": "${env_sentry_dsn}" }, { "name": "BITBUCKET_AUTH_METHOD", - "value": "${env_bitbucketauthmethod}" + "value": "${env_bitbucket_auth_method}" }, { "name": "TRUSTED_PROXIES", - "value": "${env_trustedproxies}" + "value": "${env_trusted_proxies}" } ], "image": "${account_id}.dkr.ecr.${aws_region}.amazonaws.com/${service_name}:phpfpm-${ecr_image_tag_php}", @@ -94,7 +94,7 @@ "logConfiguration": { "logDriver": "awslogs", "options": { - "awslogs-group": "${cloudwatchloggroup}", + "awslogs-group": "${cloudwatch_log_group}", "awslogs-region": "${aws_region}", "awslogs-stream-prefix": "${service_name}-phpfpm" }, @@ -126,15 +126,15 @@ "environment": [ { "name": "PHPFPM_HOST", - "value": "${env_phpfpmhost}" + "value": "${env_phpfpm_host}" }, { "name": "REDIS_HOST", - "value": "${env_redishost}" + "value": "${env_redis_host}" }, { "name": "RESOLVER_IP", - "value": "${env_resolverip}" + "value": "${env_resolver_ip}" } ], "image": "${account_id}.dkr.ecr.${aws_region}.amazonaws.com/${service_name}:nginx-${ecr_image_tag_nginx}", diff --git a/sys/terraform/iam.tf b/sys/terraform/iam.tf index 3c1b0f0b..d2c2619d 100644 --- a/sys/terraform/iam.tf +++ b/sys/terraform/iam.tf @@ -69,11 +69,11 @@ resource "aws_iam_role_policy" "read_secrets_policy" { policy = jsonencode({ Version = "2012-10-17" Statement = [ - { + { Action = ["secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret"] Effect = "Allow" Resource = aws_secretsmanager_secret.poser.arn - }, + }, ] }) } diff --git a/sys/terraform/import.tf b/sys/terraform/import.tf index 0831c5f0..4f43bae7 100644 --- a/sys/terraform/import.tf +++ b/sys/terraform/import.tf @@ -105,6 +105,6 @@ import { # ACM import { - to = aws_acm_certificate.cert - id = "arn:aws:acm:eu-west-1:478389220392:certificate/2225440f-8847-4834-a90b-4b81a0105955" + to = aws_acm_certificate.cert + id = "arn:aws:acm:eu-west-1:478389220392:certificate/2225440f-8847-4834-a90b-4b81a0105955" } diff --git a/sys/terraform/secret.tf b/sys/terraform/secret.tf index 9cd443d7..e6c22f0f 100644 --- a/sys/terraform/secret.tf +++ b/sys/terraform/secret.tf @@ -3,14 +3,14 @@ resource "aws_secretsmanager_secret" "poser" { } resource "aws_secretsmanager_secret_version" "poser" { - secret_id = aws_secretsmanager_secret.poser.id + secret_id = aws_secretsmanager_secret.poser.id secret_string = jsonencode({ - APP_SECRET = var.env_appsecret - GITHUB_SECRET = var.env_githubsecret - GITHUB_USERNAME = var.env_githubusername - CIRCLE_CI_TOKEN = var.env_circlecitoken - BITBUCKET_SECRET = var.env_bitbucketsecret - BITBUCKET_TOKEN = var.env_bitbuckettoken - GITLAB_TOKEN = var.env_gitlabtoken + APP_SECRET = var.env_app_secret + GITHUB_SECRET = var.env_github_secret + GITHUB_USERNAME = var.env_github_username + CIRCLECI_TOKEN = var.env_circleci_token + BITBUCKET_SECRET = var.env_bitbucket_secret + BITBUCKET_TOKEN = var.env_bitbucket_token + GITLAB_TOKEN = var.env_gitlab_token }) } diff --git a/sys/terraform/variables.tf b/sys/terraform/variables.tf index 91a28656..fd9c2b99 100644 --- a/sys/terraform/variables.tf +++ b/sys/terraform/variables.tf @@ -34,95 +34,95 @@ variable "vpc_id" { type = string } -variable "env_appdebug" { +variable "env_app_debug" { description = "Environment variable for APP_DEBUG" type = string default = "0" } -variable "env_appenv" { +variable "env_app_env" { description = "Environment variable for APP_ENV" type = string default = "prod" } -variable "env_appsecret" { +variable "env_app_secret" { description = "Environment variable for APP_SECRET" type = string } -variable "env_appxdebug" { +variable "env_app_xdebug" { description = "Environment variable for APP_XDEBUG" type = string default = "0" } -variable "env_appxdebughost" { +variable "env_app_xdebug_host" { description = "Environment variable for APP_XDEBUG_HOST" type = string } -variable "env_bitbucketauthmethod" { +variable "env_bitbucket_auth_method" { description = "Environment variable for BITBUCKET_AUTH_METHOD" type = string default = "http_password" } -variable "env_bitbucketsecret" { +variable "env_bitbucket_secret" { description = "Environment variable for BITBUCKET_SECRET" type = string } -variable "env_bitbuckettoken" { +variable "env_bitbucket_token" { description = "Environment variable for BITBUCKET_TOKEN" type = string } -variable "env_circlecitoken" { +variable "env_circleci_token" { description = "Environment variable for CIRCLE_CI_TOKEN" type = string } -variable "env_githubauthmethod" { +variable "env_github_auth_method" { description = "Environment variable for GITHUB_AUTH_METHOD" type = string default = "access_token_header" } -variable "env_githubsecret" { +variable "env_github_secret" { description = "Environment variable for GITHUB_SECRET" type = string } -variable "env_githubusername" { +variable "env_github_username" { description = "Environment variable for GITHUB_USERNAME" type = string } -variable "env_phpfpmhost" { +variable "env_phpfpm_host" { description = "Environment variable for PHPFPM_HOST" type = string default = "127.0.0.1" } -variable "env_resolverip" { +variable "env_resolver_ip" { description = "Environment variable for RESOLVER_IP" type = string default = "169.254.169.253" } -variable "env_sentrydsn" { +variable "env_sentry_dsn" { description = "Environment variable for SENTRY_DSN" type = string } -variable "env_trustedproxies" { +variable "env_trusted_proxies" { description = "Environment variable for TRUSTED_PROXIES" type = string default = "REMOTE_ADDR" } -variable "env_gitlabtoken" { +variable "env_gitlab_token" { description = "Environment variable for GITLAB_TOKEN" type = string }