Skip to content

Commit fa97f1a

Browse files
committed
refact: prefer tfvars
1 parent 69b5e0b commit fa97f1a

7 files changed

+64
-72
lines changed

main.tf

+8-32
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,6 @@ provider "github" {
1313
owner = "DevKor-github"
1414
}
1515

16-
data "local_file" "users" {
17-
filename = "${path.module}/users.json"
18-
}
19-
20-
data "local_file" "teams" {
21-
filename = "${path.module}/teams.json"
22-
}
23-
24-
data "local_file" "repos" {
25-
filename = "${path.module}/repos.json"
26-
}
27-
28-
data "local_file" "repo_permissions" {
29-
filename = "${path.module}/repo_permissions.json"
30-
}
31-
32-
locals {
33-
users = jsondecode(data.local_file.users.content)
34-
teams = jsondecode(data.local_file.teams.content)
35-
repos = jsondecode(data.local_file.repos.content)
36-
repo_permissions = jsondecode(data.local_file.repo_permissions.content)
37-
}
38-
39-
4016

4117
resource "github_organization_settings" "org_settings" {
4218
billing_email = "[email protected]"
@@ -62,15 +38,15 @@ resource "github_organization_settings" "org_settings" {
6238

6339
# user 초대
6440
resource "github_membership" "user" {
65-
for_each = { for user in local.users : user.user => user }
41+
for_each = { for user in var.users : user.user => user }
6642

6743
username = each.value.user
6844
role = each.value.role
6945
}
7046

7147
# team 생성
7248
resource "github_team" "team" {
73-
for_each = { for team in local.teams : team.name => team }
49+
for_each = { for team in var.teams : team.name => team }
7450

7551
name = each.key
7652
description = "DevKor ${each.key} team"
@@ -79,7 +55,7 @@ resource "github_team" "team" {
7955

8056
# 팀별 2 repositories 생성
8157
resource "github_repository" "repo" {
82-
for_each = { for repo in local.repos : repo.name => repo }
58+
for_each = { for repo in var.repos : repo.name => repo }
8359

8460

8561
name = each.key
@@ -109,22 +85,22 @@ resource "github_repository" "repo" {
10985
}
11086
# team - repo permission
11187
resource "github_team_repository" "team_repos" {
112-
for_each = { for permission in local.repo_permissions : "${permission.team}:${permission.repo}" => permission }
88+
for_each = { for permission in var.repo_permissions : "${permission.team}:${permission.repo}" => permission }
11389
team_id = github_team.team[each.value.team].id
11490
repository = each.value.repo
11591
permission = each.value.permission
11692
}
11793

11894

11995
resource "github_branch" "main" {
120-
for_each = { for repo in local.repos : repo.name => repo }
96+
for_each = { for repo in var.repos : repo.name => repo }
12197

12298
repository = each.value.name
12399
branch = "main"
124100
}
125101

126102
resource "github_branch_default" "default" {
127-
for_each = { for repo in local.repos : repo.name => repo }
103+
for_each = { for repo in var.repos : repo.name => repo }
128104

129105
repository = each.value.name
130106
branch = "main"
@@ -134,7 +110,7 @@ resource "github_branch_default" "default" {
134110
resource "github_repository_ruleset" "review_ruleset" {
135111
name = "require_reviews"
136112
target = "branch"
137-
for_each = { for repo in local.repos : repo.name => repo }
113+
for_each = { for repo in var.repos : repo.name => repo }
138114

139115
repository = each.value.name
140116
enforcement = "active"
@@ -158,7 +134,7 @@ resource "github_repository_ruleset" "review_ruleset" {
158134

159135
# PR -> discord webhook
160136
resource "github_repository_webhook" "discord_pr_webhook" {
161-
for_each = { for repo in local.repos : repo.name => repo }
137+
for_each = { for repo in var.repos : repo.name => repo }
162138

163139
repository = each.value.name
164140

repo_permissions.json

-12
This file was deleted.

repos.json

-8
This file was deleted.

teams.json

-8
This file was deleted.

terraform.tfvars

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
users = [
2+
{
3+
user = "overthestream"
4+
role = "admin"
5+
team = "kudog"
6+
},
7+
{
8+
user = "overthestream2"
9+
role = "admin"
10+
team = "kudog"
11+
},
12+
]
13+
teams = [
14+
{
15+
name = "kudog"
16+
},
17+
{
18+
name = "kukey"
19+
},
20+
]
21+
repos = [
22+
{
23+
name = "kudog-backend"
24+
},
25+
{
26+
name = "kudog-frontend"
27+
},
28+
]

users.json

-12
This file was deleted.

variables.tf

+28
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,31 @@ variable "discord_webhook_url" {
99
type = string
1010
sensitive = true
1111
}
12+
13+
variable "users" {
14+
type = list(object({
15+
user = string
16+
role = string
17+
team = string
18+
}))
19+
}
20+
21+
variable "teams" {
22+
type = list(object({
23+
name = string
24+
}))
25+
}
26+
27+
variable "repos" {
28+
type = list(object({
29+
name = string
30+
}))
31+
}
32+
33+
variable "repo_permissions" {
34+
type = list(object({
35+
repo = string
36+
team = string
37+
permission = string
38+
}))
39+
}

0 commit comments

Comments
 (0)