Skip to content

Commit b0a03e7

Browse files
authored
Terraform 0.14 upgrade (#80)
1 parent 34b6823 commit b0a03e7

File tree

12 files changed

+217
-32
lines changed

12 files changed

+217
-32
lines changed

.github/CODEOWNERS

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Use this file to define individuals or teams that are responsible for code in a repository.
22
# Read more: <https://help.github.com/articles/about-codeowners/>
33
#
4-
# Order is important: the last matching pattern takes the most precedence
4+
# Order is important: the last matching pattern has the highest precedence
55

66
# These owners will be the default owners for everything
77
* @cloudposse/engineering @cloudposse/contributors
@@ -13,5 +13,12 @@
1313
# Cloud Posse must review any changes to GitHub actions
1414
.github/* @cloudposse/engineering
1515

16-
# Cloud Posse must review any changes to standard context definition
17-
**/context.tf @cloudposse/engineering
16+
# Cloud Posse must review any changes to standard context definition,
17+
# but some changes can be rubber-stamped.
18+
**/context.tf @cloudposse/engineering @cloudposse/approvers
19+
README.md @cloudposse/engineering @cloudposse/contributors @cloudposse/approvers
20+
docs/*.md @cloudposse/engineering @cloudposse/contributors @cloudposse/approvers
21+
22+
# Cloud Posse Admins must review all changes to CODEOWNERS or the mergify configuration
23+
.github/mergify.yml @cloudposse/admins
24+
.github/CODEOWNERS @cloudposse/admins

.github/auto-release.yml

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,35 @@ version-template: '$MAJOR.$MINOR.$PATCH'
44
version-resolver:
55
major:
66
labels:
7-
- 'major'
7+
- 'major'
88
minor:
99
labels:
10-
- 'minor'
11-
- 'enhancement'
10+
- 'minor'
11+
- 'enhancement'
1212
patch:
1313
labels:
14-
- 'patch'
15-
- 'fix'
16-
- 'bugfix'
17-
- 'bug'
18-
- 'hotfix'
14+
- 'auto-update'
15+
- 'patch'
16+
- 'fix'
17+
- 'bugfix'
18+
- 'bug'
19+
- 'hotfix'
1920
default: 'minor'
2021

2122
categories:
22-
- title: '🚀 Enhancements'
23-
labels:
24-
- 'enhancement'
25-
- title: '🐛 Bug Fixes'
26-
labels:
27-
- 'fix'
28-
- 'bugfix'
29-
- 'bug'
30-
- 'hotfix'
23+
- title: '🚀 Enhancements'
24+
labels:
25+
- 'enhancement'
26+
- 'patch'
27+
- title: '🐛 Bug Fixes'
28+
labels:
29+
- 'fix'
30+
- 'bugfix'
31+
- 'bug'
32+
- 'hotfix'
33+
- title: '🤖 Automatic Updates'
34+
labels:
35+
- 'auto-update'
3136

3237
change-template: |
3338
<details>

.github/mergify.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
pull_request_rules:
2+
- name: "approve automated PRs that have passed checks"
3+
conditions:
4+
- "check-success~=test/bats"
5+
- "check-success~=test/readme"
6+
- "check-success~=test/terratest"
7+
- "base=master"
8+
- "author=cloudpossebot"
9+
- "head~=auto-update/.*"
10+
actions:
11+
review:
12+
type: "APPROVE"
13+
bot_account: "cloudposse-mergebot"
14+
message: "We've automatically approved this PR because the checks from the automated Pull Request have passed."
15+
16+
- name: "merge automated PRs when approved and tests pass"
17+
conditions:
18+
- "check-success~=test/bats"
19+
- "check-success~=test/readme"
20+
- "check-success~=test/terratest"
21+
- "base=master"
22+
- "head~=auto-update/.*"
23+
- "#approved-reviews-by>=1"
24+
- "#changes-requested-reviews-by=0"
25+
- "#commented-reviews-by=0"
26+
- "base=master"
27+
- "author=cloudpossebot"
28+
actions:
29+
merge:
30+
method: "squash"
31+
32+
- name: "delete the head branch after merge"
33+
conditions:
34+
- "merged"
35+
actions:
36+
delete_head_branch: {}
37+
38+
- name: "ask to resolve conflict"
39+
conditions:
40+
- "conflict"
41+
actions:
42+
comment:
43+
message: "This pull request is now in conflict. Could you fix it @{{author}}? 🙏"
44+
45+
- name: "remove outdated reviews"
46+
conditions:
47+
- "base=master"
48+
actions:
49+
dismiss_reviews:
50+
changes_requested: true
51+
approved: true
52+
message: "This Pull Request has been updated, so we're dismissing all reviews."

.github/workflows/auto-context.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: "auto-context"
2+
on:
3+
schedule:
4+
# Update context.tf nightly
5+
- cron: '0 3 * * *'
6+
7+
jobs:
8+
update:
9+
if: github.event_name == 'schedule'
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v2
13+
14+
- name: Update context.tf
15+
shell: bash
16+
id: update
17+
env:
18+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
19+
run: |
20+
if [[ -f context.tf ]]; then
21+
echo "Discovered existing context.tf! Fetching most recent version to see if there is an update."
22+
curl -o context.tf -fsSL https://raw.githubusercontent.com/cloudposse/terraform-null-label/master/exports/context.tf
23+
if git diff --no-patch --exit-code context.tf; then
24+
echo "No changes detected! Exiting the job..."
25+
else
26+
echo "context.tf file has changed. Update examples and rebuild README.md."
27+
make init
28+
make github/init/context.tf
29+
make readme/build
30+
echo "::set-output name=create_pull_request=true"
31+
fi
32+
else
33+
echo "This module has not yet been updated to support the context.tf pattern! Please update in order to support automatic updates."
34+
fi
35+
36+
- name: Create Pull Request
37+
if: {{ steps.update.outputs.create_pull_request == 'true' }}
38+
uses: cloudposse/actions/github/[email protected]
39+
with:
40+
token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
41+
commit-message: Update context.tf from origin source
42+
title: Update context.tf
43+
body: |-
44+
## what
45+
This is an auto-generated PR that updates the `context.tf` file to the latest version from `cloudposse/terraform-null-label`
46+
47+
## why
48+
To support all the features of the `context` interface.
49+
50+
branch: auto-update/context.tf
51+
base: master
52+
delete-branch: true
53+
labels: |
54+
auto-update
55+
context

.github/workflows/auto-readme.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: "auto-readme"
2+
on:
3+
schedule:
4+
# Update README.md nightly
5+
- cron: '0 4 * * *'
6+
7+
jobs:
8+
update:
9+
if: github.event_name == 'schedule'
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v2
13+
14+
- name: Update readme
15+
shell: bash
16+
id: update
17+
env:
18+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
19+
run: |
20+
make init
21+
make readme/build
22+
23+
- name: Create Pull Request
24+
uses: cloudposse/actions/github/[email protected]
25+
with:
26+
token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
27+
commit-message: Update README.md and docs
28+
title: Update README.md and docs
29+
body: |-
30+
## what
31+
This is an auto-generated PR that updates the README.md and docs
32+
33+
## why
34+
To have most recent changes of README.md and doc from origin templates
35+
36+
branch: auto-update/readme
37+
base: master
38+
delete-branch: true
39+
labels: |
40+
auto-update
41+
readme

.github/workflows/chatops.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
steps:
1010
- uses: actions/checkout@v2
1111
- name: "Handle common commands"
12-
uses: cloudposse/actions/github/slash-command-dispatch@0.16.0
12+
uses: cloudposse/actions/github/slash-command-dispatch@0.22.0
1313
with:
1414
token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
1515
reaction-token: ${{ secrets.GITHUB_TOKEN }}
@@ -24,7 +24,7 @@ jobs:
2424
- name: "Checkout commit"
2525
uses: actions/checkout@v2
2626
- name: "Run tests"
27-
uses: cloudposse/actions/github/slash-command-dispatch@0.16.0
27+
uses: cloudposse/actions/github/slash-command-dispatch@0.22.0
2828
with:
2929
token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
3030
reaction-token: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Validate Codeowners
2+
on:
3+
pull_request:
4+
5+
jobs:
6+
validate-codeowners:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: "Checkout source code at current commit"
10+
uses: actions/checkout@v2
11+
- uses: mszostok/[email protected]
12+
with:
13+
# For now, remove "files" check to allow CODEOWNERS to specify non-existent
14+
# files so we can use the same CODEOWNERS file for Terraform and non-Terraform repos
15+
# checks: "files,syntax,owners,duppatterns"
16+
checks: "syntax,owners,duppatterns"
17+
# GitHub access token is required only if the `owners` check is enabled
18+
github_access_token: "${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}"

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,9 @@ Follow this procedure just once to create your deployment.
103103
# be bootstrapped according to the simple yet essential procedure in
104104
# https://github.com/cloudposse/terraform-aws-tfstate-backend#usage
105105
module "terraform_state_backend" {
106-
source = "git::https://github.com/cloudposse/terraform-aws-tfstate-backend.git?ref=master"
106+
source = "cloudposse/tfstate-backend/aws"
107+
# Cloud Posse recommends pinning every module to a specific version
108+
# version = "x.x.x"
107109
namespace = "eg"
108110
stage = "test"
109111
name = "terraform"
@@ -189,7 +191,9 @@ To enable S3 bucket replication in this module, set `s3_replication_enabled` to
189191
190192
```hcl
191193
module "terraform_state_backend" {
192-
source = "git::https://github.com/cloudposse/terraform-aws-tfstate-backend.git?ref=master"
194+
source = "cloudposse/tfstate-backend/aws"
195+
# Cloud Posse recommends pinning every module to a specific version
196+
# version = "x.x.x"
193197
namespace = "eg"
194198
stage = "test"
195199
name = "terraform"
@@ -385,7 +389,7 @@ In general, PRs are welcome. We follow the typical "fork-and-pull" Git workflow.
385389

386390
## Copyright
387391

388-
Copyright © 2017-2020 [Cloud Posse, LLC](https://cpco.io/copyright)
392+
Copyright © 2017-2021 [Cloud Posse, LLC](https://cpco.io/copyright)
389393

390394

391395

README.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,9 @@ usage: |-
8282
# be bootstrapped according to the simple yet essential procedure in
8383
# https://github.com/cloudposse/terraform-aws-tfstate-backend#usage
8484
module "terraform_state_backend" {
85-
source = "git::https://github.com/cloudposse/terraform-aws-tfstate-backend.git?ref=master"
85+
source = "cloudposse/tfstate-backend/aws"
86+
# Cloud Posse recommends pinning every module to a specific version
87+
# version = "x.x.x"
8688
namespace = "eg"
8789
stage = "test"
8890
name = "terraform"
@@ -168,7 +170,9 @@ usage: |-
168170
169171
```hcl
170172
module "terraform_state_backend" {
171-
source = "git::https://github.com/cloudposse/terraform-aws-tfstate-backend.git?ref=master"
173+
source = "cloudposse/tfstate-backend/aws"
174+
# Cloud Posse recommends pinning every module to a specific version
175+
# version = "x.x.x"
172176
namespace = "eg"
173177
stage = "test"
174178
name = "terraform"

context.tf

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@
1818
# will be null, and `module.this.delimiter` will be `-` (hyphen).
1919
#
2020

21-
2221
module "this" {
2322
source = "cloudposse/label/null"
24-
version = "0.22.0" // requires Terraform >= 0.12.26
23+
version = "0.22.1" // requires Terraform >= 0.12.26
2524

2625
enabled = var.enabled
2726
namespace = var.namespace

0 commit comments

Comments
 (0)