@@ -38,6 +38,17 @@ locals {
3838 extra_config = var.runner_install.start_script
3939 })
4040
41+ # "16.0.3" -> ["16", "0", "3"]
42+ runner_version_split = split (" ." , var. runner_gitlab . runner_version )
43+ # ["16", "0", "3"] -> 16
44+ runner_version_major = parseint (local. runner_version_split [0 ], 10 )
45+ # ["16", "0", "3"] -> 0
46+ runner_version_minor = parseint (local. runner_version_split [1 ], 10 )
47+ # https://docs.gitlab.com/runner/executors/docker_autoscaler/#example-aws-autoscaling-for-1-job-per-instance
48+ # GitLab 16.10 and earlier, manually install the plugin
49+ # GitLab 16.11 and later, done through `gitlab runner fleeting install`
50+ runner_use_new_fleeting_install = local. runner_version_major >= 16 && local. runner_version_minor >= 11
51+
4152 file_yum_update = file (" ${ path . module } /template/yum_update.tftpl" )
4253
4354 template_eip = templatefile (" ${ path . module } /template/eip.tftpl" , {
@@ -80,13 +91,15 @@ locals {
8091 public_key = var.runner_worker.use_private_key && var.runner_worker.type == " docker-autoscaler" ? tls_private_key.autoscaler[0 ].public_key_openssh : var.runner_worker_docker_machine_fleet.enable == true ? tls_private_key.fleet[0 ].public_key_openssh : " "
8192 private_key = var.runner_worker.use_private_key && var.runner_worker.type == " docker-autoscaler" ? tls_private_key.autoscaler[0 ].private_key_pem : var.runner_worker_docker_machine_fleet.enable == true ? tls_private_key.fleet[0 ].private_key_pem : " "
8293 use_private_key = var.runner_worker_docker_machine_fleet.enable || (var.runner_worker.use_private_key && var.runner_worker.type == " docker-autoscaler" )
94+ use_new_fleeting_install = local.runner_use_new_fleeting_install
8395 use_new_runner_authentication_gitlab_16 = var.runner_gitlab_registration_config.type != " "
8496 user_data_trace_log = var.debug.trace_runner_user_data
8597 fleeting_plugin_version = var.runner_worker_docker_autoscaler.fleeting_plugin_version
8698 })
8799
88100 template_runner_docker_autoscaler = templatefile (" ${ path . module } /template/runner-docker-autoscaler-config.tftpl" ,
89101 {
102+ fleeting_plugin = local.runner_use_new_fleeting_install ? " aws:latest" : " fleeting-plugin-aws"
90103 docker_autoscaling_name = var.runner_worker.type == " docker-autoscaler" ? aws_autoscaling_group.autoscaler[0 ].name : " "
91104 connector_config_user = var.runner_worker_docker_autoscaler.connector_config_user
92105 runners_capacity_per_instance = var.runner_worker_docker_autoscaler.capacity_per_instance
0 commit comments