-
Notifications
You must be signed in to change notification settings - Fork 722
Expand file tree
/
Copy pathrunners.tf
More file actions
124 lines (106 loc) · 8.28 KB
/
runners.tf
File metadata and controls
124 lines (106 loc) · 8.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
module "runners" {
source = "../runners"
for_each = local.runner_config
aws_region = var.aws_region
aws_partition = var.aws_partition
vpc_id = coalesce(each.value.runner_config.vpc_id, var.vpc_id)
subnet_ids = coalesce(each.value.runner_config.subnet_ids, var.subnet_ids)
prefix = "${var.prefix}-${each.key}"
tags = merge(local.tags, {
"ghr:environment" = "${var.prefix}-${each.key}"
})
s3_runner_binaries = each.value.runner_config.enable_runner_binaries_syncer ? local.runner_binaries_by_os_and_arch_map["${each.value.runner_config.runner_os}_${each.value.runner_config.runner_architecture}"] : null
ssm_paths = {
root = "${local.ssm_root_path}/${each.key}"
tokens = "${var.ssm_paths.runners}/tokens"
config = "${var.ssm_paths.runners}/config"
}
runner_os = each.value.runner_config.runner_os
instance_types = each.value.runner_config.instance_types
instance_target_capacity_type = each.value.runner_config.instance_target_capacity_type
instance_allocation_strategy = each.value.runner_config.instance_allocation_strategy
instance_max_spot_price = each.value.runner_config.instance_max_spot_price
block_device_mappings = each.value.runner_config.block_device_mappings
runner_architecture = each.value.runner_config.runner_architecture
ami = each.value.runner_config.ami
sqs_build_queue = { "arn" : each.value.arn, "url" : each.value.url }
github_app_parameters = local.github_app_parameters
ebs_optimized = each.value.runner_config.ebs_optimized
enable_on_demand_failover_for_errors = each.value.runner_config.enable_on_demand_failover_for_errors
enable_organization_runners = each.value.runner_config.enable_organization_runners
enable_ephemeral_runners = each.value.runner_config.enable_ephemeral_runners
enable_jit_config = each.value.runner_config.enable_jit_config
enable_job_queued_check = each.value.runner_config.enable_job_queued_check
disable_runner_autoupdate = each.value.runner_config.disable_runner_autoupdate
enable_managed_runner_security_group = var.enable_managed_runner_security_group
enable_runner_detailed_monitoring = each.value.runner_config.enable_runner_detailed_monitoring
scale_down_schedule_expression = each.value.runner_config.scale_down_schedule_expression
minimum_running_time_in_minutes = each.value.runner_config.minimum_running_time_in_minutes
runner_boot_time_in_minutes = each.value.runner_config.runner_boot_time_in_minutes
runner_disable_default_labels = each.value.runner_config.runner_disable_default_labels
runner_labels = each.value.runner_config.runner_disable_default_labels ? sort(distinct(each.value.runner_config.runner_extra_labels)) : sort(distinct(concat(["self-hosted", each.value.runner_config.runner_os, each.value.runner_config.runner_architecture], each.value.runner_config.runner_extra_labels)))
runner_as_root = each.value.runner_config.runner_as_root
runner_run_as = each.value.runner_config.runner_run_as
runners_maximum_count = each.value.runner_config.runners_maximum_count
idle_config = each.value.runner_config.idle_config
enable_ssm_on_runners = each.value.runner_config.enable_ssm_on_runners
egress_rules = var.runner_egress_rules
runner_additional_security_group_ids = try(coalescelist(each.value.runner_config.runner_additional_security_group_ids, var.runner_additional_security_group_ids), [])
metadata_options = each.value.runner_config.runner_metadata_options
credit_specification = each.value.runner_config.credit_specification
cpu_options = each.value.runner_config.cpu_options
placement = each.value.runner_config.placement
enable_runner_binaries_syncer = each.value.runner_config.enable_runner_binaries_syncer
lambda_s3_bucket = var.lambda_s3_bucket
runners_lambda_s3_key = var.runners_lambda_s3_key
runners_lambda_s3_object_version = var.runners_lambda_s3_object_version
lambda_runtime = var.lambda_runtime
lambda_architecture = var.lambda_architecture
lambda_zip = var.runners_lambda_zip
lambda_scale_up_memory_size = var.scale_up_lambda_memory_size
lambda_event_source_mapping_batch_size = var.lambda_event_source_mapping_batch_size
lambda_event_source_mapping_maximum_batching_window_in_seconds = var.lambda_event_source_mapping_maximum_batching_window_in_seconds
lambda_timeout_scale_up = var.runners_scale_up_lambda_timeout
lambda_scale_down_memory_size = var.scale_down_lambda_memory_size
lambda_timeout_scale_down = var.runners_scale_down_lambda_timeout
lambda_subnet_ids = var.lambda_subnet_ids
lambda_security_group_ids = var.lambda_security_group_ids
lambda_tags = var.lambda_tags
tracing_config = var.tracing_config
logging_retention_in_days = var.logging_retention_in_days
logging_kms_key_id = var.logging_kms_key_id
enable_cloudwatch_agent = each.value.runner_config.enable_cloudwatch_agent
cloudwatch_config = try(coalesce(each.value.runner_config.cloudwatch_config, var.cloudwatch_config), null)
runner_log_files = each.value.runner_config.runner_log_files
runner_group_name = each.value.runner_config.runner_group_name
runner_name_prefix = each.value.runner_config.runner_name_prefix
scale_up_reserved_concurrent_executions = each.value.runner_config.scale_up_reserved_concurrent_executions
instance_profile_path = var.instance_profile_path
role_path = var.role_path
role_permissions_boundary = var.role_permissions_boundary
enable_userdata = each.value.runner_config.enable_userdata
userdata_template = each.value.runner_config.userdata_template
userdata_content = each.value.runner_config.userdata_content
userdata_pre_install = each.value.runner_config.userdata_pre_install
userdata_post_install = each.value.runner_config.userdata_post_install
runner_hook_job_started = each.value.runner_config.runner_hook_job_started
runner_hook_job_completed = each.value.runner_config.runner_hook_job_completed
key_name = var.key_name
runner_ec2_tags = each.value.runner_config.runner_ec2_tags
create_service_linked_role_spot = each.value.runner_config.create_service_linked_role_spot
runner_iam_role_managed_policy_arns = each.value.runner_config.runner_iam_role_managed_policy_arns
iam_overrides = each.value.runner_config.iam_overrides
ghes_url = var.ghes_url
ghes_ssl_verify = var.ghes_ssl_verify
user_agent = var.user_agent
kms_key_arn = var.kms_key_arn
log_level = var.log_level
pool_config = each.value.runner_config.pool_config
pool_lambda_timeout = var.pool_lambda_timeout
pool_runner_owner = each.value.runner_config.pool_runner_owner
pool_lambda_reserved_concurrent_executions = var.pool_lambda_reserved_concurrent_executions
associate_public_ipv4_address = var.associate_public_ipv4_address
ssm_housekeeper = var.runners_ssm_housekeeper
job_retry = each.value.runner_config.job_retry
metrics = var.metrics
}