Skip to content

Commit c4f51cc

Browse files
committed
updates for cirrus v2 compatibility
1 parent 45a0adf commit c4f51cc

24 files changed

Lines changed: 141 additions & 26 deletions

File tree

CHANGELOG.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1515

1616
- Added SSM parameter for Cirrus process queue ARN (`CIRRUS_PROCESS_QUEUE_ARN`)
1717

18+
- Added `payload_root_prefix` input variable to the cirrus module. This value
19+
is propagated as the `CIRRUS_PAYLOAD_ROOT_PREFIX` environment variable to all
20+
builtin Cirrus Lambda functions, stored as an SSM parameter, and available as
21+
a builtin template variable in definition YAMLs. Defaults to `"cirrus"`.
22+
Only functional with a cirrus version >=2.
23+
24+
- Added `payload_tmp_lifecycle_expiration_days` input variable to the cirrus
25+
module. When the payload bucket is created by the module, an S3 lifecycle
26+
rule expires objects under `{payload_root_prefix}/tmp/` after the configured
27+
number of days (default 10). Set to 0 to disable. Only functional with a
28+
cirrus version >=2.
29+
1830
### Change
1931

2032
### Fixed
@@ -49,9 +61,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
4961

5062
- TiTiler module will note three IAM related resources being created: aws_iam_role_policy.titiler-mosaic-lambda-inline-policy, aws_iam_role_policy_attachment.lambda_basic_execution, aws_iam_role_policy_attachment.lambda_vpc_access. This is a result of AWS provider deprecations to managed_policy and inline_policy properties. The TiTiler role in question will updated in place, resulting in no material changes to the role.
5163

52-
- Removing internal stac-server terraform module code and pointed to new location as stac-server terraform module code now lives in it's own [stac-server terraform repo](https://github.com/Element84/terraform-aws-stac-server) ([216](https://github.com/Element84/filmdrop-aws-tf-modules/pull/216)).
64+
- Removing internal stac-server terraform module code and pointed to new location as stac-server terraform module code now lives in it's own [stac-server terraform repo](https://github.com/Element84/terraform-aws-stac-server) ([216](https://github.com/Element84/filmdrop-aws-tf-modules/pull/216)).
5365

54-
- Removing internal console-ui terraform module and pointing to an externally sourced module [filmdrop-ui](https://github.com/Element84/terraform-aws-filmdrop-ui) ([216](https://github.com/Element84/filmdrop-aws-tf-modules/pull/216)).
66+
- Removing internal console-ui terraform module and pointing to an externally sourced module [filmdrop-ui](https://github.com/Element84/terraform-aws-filmdrop-ui) ([216](https://github.com/Element84/filmdrop-aws-tf-modules/pull/216)).
5567

5668
- `cirrus api` lambda extracted into its own module, and can now be optionally deployed (or not) along with other cirrus built in lambdas when deploying the larger cirrus ecosystem ([248](https://github.com/Element84/filmdrop-aws-tf-modules/pull/248))
5769

ci.tfvars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,8 @@ cirrus_inputs = {
268268
workflow_definitions_variables_ssm = null
269269
workflow_metrics_cloudwatch_enabled = true
270270
workflow_metrics_timestream_enabled = true
271+
payload_root_prefix = "cirrus"
272+
payload_tmp_lifecycle_expiration_days = 10
271273
}
272274

273275
cirrus_dashboard_inputs = {

default.tfvars

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,8 @@ cirrus_inputs = {
279279
workflow_definitions_variables_ssm = null
280280
workflow_metrics_cloudwatch_enabled = true
281281
workflow_metrics_timestream_enabled = true
282+
payload_root_prefix = "cirrus"
283+
payload_tmp_lifecycle_expiration_days = 10
282284
}
283285

284286
cirrus_dashboard_inputs = {

inputs.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,8 @@ variable "cirrus_inputs" {
571571
cirrus_cli_iam_role_trust_principal = optional(list(string))
572572
workflow_metrics_cloudwatch_enabled = optional(bool)
573573
workflow_metrics_timestream_enabled = optional(bool)
574+
payload_root_prefix = optional(string, "cirrus")
575+
payload_tmp_lifecycle_expiration_days = optional(number, 10)
574576
})
575577
default = {
576578
data_bucket = "cirrus-data-bucket-name"
@@ -632,6 +634,8 @@ variable "cirrus_inputs" {
632634
cirrus_cli_iam_role_trust_principal = null
633635
workflow_metrics_cloudwatch_enabled = false
634636
workflow_metrics_timestream_enabled = true
637+
payload_root_prefix = "cirrus"
638+
payload_tmp_lifecycle_expiration_days = 10
635639
}
636640
}
637641

modules/cirrus/README.md

Lines changed: 9 additions & 6 deletions
Large diffs are not rendered by default.

modules/cirrus/base.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ module "base" {
1515
workflow_metrics_timestream_enabled = var.workflow_metrics_timestream_enabled
1616
cirrus_data_bucket = var.cirrus_data_bucket
1717
cirrus_payload_bucket = var.cirrus_payload_bucket
18+
payload_root_prefix = var.payload_root_prefix
19+
payload_tmp_lifecycle_expiration_days = var.payload_tmp_lifecycle_expiration_days
1820
warning_sns_topic_arn = var.warning_sns_topic_arn
1921
deploy_alarms = var.deploy_alarms
2022
}

modules/cirrus/base/inputs.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,18 @@ variable "cirrus_payload_bucket" {
4545
type = string
4646
}
4747

48+
variable "payload_root_prefix" {
49+
description = "Root prefix for payloads in the cirrus payload bucket."
50+
type = string
51+
default = "cirrus"
52+
}
53+
54+
variable "payload_tmp_lifecycle_expiration_days" {
55+
description = "Days after which objects under {payload_root_prefix}/tmp/ are expired. 0 disables."
56+
type = number
57+
default = 10
58+
}
59+
4860
variable "warning_sns_topic_arn" {
4961
description = "String with FilmDrop Warning SNS topic ARN"
5062
type = string

modules/cirrus/base/s3.tf

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,22 @@ resource "aws_s3_bucket" "cirrus_payload_bucket" {
1111
bucket_prefix = "${var.resource_prefix}-payload-"
1212
force_destroy = true
1313
}
14+
15+
resource "aws_s3_bucket_lifecycle_configuration" "cirrus_payload_bucket" {
16+
count = var.cirrus_payload_bucket == "" && var.payload_tmp_lifecycle_expiration_days > 0 ? 1 : 0
17+
18+
bucket = aws_s3_bucket.cirrus_payload_bucket[0].id
19+
20+
rule {
21+
id = "expire-tmp-objects"
22+
status = "Enabled"
23+
24+
filter {
25+
prefix = "${var.payload_root_prefix}/tmp/"
26+
}
27+
28+
expiration {
29+
days = var.payload_tmp_lifecycle_expiration_days
30+
}
31+
}
32+
}

modules/cirrus/builtin-functions/api.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module "api" {
99
cirrus_log_level = var.cirrus_log_level
1010
cirrus_data_bucket = var.cirrus_data_bucket
1111
cirrus_payload_bucket = var.cirrus_payload_bucket
12+
payload_root_prefix = var.payload_root_prefix
1213
cirrus_lambda_version = var.cirrus_lambda_version
1314
cirrus_lambda_zip_filepath = var.cirrus_lambda_zip_filepath
1415
cirrus_lambda_pyversion = var.cirrus_lambda_pyversion

modules/cirrus/builtin-functions/api/api.tf

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,10 @@ resource "aws_lambda_function" "cirrus_api" {
152152
environment {
153153
variables = merge(
154154
{
155-
CIRRUS_LOG_LEVEL = var.cirrus_log_level
156-
CIRRUS_DATA_BUCKET = var.cirrus_data_bucket
157-
CIRRUS_PAYLOAD_BUCKET = var.cirrus_payload_bucket
155+
CIRRUS_LOG_LEVEL = var.cirrus_log_level
156+
CIRRUS_DATA_BUCKET = var.cirrus_data_bucket
157+
CIRRUS_PAYLOAD_BUCKET = var.cirrus_payload_bucket
158+
CIRRUS_PAYLOAD_ROOT_PREFIX = var.payload_root_prefix
158159
CIRRUS_STATE_DB = var.cirrus_state_dynamodb_table_name
159160
},
160161
var.workflow_metrics_timestream_enabled ? {

0 commit comments

Comments
 (0)