Skip to content

Commit bcb0c0e

Browse files
authored
fix: Allow custom runner agent IAM role fixups (#572) (#577)
1 parent f72b8e3 commit bcb0c0e

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

Diff for: logging.tf

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
resource "aws_iam_role_policy" "instance" {
2-
count = var.enable_cloudwatch_logging ? 1 : 0
3-
name = "${local.name_iam_objects}-instance-role"
2+
count = var.enable_cloudwatch_logging && var.create_runner_iam_role ? 1 : 0
3+
name = "${local.name_iam_objects}-logging"
44
role = local.aws_iam_role_instance_name
55
policy = templatefile("${path.module}/policies/instance-logging-policy.json", { partition = data.aws_partition.current.partition })
66
}

Diff for: main.tf

+11-5
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ resource "aws_launch_template" "gitlab_runner_instance" {
247247
}
248248
}
249249
iam_instance_profile {
250-
name = aws_iam_instance_profile.instance.name
250+
name = local.aws_iam_role_instance_name
251251
}
252252
dynamic "block_device_mappings" {
253253
for_each = [var.runner_root_block_device]
@@ -330,14 +330,16 @@ module "cache" {
330330
### Trust policy
331331
################################################################################
332332
resource "aws_iam_instance_profile" "instance" {
333-
name = "${local.name_iam_objects}-instance"
333+
count = var.create_runner_iam_role ? 1 : 0
334+
335+
name = local.aws_iam_role_instance_name
334336
role = local.aws_iam_role_instance_name
335337
tags = local.tags
336338
}
337339

338340
resource "aws_iam_role" "instance" {
339341
count = var.create_runner_iam_role ? 1 : 0
340-
name = "${local.name_iam_objects}-instance"
342+
name = local.aws_iam_role_instance_name
341343
assume_role_policy = length(var.instance_role_json) > 0 ? var.instance_role_json : templatefile("${path.module}/policies/instance-role-trust-policy.json", {})
342344
permissions_boundary = var.permissions_boundary == "" ? null : "arn:${data.aws_partition.current.partition}:iam::${data.aws_caller_identity.current.account_id}:policy/${var.permissions_boundary}"
343345
tags = merge(local.tags, var.role_tags)
@@ -349,6 +351,7 @@ resource "aws_iam_role" "instance" {
349351
### iam:PassRole To pass the role from the agent to the docker machine runners
350352
################################################################################
351353
resource "aws_iam_policy" "instance_docker_machine_policy" {
354+
count = var.create_runner_iam_role ? 1 : 0
352355
name = "${local.name_iam_objects}-docker-machine"
353356
path = "/"
354357
description = "Policy for docker machine."
@@ -360,8 +363,10 @@ resource "aws_iam_policy" "instance_docker_machine_policy" {
360363
}
361364

362365
resource "aws_iam_role_policy_attachment" "instance_docker_machine_policy" {
366+
count = var.create_runner_iam_role ? 1 : 0
367+
363368
role = local.aws_iam_role_instance_name
364-
policy_arn = aws_iam_policy.instance_docker_machine_policy.arn
369+
policy_arn = aws_iam_policy.instance_docker_machine_policy[count.index].arn
365370
}
366371

367372
################################################################################
@@ -395,7 +400,8 @@ resource "aws_iam_role_policy_attachment" "instance_session_manager_aws_managed"
395400
### Add user defined policies
396401
################################################################################
397402
resource "aws_iam_role_policy_attachment" "user_defined_policies" {
398-
count = length(var.runner_iam_policy_arns)
403+
count = length(var.runner_iam_policy_arns)
404+
399405
role = local.aws_iam_role_instance_name
400406
policy_arn = var.runner_iam_policy_arns[count.index]
401407
}

0 commit comments

Comments
 (0)