Skip to content

Commit 2bbe20a

Browse files
authored
Atlantis support (#1)
1 parent 2b78ba6 commit 2bbe20a

11 files changed

+153
-119
lines changed

bard.tf

+22-21
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,42 @@
11
module "bard-repo" {
2-
source = "./defaults/github"
2+
source = "./defaults/github"
3+
github_token = var.github_token
34

45
repo_name = "bard"
56
repo_description = "Metrics collection service"
67
}
78

89
module "bard-dev" {
9-
source = "./defaults/gcp"
10-
11-
google_project = "terra-bard-dev"
12-
requires_suitable = false
10+
source = "./defaults/gcp"
11+
google_credentials = var.google_credentials
12+
google_project = "terra-bard-dev"
13+
requires_suitable = false
1314
}
1415

1516
module "bard-alpha" {
16-
source = "./defaults/gcp"
17-
18-
google_project = "terra-bard-alpha"
19-
requires_suitable = false
17+
source = "./defaults/gcp"
18+
google_credentials = var.google_credentials
19+
google_project = "terra-bard-alpha"
20+
requires_suitable = false
2021
}
2122

2223
module "bard-perf" {
23-
source = "./defaults/gcp"
24-
25-
google_project = "terra-bard-perf"
26-
requires_suitable = false
24+
source = "./defaults/gcp"
25+
google_credentials = var.google_credentials
26+
google_project = "terra-bard-perf"
27+
requires_suitable = false
2728
}
2829

2930
module "bard-staging" {
30-
source = "./defaults/gcp"
31-
32-
google_project = "terra-bard-staging"
33-
requires_suitable = false
31+
source = "./defaults/gcp"
32+
google_credentials = var.google_credentials
33+
google_project = "terra-bard-staging"
34+
requires_suitable = false
3435
}
3536

3637
module "bard-prod" {
37-
source = "./defaults/gcp"
38-
39-
google_project = "terra-bard-prod"
40-
requires_suitable = true
38+
source = "./defaults/gcp"
39+
google_credentials = var.google_credentials
40+
google_project = "terra-bard-prod"
41+
requires_suitable = true
4142
}

calhoun.tf

+22-21
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,43 @@
11
module "calhoun-repo" {
2-
source = "./defaults/github"
2+
source = "./defaults/github"
3+
github_token = var.github_token
34

45
repo_name = "calhoun"
56
repo_description = "Notebook preview service"
67
require_circle_build_for_merge = false
78
}
89

910
module "calhoun-dev" {
10-
source = "./defaults/gcp"
11-
12-
google_project = "terra-calhoun-dev"
13-
requires_suitable = false
11+
source = "./defaults/gcp"
12+
google_credentials = var.google_credentials
13+
google_project = "terra-calhoun-dev"
14+
requires_suitable = false
1415
}
1516

1617
module "calhoun-alpha" {
17-
source = "./defaults/gcp"
18-
19-
google_project = "terra-calhoun-alpha"
20-
requires_suitable = false
18+
source = "./defaults/gcp"
19+
google_credentials = var.google_credentials
20+
google_project = "terra-calhoun-alpha"
21+
requires_suitable = false
2122
}
2223

2324
module "calhoun-perf" {
24-
source = "./defaults/gcp"
25-
26-
google_project = "terra-calhoun-perf"
27-
requires_suitable = false
25+
source = "./defaults/gcp"
26+
google_credentials = var.google_credentials
27+
google_project = "terra-calhoun-perf"
28+
requires_suitable = false
2829
}
2930

3031
module "calhoun-staging" {
31-
source = "./defaults/gcp"
32-
33-
google_project = "terra-calhoun-staging"
34-
requires_suitable = false
32+
source = "./defaults/gcp"
33+
google_credentials = var.google_credentials
34+
google_project = "terra-calhoun-staging"
35+
requires_suitable = false
3536
}
3637

3738
module "calhoun-prod" {
38-
source = "./defaults/gcp"
39-
40-
google_project = "terra-calhoun-prod"
41-
requires_suitable = true
39+
source = "./defaults/gcp"
40+
google_credentials = var.google_credentials
41+
google_project = "terra-calhoun-prod"
42+
requires_suitable = true
4243
}

defaults/gcp/gcp.tf

+2-3
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@ locals {
1010

1111
##### SETUP
1212

13-
# billing account?
1413
provider "google" {
1514
version = "~> 3.20"
1615

1716
project = var.google_project
1817
region = "us-central"
1918

20-
credentials = file("${var.google_project}-key.json")
19+
credentials = var.google_credentials
2120
}
2221

2322
##### ENABLE APIS
@@ -30,7 +29,7 @@ resource "google_project_service" "iam_api" {
3029

3130
resource "google_service_account" "circleci" {
3231
account_id = "circleci"
33-
display_name = "CircleCi"
32+
display_name = "CircleCI"
3433
}
3534

3635
##### ROLE ASSIGNMENTS

defaults/gcp/variables.tf

+4
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@ variable "google_project" {
55
variable "requires_suitable" {
66
type = bool
77
}
8+
9+
variable "google_credentials" {
10+
type = string
11+
}

defaults/github/github.tf

+27-21
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,42 @@
11
provider "github" {
22
version = "~> 2.7"
33

4+
token = var.github_token
45
organization = "DataBiosphere"
5-
token = ""
66
}
77

8-
module "repository" {
9-
source = "innovationnorway/repository/github"
10-
version = "~> 2.1"
11-
8+
resource "github_repository" "main" {
129
name = var.repo_name
1310
description = var.repo_description
1411
default_branch = "dev"
1512

16-
allow_merge_commit = false
17-
allow_rebase_merge = false
18-
allow_squash_merge = true
19-
20-
branch_protection = [{
21-
branch = "dev"
22-
23-
enforce_admins = true
24-
required_status_checks = {
25-
contexts = var.require_circle_build_for_merge ? ["ci/circleci: build"] : []
26-
}
27-
}]
13+
allow_merge_commit = false
14+
allow_rebase_merge = false
15+
allow_squash_merge = true
16+
delete_branch_on_merge = true
2817

2918
has_issues = false
3019
has_projects = false
20+
has_wiki = var.has_wiki
21+
}
22+
23+
resource "github_branch_protection" "dev_protections" {
24+
repository = github_repository.main.name
25+
branch = "dev"
26+
27+
enforce_admins = true
28+
required_status_checks {
29+
contexts = var.require_circle_build_for_merge ? ["ci/circleci: build"] : []
30+
}
31+
}
32+
33+
34+
data "github_team" "codeowner_team" {
35+
slug = var.codeowner_team
36+
}
3137

32-
teams = [{
33-
name = var.codeowner_team
34-
permission = "push"
35-
}]
38+
resource "github_team_repository" "codeowner_permission" {
39+
team_id = data.github_team.codeowner_team.id
40+
repository = github_repository.main.name
41+
permission = "push"
3642
}

defaults/github/variables.tf

+9
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,16 @@ variable "require_circle_build_for_merge" {
1111
default = true
1212
}
1313

14+
variable "has_wiki" {
15+
type = bool
16+
default = false
17+
}
18+
1419
variable "codeowner_team" {
1520
type = string
1621
default = "terra-devs"
1722
}
23+
24+
variable "github_token" {
25+
type = string
26+
}

lyle.tf

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
module "lyle-repo" {
2-
source = "./defaults/github"
2+
source = "./defaults/github"
3+
github_token = var.github_token
34

4-
repo_name = "lyle"
5-
repo_description = "Test user allocation service"
5+
repo_name = "lyle"
6+
repo_description = "Test user allocation service"
67
}
78

89
module "lyle-service" {
9-
source = "./defaults/gcp"
10-
11-
google_project = "terra-lyle"
12-
requires_suitable = false
10+
source = "./defaults/gcp"
11+
google_credentials = var.google_credentials
12+
google_project = "terra-lyle"
13+
requires_suitable = false
1314
}

rex.tf

+24-23
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,42 @@
11
module "rex-repo" {
2-
source = "./defaults/github"
2+
source = "./defaults/github"
3+
github_token = var.github_token
34

4-
repo_name = "rex"
5-
repo_description = "Survey response service"
5+
repo_name = "rex"
6+
repo_description = "Survey response service"
67
}
78

89
module "rex-dev" {
9-
source = "./defaults/gcp"
10-
11-
google_project = "terra-rex-dev"
12-
requires_suitable = false
10+
source = "./defaults/gcp"
11+
google_credentials = var.google_credentials
12+
google_project = "terra-rex-dev"
13+
requires_suitable = false
1314
}
1415

1516
module "rex-alpha" {
16-
source = "./defaults/gcp"
17-
18-
google_project = "terra-rex-alpha"
19-
requires_suitable = false
17+
source = "./defaults/gcp"
18+
google_credentials = var.google_credentials
19+
google_project = "terra-rex-alpha"
20+
requires_suitable = false
2021
}
2122

2223
module "rex-perf" {
23-
source = "./defaults/gcp"
24-
25-
google_project = "terra-rex-perf"
26-
requires_suitable = false
24+
source = "./defaults/gcp"
25+
google_credentials = var.google_credentials
26+
google_project = "terra-rex-perf"
27+
requires_suitable = false
2728
}
2829

2930
module "rex-staging" {
30-
source = "./defaults/gcp"
31-
32-
google_project = "terra-rex-staging"
33-
requires_suitable = false
31+
source = "./defaults/gcp"
32+
google_credentials = var.google_credentials
33+
google_project = "terra-rex-staging"
34+
requires_suitable = false
3435
}
3536

3637
module "rex-prod" {
37-
source = "./defaults/gcp"
38-
39-
google_project = "terra-rex-prod"
40-
requires_suitable = true
38+
source = "./defaults/gcp"
39+
google_credentials = var.google_credentials
40+
google_project = "terra-rex-prod"
41+
requires_suitable = true
4142
}

saturn-ui-prod-deploy.tf

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
module "saturn-ui-prod-deploy-repo" {
2-
source = "./defaults/github"
2+
source = "./defaults/github"
3+
github_token = var.github_token
34

45
repo_name = "saturn-ui-prod-deploy"
56
repo_description = "Terra UI automated prod deploy service"
67
require_circle_build_for_merge = false
7-
codeowner_team = "SaturnDeployers"
8+
codeowner_team = "saturndeployers"
89
}

0 commit comments

Comments
 (0)