You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 16, 2025. It is now read-only.
feat: migrate webhook runner configuration to SSM (#3728)
This PR migrates the confugration for the webhook from environment
variables to SSM to avoid the maximum size of environment variables is
reached.
## Implementation
The webhook will read the configuration from SSM as json string. As long
the lambda is hot the configuration is cached to speed-up the lambda
time. In cases of configuration changes Lambda resources will be
re-created by Terraform to ensure no cached values are used.
fix: #3594
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Niek Palm <[email protected]>
Co-authored-by: Niek Palm <[email protected]>
Copy file name to clipboardExpand all lines: README.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -218,7 +218,7 @@ Talk to the forestkeepers in the `runners-channel` on Slack.
218
218
| <aname="input_runners_ssm_housekeeper"></a> [runners\_ssm\_housekeeper](#input\_runners\_ssm\_housekeeper)| Configuration for the SSM housekeeper lambda. This lambda deletes token / JIT config from SSM.<br><br> `schedule_expression`: is used to configure the schedule for the lambda.<br> `enabled`: enable or disable the lambda trigger via the EventBridge.<br> `lambda_timeout`: timeout for the lambda in seconds.<br> `config`: configuration for the lambda function. Token path will be read by default from the module. | <pre>object({<br> schedule_expression = optional(string, "rate(1 day)")<br> enabled = optional(bool, true)<br> lambda_timeout = optional(number, 60)<br> config = object({<br> tokenPath = optional(string)<br> minimumDaysOld = optional(number, 1)<br> dryRun = optional(bool, false)<br> })<br> })</pre> | <pre>{<br> "config": {}<br>}</pre> | no |
219
219
| <aname="input_scale_down_schedule_expression"></a> [scale\_down\_schedule\_expression](#input\_scale\_down\_schedule\_expression)| Scheduler expression to check every x for scale down. |`string`|`"cron(*/5 * * * ? *)"`| no |
220
220
| <aname="input_scale_up_reserved_concurrent_executions"></a> [scale\_up\_reserved\_concurrent\_executions](#input\_scale\_up\_reserved\_concurrent\_executions)| Amount of reserved concurrent executions for the scale-up lambda function. A value of 0 disables lambda from being triggered and -1 removes any concurrency limitations. |`number`|`1`| no |
221
-
| <aname="input_ssm_paths"></a> [ssm\_paths](#input\_ssm\_paths)| The root path used in SSM to store configuration and secrets. | <pre>object({<br> root = optional(string, "github-action-runners")<br> app = optional(string, "app")<br> runners = optional(string, "runners")<br> use_prefix = optional(bool, true)<br> })</pre> |`{}`| no |
221
+
| <aname="input_ssm_paths"></a> [ssm\_paths](#input\_ssm\_paths)| The root path used in SSM to store configuration and secrets. | <pre>object({<br> root = optional(string, "github-action-runners")<br> app = optional(string, "app")<br> runners = optional(string, "runners")<br> webhook = optional(string, "webhook")<br> use_prefix = optional(bool, true)<br> })</pre> |`{}`| no |
222
222
| <aname="input_state_event_rule_binaries_syncer"></a> [state\_event\_rule\_binaries\_syncer](#input\_state\_event\_rule\_binaries\_syncer)| Option to disable EventBridge Lambda trigger for the binary syncer, useful to stop automatic updates of binary distribution |`string`|`"ENABLED"`| no |
223
223
| <aname="input_subnet_ids"></a> [subnet\_ids](#input\_subnet\_ids)| List of subnets in which the action runner instances will be launched. The subnets need to exist in the configured VPC (`vpc_id`), and must reside in different availability zones (see https://github.com/philips-labs/terraform-aws-github-runner/issues/2904)|`list(string)`| n/a | yes |
224
224
| <aname="input_syncer_lambda_s3_key"></a> [syncer\_lambda\_s3\_key](#input\_syncer\_lambda\_s3\_key)| S3 key for syncer lambda function. Required if using an S3 bucket to specify lambdas. |`string`|`null`| no |
Copy file name to clipboardExpand all lines: docs/configuration.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ The module uses the AWS System Manager Parameter Store to store configuration fo
22
22
|`ssm_paths.root/var.prefix?/app/`| App secrets used by Lambda's |
23
23
|`ssm_paths.root/var.prefix?/runners/config/<name>`| Configuration parameters used by runner start script |
24
24
|`ssm_paths.root/var.prefix?/runners/tokens/<ec2-instance-id>`| Either JIT configuration (ephemeral runners) or registration tokens (non ephemeral runners) generated by the control plane (scale-up lambda), and consumed by the start script on the runner to activate / register the runner. |
25
-
25
+
|`ssm_paths.root/var.prefix?/webhook/runner-matcher-config`| Runner matcher config used by webhook to decide the target for the webhook event. |
0 commit comments