Skip to content

Commit 2161c01

Browse files
authored
Merge pull request #24 from clouddrove/feat/enable-disable-module
feat: module enable-disable feature added
2 parents 0e29065 + 687d108 commit 2161c01

File tree

12 files changed

+35
-20
lines changed

12 files changed

+35
-20
lines changed

.github/dependabot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ updates:
2828
open-pull-requests-limit: 3
2929

3030
- package-ecosystem: "terraform" # See documentation for possible values
31-
directory: "/_example/privat_ecr" # Location of package manifests
31+
directory: "/_example/private_ecr" # Location of package manifests
3232
schedule:
3333
interval: "weekly"
3434
# Add assignees

.github/workflows/auto_assignee.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
workflow_dispatch:
66
jobs:
77
assignee:
8-
uses: clouddrove/github-shared-workflows/.github/workflows/auto_assignee.yml@master
8+
uses: clouddrove/github-shared-workflows/.github/workflows/auto_assignee.yml@1.0.6
99
secrets:
1010
GITHUB: ${{ secrets.GITHUB }}
1111
with:

.github/workflows/changelog.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
workflow_dispatch:
88
jobs:
99
changelog:
10-
uses: clouddrove/github-shared-workflows/.github/workflows/changelog.yml@master
10+
uses: clouddrove/github-shared-workflows/.github/workflows/changelog.yml@1.0.6
1111
secrets: inherit
1212
with:
1313
branch: 'master'

.github/workflows/tf-checks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ on:
66
workflow_dispatch:
77
jobs:
88
private_ecr:
9-
uses: clouddrove/github-shared-workflows/.github/workflows/tf-checks.yml@master
9+
uses: clouddrove/github-shared-workflows/.github/workflows/tf-checks.yml@1.0.6
1010
with:
1111
working_directory: './_example/private_ecr/'
1212
public_ecr:
13-
uses: clouddrove/github-shared-workflows/.github/workflows/tf-checks.yml@master
13+
uses: clouddrove/github-shared-workflows/.github/workflows/tf-checks.yml@1.0.6
1414
with:
1515
working_directory: './_example/public_ecr/'

.github/workflows/tflint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ on:
66
workflow_dispatch:
77
jobs:
88
tf-lint:
9-
uses: clouddrove/github-shared-workflows/.github/workflows/tf-lint.yml@master
9+
uses: clouddrove/github-shared-workflows/.github/workflows/tf-lint.yml@1.0.6
1010
secrets:
1111
GITHUB: ${{ secrets.GITHUB }}

.github/workflows/tfsec.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
workflow_dispatch:
66
jobs:
77
tfsec:
8-
uses: clouddrove/github-shared-workflows/.github/workflows/tfsec.yml@master
8+
uses: clouddrove/github-shared-workflows/.github/workflows/tfsec.yml@1.0.6
99
secrets: inherit
1010
with:
1111
working_directory: '.'

_example/private_ecr/example.tf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ locals {
1111
## private_ecr module call.
1212
##-----------------------------------------------------------------------------
1313
module "private_ecr" {
14-
source = "./../../"
14+
source = "./../../"
15+
1516
enable_private_ecr = true
1617
name = local.name
1718
environment = local.environment

_example/private_ecr/versions.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Terraform version
22
terraform {
3-
required_version = ">= 1.5.5"
3+
required_version = ">= 1.5.7"
44

55
required_providers {
66
aws = {
77
source = "hashicorp/aws"
8-
version = ">= 5.13.1"
8+
version = ">= 5.20.0"
99
}
1010
}
1111
}

_example/public_ecr/versions.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Terraform version
22
terraform {
3-
required_version = ">= 1.5.5"
3+
required_version = ">= 1.5.7"
44

55
required_providers {
66
aws = {
77
source = "hashicorp/aws"
8-
version = ">= 5.13.1"
8+
version = ">= 5.20.0"
99
}
1010
}
1111
}

main.tf

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ module "labels" {
3333
# Private Repository
3434
################################################################################
3535
resource "aws_ecr_repository" "default" {
36-
count = var.enable_private_ecr ? 1 : 0
36+
count = var.enable && var.enable_private_ecr ? 1 : 0
3737
name = var.use_fullname != "" ? var.use_fullname : module.labels.id
3838
tags = module.labels.tags
3939
image_tag_mutability = var.image_tag_mutability
@@ -57,7 +57,7 @@ resource "aws_ecr_repository" "default" {
5757
}
5858

5959
resource "aws_ecr_lifecycle_policy" "private" {
60-
count = var.enable_private_ecr ? 1 : 0
60+
count = var.enable && var.enable_private_ecr ? 1 : 0
6161
repository = join("", aws_ecr_repository.default[*].name)
6262

6363
policy = <<EOF
@@ -96,7 +96,7 @@ EOF
9696
# Public Repository
9797
################################################################################
9898
resource "aws_ecrpublic_repository" "default" {
99-
count = var.enable_public_ecr ? 1 : 0
99+
count = var.enable && var.enable_public_ecr ? 1 : 0
100100

101101
repository_name = var.use_fullname != "" ? var.use_fullname : module.labels.id
102102

@@ -119,6 +119,7 @@ resource "aws_ecrpublic_repository" "default" {
119119
# Private ECR IAM Policies
120120
################################################################################
121121
data "aws_iam_policy_document" "resource_readonly_access_private" {
122+
count = var.enable ? 1 : 0
122123
statement {
123124
sid = "ReadonlyAccess"
124125
effect = "Allow"
@@ -153,6 +154,7 @@ data "aws_iam_policy_document" "resource_readonly_access_private" {
153154
}
154155

155156
data "aws_iam_policy_document" "resource_full_access_private" {
157+
count = var.enable ? 1 : 0
156158
statement {
157159
sid = "FullAccess"
158160
effect = "Allow"
@@ -170,12 +172,13 @@ data "aws_iam_policy_document" "resource_full_access_private" {
170172
}
171173

172174
data "aws_iam_policy_document" "resource_private" {
175+
count = var.enable ? 1 : 0
173176
source_policy_documents = [local.principals_readonly_access_non_empty ? join("", data.aws_iam_policy_document.resource_readonly_access_private[*].json) : join("", data.aws_iam_policy_document.empty[*].json)]
174177
override_policy_documents = [local.principals_full_access_non_empty ? join("", data.aws_iam_policy_document.resource_full_access_private[*].json) : join("", data.aws_iam_policy_document.empty[*].json)]
175178
}
176179

177180
resource "aws_ecr_repository_policy" "private" {
178-
count = local.ecr_need_policy && var.enable_private_ecr ? 1 : 0
181+
count = var.enable && local.ecr_need_policy && var.enable_private_ecr ? 1 : 0
179182
repository = join("", aws_ecr_repository.default[*].name)
180183
policy = join("", data.aws_iam_policy_document.resource_private[*].json)
181184
}
@@ -184,6 +187,7 @@ resource "aws_ecr_repository_policy" "private" {
184187
# Public ECR IAM Policies
185188
################################################################################
186189
data "aws_iam_policy_document" "resource_readonly_access_public" {
190+
count = var.enable ? 1 : 0
187191
statement {
188192
sid = "ReadonlyAccess"
189193
effect = "Allow"
@@ -210,6 +214,7 @@ data "aws_iam_policy_document" "resource_readonly_access_public" {
210214
}
211215

212216
data "aws_iam_policy_document" "resource_full_access_public" {
217+
count = var.enable ? 1 : 0
213218
statement {
214219
sid = "FullAccess"
215220
effect = "Allow"
@@ -228,14 +233,17 @@ data "aws_iam_policy_document" "resource_full_access_public" {
228233

229234

230235
data "aws_iam_policy_document" "resource_public" {
236+
count = var.enable ? 1 : 0
231237
source_policy_documents = [local.principals_readonly_access_non_empty ? join("", data.aws_iam_policy_document.resource_readonly_access_public[*].json) : join("", data.aws_iam_policy_document.empty[*].json)]
232238
override_policy_documents = [local.principals_full_access_non_empty ? join("", data.aws_iam_policy_document.resource_full_access_public[*].json) : join("", data.aws_iam_policy_document.empty[*].json)]
233239
}
234240

235241
resource "aws_ecr_repository_policy" "public" {
236-
count = local.ecr_need_policy && var.enable_public_ecr ? 1 : 0
242+
count = var.enable && local.ecr_need_policy && var.enable_public_ecr ? 1 : 0
237243
repository = join("", aws_ecrpublic_repository.default[*].repository_name)
238244
policy = join("", data.aws_iam_policy_document.resource_public[*].json)
239245
}
240246

241-
data "aws_iam_policy_document" "empty" {}
247+
data "aws_iam_policy_document" "empty" {
248+
count = var.enable ? 1 : 0
249+
}

0 commit comments

Comments
 (0)