Skip to content

Commit 345a861

Browse files
authored
KEH 2445 | Changing versioning from Tags to Image Digest (#83)
* fix: rebasing * fix: added lambda image * fix: removed duplicate ecr image * fix: removed duplicate ecr image
1 parent cd032e6 commit 345a861

5 files changed

Lines changed: 24 additions & 10 deletions

File tree

concourse/scripts/terraform_infra.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ aws_secret_access_key=$(echo "$secrets" | jq -r .aws_secret_access_key)
1212

1313
lambda_name=$(echo "$secrets" | jq -r .lambda_name)
1414
env_name=$(echo "$secrets" | jq -r .env_name)
15+
ecr_repository=$(echo "$secrets" | jq -r .ecr_repository)
1516

1617
lambda_timeout=$(echo "$secrets" | jq -r .lambda_timeout)
1718

@@ -46,6 +47,6 @@ terraform apply \
4647
-var "github_app_client_id=$github_app_client_id" \
4748
-var "aws_secret_name=$aws_secret_name" \
4849
-var "github_org=$github_org" \
49-
-var "lambda_version=${tag}" \
5050
-var "lambda_timeout=${lambda_timeout}" \
51+
-var "ecr_repository=${ecr_repository}" \
5152
-auto-approve

terraform/data.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ data "aws_ecr_repository" "profile_lambda_ecr_repo" {
22
name = local.lambda_repo
33
}
44

5+
data "aws_ecr_image" "lambda_image" {
6+
repository_name = data.aws_ecr_repository.profile_lambda_ecr_repo.name
7+
image_tag = var.container_ver
8+
}
9+
510
# Get the ecs infrastructure outputs from the remote state data source
611
data "terraform_remote_state" "vpc" {
712
backend = "s3"

terraform/env/dev/example_tfvars.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ aws_secret_access_key = "AWSSECRETASSOCIATEDWITHACCESSKEY"
55
aws_secret_name = "sdp/pem"
66
env_name = "sdp-dev"
77
lambda_name = "copilot-usage-lambda"
8-
lambda_version = "v0.0.1"
98
lambda_arch = "x86_64"
109
lambda_timeout = 300
1110
schedule = "cron(0 6 ? * 2 *)"
1211
github_org = "ONS-Innovation"
13-
github_app_client_id = "123456789"
12+
github_app_client_id = "123456789"
13+
ecr_repository = "sdp-dev-address-book-lambda"
14+
container_ver = "v1.0.0"

terraform/main.tf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ resource "aws_security_group" "lambda_sg" {
2727
resource "aws_lambda_function" "lambda_function" {
2828
function_name = var.lambda_name
2929
timeout = var.lambda_timeout
30-
image_uri = "${data.aws_ecr_repository.profile_lambda_ecr_repo.repository_url}:${var.lambda_version}"
30+
image_uri = "${data.aws_ecr_repository.profile_lambda_ecr_repo.repository_url}@${data.aws_ecr_image.lambda_image.image_digest}"
3131
package_type = "Image"
3232
architectures = [var.lambda_arch]
3333
logging_config {
@@ -55,6 +55,8 @@ resource "aws_lambda_function" "lambda_function" {
5555
GITHUB_APP_CLIENT_ID = var.github_app_client_id
5656
AWS_SECRET_NAME = var.aws_secret_name
5757
AWS_ACCOUNT_NAME = var.env_name
58+
IMAGE_DIGEST = data.aws_ecr_image.lambda_image.image_digest
59+
IMAGE_TAG = var.container_ver
5860
}
5961
}
6062
}

terraform/variables.tf

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,6 @@ variable "lambda_name" {
3030
default = "lambda-function"
3131
}
3232

33-
variable "lambda_version" {
34-
description = "AWS Lambda Image Version"
35-
type = string
36-
default = "v0.0.1"
37-
}
38-
3933
variable "lambda_arch" {
4034
description = "AWS Lambda Architecture"
4135
type = string
@@ -77,6 +71,17 @@ variable "region" {
7771
default = "eu-west-2"
7872
}
7973

74+
variable "ecr_repository" {
75+
description = "Name of the ECR repository containing the Lambda image"
76+
type = string
77+
}
78+
79+
variable "container_ver" {
80+
description = "Container tag"
81+
type = string
82+
default = "v1.0.0"
83+
}
84+
8085
variable "project_tag" {
8186
description = "Project"
8287
type = string

0 commit comments

Comments
 (0)