Skip to content

Commit 9f73005

Browse files
committed
Sync from management repo
1 parent 320c000 commit 9f73005

File tree

6 files changed

+182
-16
lines changed

6 files changed

+182
-16
lines changed

.github/workflows/pre-commit.yml

+58-12
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ on:
44
pull_request:
55
push:
66
branches:
7-
- main
87
- develop
8+
- main
99

1010
jobs:
11-
# Min Terraform version(s)
1211
getDirectories:
1312
name: Get root directories
1413
runs-on: ubuntu-latest
@@ -25,13 +24,13 @@ jobs:
2524
- name: Build matrix
2625
id: matrix
2726
run: |
28-
DIRS=$(python -c "import json; import glob; print(json.dumps([x.replace('/versions.tf', '') for x in glob.glob('./**/versions.tf', recursive=True)]))")
27+
DIRS=$(python -c "import json; import glob; print(json.dumps([x.replace('/providers.tf', '') for x in glob.glob('./**/providers.tf', recursive=True)]))")
2928
echo "::set-output name=directories::$DIRS"
3029
outputs:
3130
directories: ${{ steps.matrix.outputs.directories }}
3231

3332
preCommitMinVersions:
34-
name: Min TF validate
33+
name: Min validate
3534
needs: getDirectories
3635
runs-on: ubuntu-latest
3736
strategy:
@@ -58,11 +57,9 @@ jobs:
5857
with:
5958
terraform_version: ${{ steps.minMax.outputs.minVersion }}
6059

61-
- name: Install pre-commit dependencies
60+
- name: Install pre-commit
6261
run: pip install pre-commit
6362

64-
65-
# Max Terraform version
6663
getBaseVersion:
6764
name: Module max TF version
6865
runs-on: ubuntu-latest
@@ -78,7 +75,7 @@ jobs:
7875
maxVersion: ${{ steps.minMax.outputs.maxVersion }}
7976

8077
preCommitMaxVersion:
81-
name: Max TF pre-commit
78+
name: Max pre-commit
8279
runs-on: ubuntu-latest
8380
needs: getBaseVersion
8481
strategy:
@@ -105,10 +102,59 @@ jobs:
105102
run: |
106103
pip install pre-commit
107104
pip install checkov
108-
curl -L "$(curl -s https://api.github.com/repos/terraform-docs/terraform-docs/releases/latest | grep -o -E "https://.+?-v1.0.1-linux-amd64" | head -n1)" > terraform-docs && chmod +x terraform-docs && sudo mv terraform-docs /usr/bin/
109105
curl -L "$(curl -s https://api.github.com/repos/terraform-linters/tflint/releases/latest | grep -o -E "https://.+?_linux_amd64.zip")" > tflint.zip && unzip tflint.zip && rm tflint.zip && sudo mv tflint /usr/bin/
110106
111107
- name: Execute pre-commit
112-
# Run all pre-commit checks on max version supported
113-
if: ${{ matrix.version == needs.getBaseVersion.outputs.maxVersion }}
114-
run: pre-commit run --color=always --show-diff-on-failure --all-files
108+
continue-on-error: true # To avoid pre-commit failure
109+
run: |
110+
pre-commit run --color=always --show-diff-on-failure --all-files
111+
112+
- name: Get current branch name
113+
id: vars
114+
run: |
115+
echo ::set-output name=branch_name::${GITHUB_REF##*/}
116+
117+
- name: "Get branch name and save to env"
118+
env:
119+
IS_PR: ${{ github.EVENT_NAME == 'pull_request' }}
120+
run: |
121+
if ${IS_PR}; then
122+
BRANCH_NAME="${GITHUB_HEAD_REF}"
123+
else
124+
BRANCH_NAME="${GITHUB_REF##*/}"
125+
fi
126+
echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_ENV
127+
128+
- uses: actions/checkout@v2
129+
with:
130+
ref: ${{ github.event.pull_request.head.ref }}
131+
132+
- name: Render terraform docs and commit changes
133+
if: ${{ env.BRANCH_NAME }} == 'develop'
134+
uses: terraform-docs/gh-actions@main
135+
with:
136+
working-dir: .
137+
output-file: README.md
138+
output-method: inject
139+
git-push: "true"
140+
141+
- name: Commit pre-commit modified files
142+
if: ${{ env.BRANCH_NAME }} == 'develop'
143+
run: |
144+
git config --local user.email "terraform+github-actions[bot]@users.noreply.github.com"
145+
git config --local user.name "github-actions[bot]"
146+
git diff-index --quiet HEAD || (git add -A && git commit -m'[bot] update files' --allow-empty && git push -f)
147+
148+
- uses: actions/checkout@v2
149+
- name: Create PR
150+
continue-on-error: true
151+
uses: repo-sync/pull-request@v2
152+
if: ${{ env.BRANCH_NAME }} == 'develop'
153+
with:
154+
source_branch: "develop"
155+
destination_branch: "main"
156+
pr_title: "Pulling ${{ github.ref }} into main"
157+
pr_body: ":crown: *Automated PR*"
158+
pr_label: "auto-pr"
159+
pr_allow_empty: false
160+
github_token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/stale-actions.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: "Mark or close stale issues and PRs"
2+
on:
3+
schedule:
4+
- cron: "0 0 10 * *"
5+
6+
jobs:
7+
stale:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/stale@v4
11+
with:
12+
repo-token: ${{ secrets.GITHUB_TOKEN }}
13+
# Staling issues and PR's
14+
days-before-stale: 30
15+
stale-issue-label: stale
16+
stale-pr-label: stale
17+
stale-issue-message: |
18+
This issue has been automatically marked as stale because it has been open 30 days
19+
with no activity. Remove stale label or comment or this issue will be closed in 10 days
20+
stale-pr-message: |
21+
This PR has been automatically marked as stale because it has been open 30 days
22+
with no activity. Remove stale label or comment or this PR will be closed in 10 days
23+
# Not stale if have this labels or part of milestone
24+
exempt-issue-labels: bug,wip,on-hold
25+
exempt-pr-labels: bug,wip,on-hold
26+
exempt-all-milestones: true
27+
# Close issue operations
28+
# Label will be automatically removed if the issues are no longer closed nor locked.
29+
days-before-close: 10
30+
delete-branch: false
31+
close-issue-message: This issue was automatically closed because of stale in 10 days
32+
close-pr-message: This PR was automatically closed because of stale in 10 days

.pre-commit-config.yaml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
repos:
2-
- repo: git://github.com/antonbabenko/pre-commit-terraform
3-
rev: v1.60.0
2+
- repo: https://github.com/antonbabenko/pre-commit-terraform
3+
rev: v1.64.0
44
hooks:
55
- id: terraform_fmt
66
- id: terraform_tflint
@@ -12,7 +12,7 @@ repos:
1212
- '--args=--only=terraform_documented_outputs'
1313
- '--args=--only=terraform_documented_variables'
1414
- '--args=--only=terraform_typed_variables'
15-
- '--args=--only=terraform_module_pinned_source'
15+
#- '--args=--only=terraform_module_pinned_source'
1616
- '--args=--only=terraform_naming_convention'
1717
- '--args=--only=terraform_required_providers'
1818
- '--args=--only=terraform_standard_module_structure'
@@ -35,4 +35,4 @@ repos:
3535
hooks:
3636
- id: checkov
3737
verbose: true
38-
args: [-d, '.', --framework, 'terraform', --download-external-modules, 'True', '--skip-check', "CKV2_AWS_6,CKV2_AWS_11,CKV2_AWS_12,CKV_AWS_18,CKV2_AWS_19,CKV_AWS_130,CKV_AWS_144,CKV_AWS_145"]
38+
args: [-d, '.', --framework,'terraform']

kms_services.tf

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
data "aws_iam_policy_document" "databricks_managed_services_cmk" {
2+
version = "2012-10-17"
3+
statement {
4+
sid = "Enable IAM User Permissions"
5+
effect = "Allow"
6+
principals {
7+
type = "AWS"
8+
identifiers = ["*"]
9+
}
10+
actions = ["kms:*"]
11+
resources = ["*"]
12+
}
13+
statement {
14+
sid = "Allow Databricks to use KMS key for control plane managed services"
15+
effect = "Allow"
16+
principals {
17+
type = "AWS"
18+
identifiers = ["arn:aws:iam::414351767826:root"]
19+
}
20+
actions = [
21+
"kms:Encrypt",
22+
"kms:Decrypt"
23+
]
24+
resources = ["*"]
25+
}
26+
}
27+
28+
resource "aws_kms_key" "managed_services_customer_managed_key" {
29+
policy = data.aws_iam_policy_document.databricks_managed_services_cmk.json
30+
}
31+
32+
resource "aws_kms_alias" "managed_services_customer_managed_key_alias" {
33+
name = "alias/managed-services-customer-managed-key-alias"
34+
target_key_id = aws_kms_key.managed_services_customer_managed_key.key_id
35+
}
36+
37+
resource "databricks_mws_customer_managed_keys" "managed_services" {
38+
account_id = var.databricks_account_id
39+
aws_key_info {
40+
key_arn = aws_kms_key.managed_services_customer_managed_key.arn
41+
key_alias = aws_kms_alias.managed_services_customer_managed_key_alias.name
42+
}
43+
use_cases = ["MANAGED_SERVICES"]
44+
}

kms_storage.tf

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
data "aws_iam_policy_document" "databricks_managed_services_cmk" {
2+
version = "2012-10-17"
3+
statement {
4+
sid = "Enable IAM User Permissions"
5+
effect = "Allow"
6+
principals {
7+
type = "AWS"
8+
identifiers = ["*"]
9+
}
10+
actions = ["kms:*"]
11+
resources = ["*"]
12+
}
13+
statement {
14+
sid = "Allow Databricks to use KMS key for control plane managed services"
15+
effect = "Allow"
16+
principals {
17+
type = "AWS"
18+
identifiers = ["arn:aws:iam::414351767826:root"]
19+
}
20+
actions = [
21+
"kms:Encrypt",
22+
"kms:Decrypt"
23+
]
24+
resources = ["*"]
25+
}
26+
}
27+
28+
resource "aws_kms_key" "managed_services_customer_managed_key" {
29+
policy = data.aws_iam_policy_document.databricks_managed_services_cmk.json
30+
}
31+
32+
resource "aws_kms_alias" "managed_services_customer_managed_key_alias" {
33+
name = "alias/managed-services-customer-managed-key-alias"
34+
target_key_id = aws_kms_key.managed_services_customer_managed_key.key_id
35+
}
36+
37+
resource "databricks_mws_customer_managed_keys" "managed_services" {
38+
account_id = var.databricks_account_id
39+
aws_key_info {
40+
key_arn = aws_kms_key.managed_services_customer_managed_key.arn
41+
key_alias = aws_kms_alias.managed_services_customer_managed_key_alias.name
42+
}
43+
use_cases = ["MANAGED_SERVICES"]
44+
}
File renamed without changes.

0 commit comments

Comments
 (0)