Skip to content

Commit c5d64c4

Browse files
committed
Allow custom runner agent IAM role fixups (#572)
1 parent bc404cb commit c5d64c4

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
@@ -243,7 +243,7 @@ resource "aws_launch_template" "gitlab_runner_instance" {
243243
}
244244
}
245245
iam_instance_profile {
246-
name = aws_iam_instance_profile.instance.name
246+
name = local.aws_iam_instance_profile_instance_name
247247
}
248248
dynamic "block_device_mappings" {
249249
for_each = [var.runner_root_block_device]
@@ -322,14 +322,16 @@ module "cache" {
322322
### Trust policy
323323
################################################################################
324324
resource "aws_iam_instance_profile" "instance" {
325-
name = "${local.name_iam_objects}-instance"
325+
count = var.create_runner_iam_role ? 1 : 0
326+
327+
name = local.aws_iam_role_instance_name
326328
role = local.aws_iam_role_instance_name
327329
tags = local.tags
328330
}
329331

330332
resource "aws_iam_role" "instance" {
331333
count = var.create_runner_iam_role ? 1 : 0
332-
name = "${local.name_iam_objects}-instance"
334+
name = local.aws_iam_role_instance_name
333335
assume_role_policy = length(var.instance_role_json) > 0 ? var.instance_role_json : templatefile("${path.module}/policies/instance-role-trust-policy.json", {})
334336
permissions_boundary = var.permissions_boundary == "" ? null : "arn:${data.aws_partition.current.partition}:iam::${data.aws_caller_identity.current.account_id}:policy/${var.permissions_boundary}"
335337
tags = merge(local.tags, var.role_tags)
@@ -341,6 +343,7 @@ resource "aws_iam_role" "instance" {
341343
### iam:PassRole To pass the role from the agent to the docker machine runners
342344
################################################################################
343345
resource "aws_iam_policy" "instance_docker_machine_policy" {
346+
count = var.create_runner_iam_role ? 1 : 0
344347
name = "${local.name_iam_objects}-docker-machine"
345348
path = "/"
346349
description = "Policy for docker machine."
@@ -352,8 +355,10 @@ resource "aws_iam_policy" "instance_docker_machine_policy" {
352355
}
353356

354357
resource "aws_iam_role_policy_attachment" "instance_docker_machine_policy" {
358+
count = var.create_runner_iam_role ? 1 : 0
359+
355360
role = local.aws_iam_role_instance_name
356-
policy_arn = aws_iam_policy.instance_docker_machine_policy.arn
361+
policy_arn = aws_iam_policy.instance_docker_machine_policy[count.index].arn
357362
}
358363

359364
################################################################################
@@ -387,7 +392,8 @@ resource "aws_iam_role_policy_attachment" "instance_session_manager_aws_managed"
387392
### Add user defined policies
388393
################################################################################
389394
resource "aws_iam_role_policy_attachment" "user_defined_policies" {
390-
count = length(var.runner_iam_policy_arns)
395+
count = length(var.runner_iam_policy_arns)
396+
391397
role = local.aws_iam_role_instance_name
392398
policy_arn = var.runner_iam_policy_arns[count.index]
393399
}

0 commit comments

Comments
 (0)