@@ -85,74 +85,33 @@ locals {
8585 fleeting_plugin_version = var.runner_worker_docker_autoscaler.fleeting_plugin_version
8686 })
8787
88- template_runner_docker_autoscaler = templatefile (" ${ path . module } /template/runner-docker-autoscaler-config.tftpl" ,
89- {
90- docker_autoscaling_name = var.runner_worker.type == " docker-autoscaler" ? aws_autoscaling_group.autoscaler[0 ].name : " "
91- connector_config_user = var.runner_worker_docker_autoscaler.connector_config_user
92- runners_capacity_per_instance = var.runner_worker_docker_autoscaler.capacity_per_instance
93- runners_max_use_count = var.runner_worker_docker_autoscaler.max_use_count
94- runners_max_instances = var.runner_worker.max_jobs
95-
96- runners_update_interval = var.runner_worker_docker_autoscaler.update_interval
97- runners_update_interval_when_expecting = var.runner_worker_docker_autoscaler.update_interval_when_expecting
98-
99- runners_instance_ready_command = var.runner_worker_docker_autoscaler.instance_ready_command
100-
101- use_private_key = var.runner_worker.use_private_key && var.runner_worker.type == " docker-autoscaler"
102-
103- runners_autoscaling = [for config in var . runner_worker_docker_autoscaler_autoscaling_options : {
104- for key , value in config :
105- # Convert key from snake_case to PascalCase which is the casing for this section.
106- key = > jsonencode (value) if value != null
107- }]
108- })
109-
110- template_runner_worker_config = templatefile (" ${ path . module } /template/runner-worker-config.tftpl" ,
111- {
112- aws_region = data.aws_region.current.name
113- gitlab_url = var.runner_gitlab.url
114- gitlab_clone_url = var.runner_gitlab.url_clone
115- tls_ca_file = length (var. runner_gitlab . certificate ) > 0 ? " tls-ca-file=\" /etc/gitlab-runner/certs/gitlab.crt\" " : " "
116- runners_machine_autoscaling = [for config in var . runner_worker_docker_machine_autoscaling_options : {
117- for key , value in config :
118- # Convert key from snake_case to PascalCase which is the casing for this section.
119- join (" " , [for subkey in split (" _" , key) : title (subkey)]) => jsonencode (value) if value != null
120- }]
121-
122- runners_name = var.runner_instance.name
123- runners_token = var.runner_gitlab.registration_token
124- runners_executor = var.runner_worker.type
125- runners_limit = var.runner_worker.max_jobs
126- runners_environment_vars = jsonencode (var. runner_worker . environment_variables )
127- runners_pre_build_script = var.runner_worker_gitlab_pipeline.pre_build_script
128- runners_post_build_script = var.runner_worker_gitlab_pipeline.post_build_script
129- runners_pre_clone_script = var.runner_worker_gitlab_pipeline.pre_clone_script
130- runners_request_concurrency = var.runner_worker.request_concurrency
131- runners_output_limit = var.runner_worker.output_limit
132- runners_volumes_tmpfs = join (" \n " , [for v in var . runner_worker_docker_volumes_tmpfs : format (" \" %s\" = \" %s\" " , v. volume , v. options )])
133- runners_services_volumes_tmpfs = join (" \n " , [for v in var . runner_worker_docker_services_volumes_tmpfs : format (" \" %s\" = \" %s\" " , v. volume , v. options )])
134- runners_docker_services = local.runners_docker_services
135- runners_docker_options = local.runners_docker_options_toml
136- bucket_name = local.bucket_name
137- shared_cache = var.runner_worker_cache.shared
138- auth_type = var.runner_worker_cache.authentication_type
139- runners_docker_autoscaler = var.runner_worker.type == " docker-autoscaler" ? local.template_runner_docker_autoscaler : " "
140- runners_docker_machine = var.runner_worker.type == " docker+machine" ? local.template_runner_docker_machine : " "
141- }
142- )
143-
14488 template_runner_config = templatefile (" runner-agent.tftpl" ,
14589 {
14690 prometheus_listen_address = var.runner_manager.prometheus_listen_address
14791 runners_check_interval = var.runner_manager.gitlab_check_interval
14892 runners_concurrent = var.runner_manager.maximum_concurrent_jobs
14993 sentry_dsn = var.runner_manager.sentry_dsn
15094
151- runners = [local.template_runner_worker_config ]
95+ runners = [module.runner.runner_config ]
15296 }
15397 )
15498}
15599
100+ module "runner" {
101+ source = " ./modules/runner-config"
102+
103+ kms_key_arn = local. kms_key_arn
104+ cache_bucket_name = local. bucket_name
105+ docker_autoscaler_asg_name = var. runner_worker . type == " docker-autoscaler" ? aws_autoscaling_group. autoscaler [0 ]. name : " "
106+ docker_machine_runner_name = local. runner_tags_merged [" Name" ]
107+ docker_machine_availability_zone_name = data. aws_availability_zone . runners . name_suffix
108+ docker_machine_instance_profile_name = var. runner_worker . type == " docker+machine" ? aws_iam_instance_profile. docker_machine [0 ]. name : " "
109+ docker_machine_security_group_name = var. runner_worker . type == " docker+machine" ? aws_security_group. docker_machine [0 ]. name : " "
110+ docker_machine_ami_id = data. aws_ami . docker_machine_by_filter [0 ]. id
111+ docker_machine_fleet_launch_template_name = var. runner_worker_docker_machine_fleet . enable == true ? aws_launch_template. fleet_gitlab_runner [0 ]. name : " "
112+ docker_machine_tags = local. runner_tags_merged
113+ }
114+
156115# ignores: Autoscaling Groups Supply Tags --> we use a "dynamic" block to create the tags
157116# ignores: Auto Scaling Group With No Associated ELB --> that's simply not true, as the EC2 instance contacts GitLab. So no ELB needed here.
158117# kics-scan ignore-line
0 commit comments