Skip to content

Commit adb1ac4

Browse files
authored
Fix conditional logic for creating IAM role (#80)
* Fix conditional logic for creating IAM role (do not create role if var.enabled=false).
1 parent 27fa74b commit adb1ac4

File tree

6 files changed

+18
-14
lines changed

6 files changed

+18
-14
lines changed

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -357,8 +357,8 @@ Check out [our other projects][github], [follow us on twitter][twitter], [apply
357357
### Contributors
358358

359359
<!-- markdownlint-disable -->
360-
| [![Erik Osterman][osterman_avatar]][osterman_homepage]<br/>[Erik Osterman][osterman_homepage] | [![Andriy Knysh][aknysh_avatar]][aknysh_homepage]<br/>[Andriy Knysh][aknysh_homepage] | [![Igor Rodionov][goruha_avatar]][goruha_homepage]<br/>[Igor Rodionov][goruha_homepage] | [![Bobby Larson][karma0_avatar]][karma0_homepage]<br/>[Bobby Larson][karma0_homepage] | [![Vladimir Syromyatnikov][SweetOps_avatar]][SweetOps_homepage]<br/>[Vladimir Syromyatnikov][SweetOps_homepage] |
361-
|---|---|---|---|---|
360+
| [![Erik Osterman][osterman_avatar]][osterman_homepage]<br/>[Erik Osterman][osterman_homepage] | [![Andriy Knysh][aknysh_avatar]][aknysh_homepage]<br/>[Andriy Knysh][aknysh_homepage] | [![Igor Rodionov][goruha_avatar]][goruha_homepage]<br/>[Igor Rodionov][goruha_homepage] | [![Bobby Larson][karma0_avatar]][karma0_homepage]<br/>[Bobby Larson][karma0_homepage] | [![Vladimir Syromyatnikov][SweetOps_avatar]][SweetOps_homepage]<br/>[Vladimir Syromyatnikov][SweetOps_homepage] | [![Yonatan Koren][korenyoni_avatar]][korenyoni_homepage]<br/>[Yonatan Koren][korenyoni_homepage] |
361+
|---|---|---|---|---|---|
362362
<!-- markdownlint-restore -->
363363

364364
[osterman_homepage]: https://github.com/osterman
@@ -371,6 +371,8 @@ Check out [our other projects][github], [follow us on twitter][twitter], [apply
371371
[karma0_avatar]: https://img.cloudposse.com/150x150/https://github.com/karma0.png
372372
[SweetOps_homepage]: https://github.com/SweetOps
373373
[SweetOps_avatar]: https://img.cloudposse.com/150x150/https://github.com/SweetOps.png
374+
[korenyoni_homepage]: https://github.com/korenyoni
375+
[korenyoni_avatar]: https://img.cloudposse.com/150x150/https://github.com/korenyoni.png
374376

375377
[![README Footer][readme_footer_img]][readme_footer_link]
376378
[![Beacon][beacon]][website]

README.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,5 @@ contributors:
5656
github: "karma0"
5757
- name: "Vladimir Syromyatnikov"
5858
github: "SweetOps"
59+
- name: "Yonatan Koren"
60+
github: "korenyoni"

examples/complete/main.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ provider "aws" {
44

55
module "vpc" {
66
source = "cloudposse/vpc/aws"
7-
version = "0.18.1"
7+
version = "0.25.0"
88

99
cidr_block = "172.16.0.0/16"
1010

@@ -13,7 +13,7 @@ module "vpc" {
1313

1414
module "subnets" {
1515
source = "cloudposse/dynamic-subnets/aws"
16-
version = "0.33.0"
16+
version = "0.39.3"
1717
availability_zones = var.availability_zones
1818
vpc_id = module.vpc.vpc_id
1919
igw_id = module.vpc.igw_id
@@ -26,7 +26,7 @@ module "subnets" {
2626

2727
module "aws_key_pair" {
2828
source = "cloudposse/key-pair/aws"
29-
version = "0.16.1"
29+
version = "0.18.0"
3030
attributes = ["ssh", "key"]
3131
ssh_public_key_path = var.ssh_key_path
3232
generate_ssh_key = var.generate_ssh_key

iam.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
resource "aws_iam_instance_profile" "default" {
2-
count = (module.this.enabled && local.instance_profile_count == 0) ? 0 : 1
2+
count = module.this.enabled && local.create_instance_profile ? 1 : 0
33
name = module.this.id
44
role = aws_iam_role.default[0].name
55
tags = module.this.tags
66
}
77

88
resource "aws_iam_role" "default" {
9-
count = (module.this.enabled && local.instance_profile_count == 0) ? 0 : 1
9+
count = module.this.enabled && local.create_instance_profile ? 1 : 0
1010
name = module.this.id
1111
path = "/"
1212
tags = module.this.tags
@@ -15,7 +15,7 @@ resource "aws_iam_role" "default" {
1515
}
1616

1717
resource "aws_iam_role_policy" "main" {
18-
count = (module.this.enabled && local.instance_profile_count == 0) ? 0 : 1
18+
count = module.this.enabled && local.create_instance_profile ? 1 : 0
1919
name = module.this.id
2020
role = aws_iam_role.default[0].id
2121
policy = data.aws_iam_policy_document.main.json

main.tf

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
locals {
2-
instance_profile_count = module.this.enabled ? (length(var.instance_profile) > 0 ? 0 : 1) : 0
3-
instance_profile = local.instance_profile_count == 0 ? var.instance_profile : join("", aws_iam_instance_profile.default.*.name)
4-
eip_enabled = var.associate_public_ip_address && var.assign_eip_address && module.this.enabled
5-
security_group_enabled = module.this.enabled && var.security_group_enabled
6-
public_dns = local.eip_enabled ? local.public_dns_rendered : join("", aws_instance.default.*.public_dns)
2+
create_instance_profile = module.this.enabled && try(length(var.instance_profile), 0) == 0
3+
instance_profile = local.create_instance_profile ? var.instance_profile : join("", aws_iam_instance_profile.default.*.name)
4+
eip_enabled = var.associate_public_ip_address && var.assign_eip_address && module.this.enabled
5+
security_group_enabled = module.this.enabled && var.security_group_enabled
6+
public_dns = local.eip_enabled ? local.public_dns_rendered : join("", aws_instance.default.*.public_dns)
77
public_dns_rendered = local.eip_enabled ? format("ec2-%s.%s.amazonaws.com",
88
replace(join("", aws_eip.default.*.public_ip), ".", "-"),
99
data.aws_region.default.name == "us-east-1" ? "compute-1" : format("%s.compute", data.aws_region.default.name)

test/src/examples_complete_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func TestExamplesComplete(t *testing.T) {
5555
// Run `terraform output` to get the value of an output variable
5656
keyName := terraform.Output(t, terraformOptions, "key_name")
5757
// Verify we're getting back the outputs we expect
58-
assert.Equal(t, "eg-test-ec2-bastion-ssh-key-"+randID, keyName)
58+
assert.Equal(t, "eg-test-ec2-bastion-" + randID + "-ssh-key", keyName)
5959

6060
// Run `terraform output` to get the value of an output variable
6161
privateDns := terraform.Output(t, terraformOptions, "private_dns")

0 commit comments

Comments
 (0)