Skip to content

SSM parameters can exceed 4K limit breaking terraform apply #3815

@thresheek

Description

@thresheek

Hello!

We're using multi-runner 5.9.0 with SSM parameters store.

With a sufficiently high amount of defined runners - we currently have 15, but plan to scale to ~40 - we get the following error when applying terraform changes:

│ Error: updating SSM Parameter (/github-action-runners/gh-ci/webhook/runner-matcher-config): ValidationException:
Standard tier parameters support a maximum parameter value of 4096 characters.
To create a larger parameter value, upgrade the parameter to use the advanced-parameter tier.
For more information, see https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html
│ 	status code: 400, request id: c3f391e5-8d78-46d1-af02-acaead059fe6
│
│   with module.runners.module.webhook.aws_ssm_parameter.runner_matcher_config,
│   on .terraform/modules/runners/modules/webhook/main.tf line 60, in resource "aws_ssm_parameter" "runner_matcher_config":
│   60: resource "aws_ssm_parameter" "runner_matcher_config" {

Now, manually moving the parameter to Advanced tier works around the current issue, but this highlights a problem we'd hitwhen we will define more runners.
While we probably can save a few bytes by not providing a self-hosted tag, I don't think it'll make much of difference. Here's the typical part of a json that's in that parameter:

  {
    "arn": "arn:aws:sqs:us-east-1:1234567890:gh-ci-debian-11-arm64-queued-builds.fifo",
    "fifo": true,
    "id": "https://sqs.us-east-1.amazonaws.com/1234567890/gh-ci-debian-11-arm64-queued-builds.fifo",
    "key": "debian-11-arm64",
    "matcherConfig": {
      "exactMatch": true,
      "labelMatchers": [
        [
          "self-hosted",
          "debian-11-arm64"
        ]
      ],
      "priority": 1
    }
  },

looks like arn/id are the best candidates to trim down.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions