Skip to content

feat: enabled usage of private key with docker autoscaler #1232

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
7 changes: 5 additions & 2 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,10 @@ locals {
gitlab_runner_project_id = var.runner_gitlab_registration_config["project_id"]
gitlab_runner_access_level = var.runner_gitlab_registration_config.access_level
sentry_dsn = var.runner_manager.sentry_dsn
public_key = var.runner_worker_docker_machine_fleet.enable == true ? tls_private_key.fleet[0].public_key_openssh : ""
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 : ""
use_fleet = var.runner_worker_docker_machine_fleet.enable
private_key = var.runner_worker_docker_machine_fleet.enable == true ? tls_private_key.fleet[0].private_key_pem : ""
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 : ""
use_private_key = var.runner_worker.use_private_key && var.runner_worker.type == "docker-autoscaler"
use_new_runner_authentication_gitlab_16 = var.runner_gitlab_registration_config.type != ""
user_data_trace_log = var.debug.trace_runner_user_data
fleeting_plugin_version = var.runner_worker_docker_autoscaler.fleeting_plugin_version
Expand Down Expand Up @@ -134,6 +135,8 @@ locals {

runners_instance_ready_command = var.runner_worker_docker_autoscaler.instance_ready_command

use_private_key = var.runner_worker.use_private_key && var.runner_worker.type == "docker-autoscaler"

runners_autoscaling = [for config in var.runner_worker_docker_autoscaler_autoscaling_options : {
for key, value in config :
# Convert key from snake_case to PascalCase which is the casing for this section.
Expand Down
2 changes: 1 addition & 1 deletion template/gitlab-runner.tftpl
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ else
sed -i.bak s/__REPLACED_BY_USER_DATA__/$token/g /etc/gitlab-runner/config.toml
fi

if [[ "${use_fleet}" == "true" ]]
if [[ "${use_fleet}" == "true" || "${use_private_key}" == "true" ]]
then
echo "${public_key}" > /root/.ssh/id_rsa.pub
echo "${private_key}" > /root/.ssh/id_rsa
Expand Down
3 changes: 3 additions & 0 deletions template/runner-docker-autoscaler-config.tftpl
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
[runners.autoscaler.connector_config]
username = "${connector_config_user}"
use_external_addr = false
%{~ if use_private_key ~}
key_path = "/root/.ssh/id_rsa"
%{~ endif ~}

%{~ for config in runners_autoscaling ~}
[[runners.autoscaler.policy]]
Expand Down
1 change: 1 addition & 0 deletions variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,7 @@ variable "runner_worker" {
request_concurrency = optional(number, 1)
ssm_access = optional(bool, false)
type = optional(string, "docker+machine")
use_private_key = optional(bool, false)
})
default = {}

Expand Down
Loading