Skip to content

Conversation

@wadherv
Copy link
Contributor

@wadherv wadherv commented Oct 19, 2025

Introducing a new variable parameter_store_tags to add tags for all the SSM Parameter Store resources created via Scale-Up and Pool lambda function.

@wadherv wadherv requested review from a team as code owners October 19, 2025 13:26
@wadherv wadherv marked this pull request as draft October 19, 2025 13:39
@wadherv wadherv marked this pull request as ready for review October 20, 2025 06:59
@npalm npalm requested a review from Copilot October 20, 2025 07:03
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces support for tagging AWS SSM Parameter Store parameters by adding a new parameter_store_tags variable that allows users to specify custom tags to be applied to all SSM parameters created by the Lambda functions.

  • Adds a new parameter_store_tags variable across all modules to accept user-defined tags
  • Updates Lambda functions to read and apply these tags when creating SSM parameters
  • Transforms the tag map into the required format for AWS SSM API calls

Reviewed Changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
variables.tf Adds new parameter_store_tags variable definition at root level
modules/runners/variables.tf Adds parameter_store_tags variable to runners module
modules/runners/local.tf Creates local transformation to convert tag map to AWS format
modules/runners/scale-up.tf Passes transformed tags to scale-up Lambda environment
modules/runners/pool/ Updates pool module to handle parameter store tags
modules/multi-runner/ Adds parameter store tags support to multi-runner module
main.tf Passes parameter store tags variable to runners module
lambdas/ Updates Lambda functions to parse and apply tags to SSM parameters
README.md files Updates documentation to include new parameter store tags variable

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

timeout = number
zip = string
subnet_ids = list(string)
parameter_store_tags = string
Copy link

Copilot AI Oct 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The type for parameter_store_tags should be map(string) to match the variable definition in other modules, not string.

Suggested change
parameter_store_tags = string
parameter_store_tags = map(string)
Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

: [];
const ssmParameterStoreTags = process.env.SSM_PARAMETER_STORE_TAGS
? JSON.parse(process.env.SSM_PARAMETER_STORE_TAGS)
: {};
Copy link

Copilot AI Oct 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default value should be an empty array [] instead of an empty object {} to match the expected type structure used in the scale-up function and maintain consistency.

Suggested change
: {};
: [];
Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@npalm
Copy link
Member

npalm commented Oct 20, 2025

@wadherv thx for your PR, I wont have no option to check open PRs till the end of the month, sorry for the delay

@wadherv
Copy link
Contributor Author

wadherv commented Nov 2, 2025

@wadherv thx for your PR, I wont have no option to check open PRs till the end of the month, sorry for the delay

@npalm if you’ve got a moment, could you take a look at my PR? Would really appreciate it!

@wadherv wadherv requested a review from npalm November 2, 2025 14:31
@npalm
Copy link
Member

npalm commented Nov 2, 2025

Working my way to my backlog, thx for the reminder

@@ -0,0 +1,5 @@
locals {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wadherv sorry for the long wait. Just test the PR with a small adjustment. But would first discuss the intended working.

I see a fewo options, but looking for use cases.

  1. Just apply the values in var.tags to the paramters. Most simple approach.
  2. Allow users two set custom tags for the pramaters, which are applied instead of adding the defautl from var.tgas. But for this I looking for a use case.

I have adjust the this local.tf file for a quick check, optiotn 2.

locals { parameter_store_tags = "[${join(", ", [ for key, value in length(var.parameter_store_tags) > 0 ? var.parameter_store_tags : var.tags : "{ key = \"${key}\", value = \"${value}\" }" ])}]" } 

In this case paramters got the valures from var.tags applices. Since I have not set parameter_store_tags.

What do you think. Are you looking for way have custom tags, or just getting the standard tags applices. When only adding the standard tag set in the module, we could even drop the introduced paramter (reducing complexity) and simply inject var.tags into the lambda.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants