From 3a88ff7f32b3f45a614babbf22057ec88af45bdc Mon Sep 17 00:00:00 2001 From: Matt White <16320656+matt-FFFFFF@users.noreply.github.com> Date: Fri, 8 Dec 2023 11:06:14 +0000 Subject: [PATCH 1/4] feat: initial scaffold for new linting --- .github/actions/linting/action.yml | 32 +++++++++++------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/.github/actions/linting/action.yml b/.github/actions/linting/action.yml index bf63809..cf65826 100644 --- a/.github/actions/linting/action.yml +++ b/.github/actions/linting/action.yml @@ -9,34 +9,26 @@ inputs: runs: using: composite steps: - - uses: hashicorp/setup-terraform@v2 - with: - terraform_version: ">=1.5.0" + - name: grept + run: exit 0 + shell: bash - - name: terraform init - run: terraform init + - name: terraform fmt check + run: exit 0 shell: bash - name: terraform validate - run: terraform validate + run: exit 0 shell: bash - - uses: terraform-linters/setup-tflint@v3 - name: Setup TFLint - with: - tflint_version: v0.48.0 - env: - GITHUB_TOKEN: ${{ inputs.github-token }} - - - name: get tflint config - run: | - curl --header "Authorization: Bearer ${{ inputs.github-token }}" https://raw.githubusercontent.com/Azure/terraform-azurerm-avm-template/main/.tflint.hcl -o .tflint.hcl + - name: terraform docs check + run: exit 0 shell: bash - - name: tflint init - run: tflint --init + - name: tflint + run: exit 0 shell: bash - - name: tflint - run: tflint + - name: tfsec + run: exit 0 shell: bash From ae8ed5320dbc362b88193cfb87e8fad7d9fbd297 Mon Sep 17 00:00:00 2001 From: Matt White <16320656+matt-FFFFFF@users.noreply.github.com> Date: Fri, 8 Dec 2023 11:10:11 +0000 Subject: [PATCH 2/4] ci: add conditions to prevent running on template repo --- .github/workflows/e2e.yml | 3 +++ .github/workflows/linting.yml | 1 + .github/workflows/version-check.yml | 1 + 3 files changed, 5 insertions(+) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 416776c..3afc0e3 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -13,6 +13,7 @@ permissions: jobs: getexamples: + if: github.event.repository.name != 'terraform-azurerm-avm-template' runs-on: ubuntu-latest outputs: examples: ${{ steps.getexamples.outputs.examples }} @@ -25,6 +26,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} testexamples: + if: github.event.repository.name != 'terraform-azurerm-avm-template' runs-on: ubuntu-latest needs: getexamples environment: test @@ -52,6 +54,7 @@ jobs: # This job is only run when all the previous jobs are successful. # We can use it for PR validation to ensure all examples have completed. testexamplescomplete: + if: github.event.repository.name != 'terraform-azurerm-avm-template' runs-on: ubuntu-latest needs: testexamples steps: diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 00871c8..8498a3e 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -16,6 +16,7 @@ concurrency: jobs: linting: + if: github.event.repository.name != 'terraform-azurerm-avm-template' name: linting runs-on: ubuntu-latest steps: diff --git a/.github/workflows/version-check.yml b/.github/workflows/version-check.yml index ee3996e..fddf1b4 100644 --- a/.github/workflows/version-check.yml +++ b/.github/workflows/version-check.yml @@ -13,6 +13,7 @@ permissions: jobs: version-check: + if: github.event.repository.name != 'terraform-azurerm-avm-template' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 8141d067c536b8b436061b354ed0fc8eb011a641 Mon Sep 17 00:00:00 2001 From: hezijie Date: Thu, 14 Dec 2023 14:31:30 +0800 Subject: [PATCH 3/4] get ready for using tfmod-scaffold as pr check for avm --- .github/actions/docs-check/action.yml | 41 +- .github/actions/linting/action.yml | 20 +- .github/workflows/e2e.yml | 4 +- .github/workflows/linting.yml | 2 +- .github/workflows/version-check.yml | 2 +- .gitignore | 4 + .tflint.hcl | 1167 ------------------------- Makefile | 20 +- main.tf | 2 +- variables.tf | 7 +- 10 files changed, 30 insertions(+), 1239 deletions(-) delete mode 100644 .tflint.hcl diff --git a/.github/actions/docs-check/action.yml b/.github/actions/docs-check/action.yml index 9269aa6..0201ca1 100644 --- a/.github/actions/docs-check/action.yml +++ b/.github/actions/docs-check/action.yml @@ -4,49 +4,12 @@ description: Checks that documentation has been updated on PR runs: using: composite steps: - - name: setup go - uses: actions/setup-go@v4 - with: - go-version: "1.21.x" - # cache-dependency-path: tests/go.sum - - - name: setup Terraform - uses: hashicorp/setup-terraform@v2 - with: - terraform_wrapper: false - - - name: install tools - shell: bash - run: | - go install github.com/katbyte/terrafmt@latest - go install github.com/terraform-docs/terraform-docs@latest - - name: fmt check shell: bash run: | - echo "==> Fixing Terraform code with terraform fmt..." - terraform fmt -recursive - echo "==> Fixing embedded Terraform with terrafmt..." - find . | egrep ".md|.tf" | grep -v README.md | sort | while read f; do terrafmt fmt $f; done + docker run --rm -v $(pwd):/src -w /src mcr.microsoft.com/azterraform make fmtcheck - name: docs check shell: bash run: | - echo "==> Generating module documentation..." - terraform-docs -c .terraform-docs.yml . - echo "==> Generating examples documentation..." - cd examples && for d in $(ls -d */); do terraform-docs $d; done - - - name: check for changes - shell: bash - run: | - echo "==> Testing for changes to tracked files" - CHANGES=$(git status -suno) - if [ "$CHANGES" ]; then - echo "Repository formatting or documentation is not correct." - echo - git diff - echo - echo "Run 'make fmt && make docs' locally and commit the changes to fix." - exit 1 - fi + docker run --rm -v $(pwd):/src -w /src mcr.microsoft.com/azterraform make docscheck \ No newline at end of file diff --git a/.github/actions/linting/action.yml b/.github/actions/linting/action.yml index cf65826..1c6aedf 100644 --- a/.github/actions/linting/action.yml +++ b/.github/actions/linting/action.yml @@ -9,26 +9,28 @@ inputs: runs: using: composite steps: - - name: grept - run: exit 0 - shell: bash - name: terraform fmt check - run: exit 0 shell: bash + run: | + docker run --rm -v $(pwd):/src -w /src mcr.microsoft.com/azterraform make tffmtcheck - name: terraform validate - run: exit 0 shell: bash + run: | + docker run --rm -v $(pwd):/src -w /src mcr.microsoft.com/azterraform make tfvalidatecheck - - name: terraform docs check - run: exit 0 + - name: terrafmt check shell: bash + run: | + docker run --rm -v $(pwd):/src -w /src mcr.microsoft.com/azterraform make terrafmtcheck - name: tflint - run: exit 0 shell: bash + run: | + docker run --rm -v $(pwd):/src -w /src mcr.microsoft.com/azterraform make tflint - name: tfsec - run: exit 0 shell: bash + run: | + echo "Bypass tfsec for now" diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 3afc0e3..6186bb1 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -18,7 +18,7 @@ jobs: outputs: examples: ${{ steps.getexamples.outputs.examples }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1 - name: get examples id: getexamples uses: Azure/terraform-azurerm-avm-template/.github/actions/e2e-getexamples@main @@ -38,7 +38,7 @@ jobs: example: ${{ fromJson(needs.getexamples.outputs.examples) }} max-parallel: 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1 - uses: Azure/login@v1 with: diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 8498a3e..ddf2501 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - name: checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1 - name: check docs uses: Azure/terraform-azurerm-avm-template/.github/actions/docs-check@main diff --git a/.github/workflows/version-check.yml b/.github/workflows/version-check.yml index fddf1b4..d4097ff 100644 --- a/.github/workflows/version-check.yml +++ b/.github/workflows/version-check.yml @@ -16,7 +16,7 @@ jobs: if: github.event.repository.name != 'terraform-azurerm-avm-template' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1 - name: Check version uses: Azure/terraform-azurerm-avm-template/.github/actions/version-check@main with: diff --git a/.gitignore b/.gitignore index 6e5cbf1..63cd65c 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,7 @@ override.tf.json # Ignore CLI configuration files .terraformrc terraform.rc +avmmakefile +README-generated.md +avm.tflint.hcl +avm.tflint_example.hcl \ No newline at end of file diff --git a/.tflint.hcl b/.tflint.hcl deleted file mode 100644 index e2471b2..0000000 --- a/.tflint.hcl +++ /dev/null @@ -1,1167 +0,0 @@ -/* -THIS FILE IS GENERATED BY TFMOD-SCAFFOLD, PLEASE DO NOT MODIFY IT. -IF YOU WANT TO USE A CUSTOMIZED CONFIGURATION, PLEASE CREATE YOUR OWN AND -SET THIS FILE'S PATH TO $TFLINT_CONFIG ENVVIRONMENT VARIABLE. -*/ - -plugin "azurerm" { - enabled = true - version = "0.23.0" - source = "github.com/terraform-linters/tflint-ruleset-azurerm" -} - -# plugin "basic-ext" { -# enabled = true -# version = "0.3.1" -# source = "github.com/Azure/tflint-ruleset-basic-ext" -# signing_key = <<-KEY -# -----BEGIN PGP PUBLIC KEY BLOCK----- - -# mQINBGNjIIoBEACni6mzvCfY14cicqnW+BjFCoTUM95nxUINDFEQ7wkxGWmufAvQ -# iEUDrv6iVNCEfk1cU2jGSWUlBu6hTZ9auOy8K2MrMhtdqYVx+mY1SS+fVYHzSQAC -# C3qBTBY+TmDHl0QMQjF884AsYE2WTcZI3e1DOXXkVKlOMERzT7IQMVbeuiVklwLj -# BA/sQISaZVesaWPWN8WtRb8iOrq4i5HHqnAWRZGtqMEsoNBWqzjqh1aoQ7Ex3ldH -# 2Ey1bEIi05PWr67k1QOU9pXhMNuC+NXCQDO1sEq/NG376v2GbgylVapUlWAq35tw -# Ut8SFfiDM+GyHN1nNNjBKhOB7774yqh6FrPIfh/2WvN1EhAbPkr9eWfHROyIPWj1 -# t+IBFlMFbvMHLeMrlSZAkqlLljEZHdfzBfEXGUYKOOz/aeR+XjeMxGX977VoMk/0 -# uzLQPoVMqjOrAY4Iq+XhW6w4aBihDqkot3TDH6Cyczl+N9We0QatWd5jAG+BTb22 -# 7AevzSlDKh/+oUAec6iG/WF4MjJB3c1Fdpkw4rtTjha6zKrFHNvpDzuyvJEnO9Pt -# eBRAWaQvkqfMccQMYsasHWYkZKH2U8RAsqgW8iF9aRktBdGPao+ztkblbj/c7dUz -# L4J28SmivzDJAzoAANjiC2R6xLBOb6b+TyafFmgevepwgN1QG5bPY3MptwARAQAB -# tB9oZXppamllIDxoZXppamllQG1pY3Jvc29mdC5jb20+iQJOBBMBCgA4FiEEE0LC -# 37JNq10/9GosWbcR7NOMOjwFAmNjIIoCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgEC -# F4AACgkQWbcR7NOMOjxtdQ//TUh2/GmF+4TF2qLgRgHKaH8pL8cUaCgYdUNlrK7B -# 8OXBKIxrnNs8FXUSsgyKHMjAdg0EdSgJt+w9nOgZEtLPTOE+e3RKgmmsMc9vn/qq -# qoOw8B6NxRIJsGp8YbemoDUnmrUK93TSRxINBup4y413ZoON7g8O7I8kQBz4Ra6E -# 6U+Yx5rstFeS5D5jzWYeoh9Y6g9zucEDe3qnS8LcPmhj95mrm7A4uNwMDmny/J7B -# I3sVILAybp8D8/PSSixjGsCr+81marKlkHxqaSL8dpR2tr2Z1lcm2gS4z81NXlx4 -# vh79cvpX8hedysssl8FpV3SzxYFlgWNP97vM9AAv00fBOR4lid3ZNoRCQdfw7LeT -# GrglCWmMZ3Pm8JClYTbcsQ5wg5JgPFU9Rht+QN/EoNfJ5RipYYYwE9AOSJ6eJxHB -# QH9pM1b+dZ6dYLqReeGUlZ0pYBoLC+LpqknxlPQzUuPl5VbbL2TsFIVy5n963gAk -# 5vEnRJgUFx+agI6ZPw+SnXRjwgqvuasgE8Z6wwbXWnSZf1kbJr4sv5alN/u1Uyph -# CYl3uuHJkm0D/YfH4b83Bq7saTXWmJib7AR4piB8Z81vpO+Nq3zcvX1Z3r0AlF4j -# t0KDU/cix305ldEITT7EJAxkxI71XCTgdt78h/e2N1gLatsv8I98ShK/U6Jxb0kx -# pLC5Ag0EY2MgigEQAJJgnoe58UiuSFJIxPY6g4djYrWm7R9gw8oCdWJhjT9ou+bD -# HYIY0RaaXuUsBaA/logdO87MeiIyPirypPhpSHN1c6CXBfLyspO606su8AKS+DK3 -# lTzExtU8c5lwP0KnDDugs/qbjpntrXCCUmxTF2RDMFbkbaAt9vl671+kggXvOfe/ -# iJFXjWXfBx/nKeMkHmXo6qpizurqe0CYdlOW2w7UXjeX8snuOz7kFK3PhEHJ8CKA -# UEwqQaEp8v5zbAWGzRzPbY3Djw1RHw/WT6gEZWPQYK0HP6VdwIVJhpp8RKUe3QHJ -# cG/hUJrEdbLOZrBe5NZCP5RStJ3XL4aAVS0nu/18nB1vf7pYq6VaywEM9n5PuLWr -# mdtvUMTaDLjLM9H24qU8wHbiy+3jMGIUz5sKKIkBN8VxGacHo7Aadk7npGwiLpPD -# VV0L5eapSCgf1Nja7ZDnzgzlcztg7eBV7r+tRBsgtWiFlDu00NZCowGfxeaWc7TZ -# 08JweBe4VDpUZZLiA/J2ET0/qAfDtTLtLbMrcgFuIZi0f05FG0qtW5SuVVuYGfdE -# F7rUYFC5F39GxiDElR9F4XQcfhhtzAwVe9cYquPEkFBovzwhcVyJ3sfvupbk2nTN -# koBjcs0n5C1b3YiaYeGM06hAXD0OTnl0Pbx1qMXTNs3DLCUoraU6tAwSvU4LABEB -# AAGJAjYEGAEKACAWIQQTQsLfsk2rXT/0aixZtxHs04w6PAUCY2MgigIbDAAKCRBZ -# txHs04w6POmfD/9GJ5sxWnwv8wzU46K4pK/Ie6AVCVIPgtqGIvifHwz4VM9VGIyb -# oFTlRjow+i1z/8hb3tqdaJZvHkAv6jTPX6N3UiZ9l81LOqBJsx+vBHOSKAIRlgqX -# jZ97N5y2H62BmBLqJxqA+C/8JhgrTiNB6pNAwet2mBgXCt2GDgy9UVgJ0Y/wJ2lk -# E5LZOilxqd7P+qCruaCPyjyNkMTU9b3C2qR46Ip1GWc//UWwmLKCYsF+eVUst9Mk -# O4QVJTj1B51mCXgrhg0ei8lNzXHw79W2MpEG6+HRUzyJqGylxh8B4BKwvGEr6PkC -# QN8QE7kGhxLNXPNjAyM15lWOckR0nPkwV5zV+gpw+R5grOgnBcMIhoMkUKiFqnbd -# km5bxwF00OL/QqocAvOUY44G1WtsigAeNu3OM3ki1j6VVAOlwljQ8OSdLuVM3vsU -# Q2i0lo99PuDaAjTxCFPx7+/TsL5vL21zGvVpkWvXsfVLFvjo2bTs5Yc78MGF4IZN -# o4QUqU7MGkjT7r8rFSPwFkAny0vUkp5iAKKaQFSvi5j1SNExtSeWk+cfjHwrH9l5 -# U6WDcghw5dibCpCUg5Eh0pbVe/Wdql3Y63Urk35fFAtGGpHozoVpoWFg6+n5HVlo -# 1DSrn+zuuxMp02sV+9MfqnT8Gq3fbU1mlTmqALKWa71w1dAv/M1kdjgA5w== -# =nfI3 -# -----END PGP PUBLIC KEY BLOCK----- -# KEY -# } - -# plugin "azurerm-ext" { -# enabled = true -# version = "0.4.0" -# source = "github.com/Azure/tflint-ruleset-azurerm-ext" -# signing_key = <<-KEY -# -----BEGIN PGP PUBLIC KEY BLOCK----- - -# mQINBGNjIIoBEACni6mzvCfY14cicqnW+BjFCoTUM95nxUINDFEQ7wkxGWmufAvQ -# iEUDrv6iVNCEfk1cU2jGSWUlBu6hTZ9auOy8K2MrMhtdqYVx+mY1SS+fVYHzSQAC -# C3qBTBY+TmDHl0QMQjF884AsYE2WTcZI3e1DOXXkVKlOMERzT7IQMVbeuiVklwLj -# BA/sQISaZVesaWPWN8WtRb8iOrq4i5HHqnAWRZGtqMEsoNBWqzjqh1aoQ7Ex3ldH -# 2Ey1bEIi05PWr67k1QOU9pXhMNuC+NXCQDO1sEq/NG376v2GbgylVapUlWAq35tw -# Ut8SFfiDM+GyHN1nNNjBKhOB7774yqh6FrPIfh/2WvN1EhAbPkr9eWfHROyIPWj1 -# t+IBFlMFbvMHLeMrlSZAkqlLljEZHdfzBfEXGUYKOOz/aeR+XjeMxGX977VoMk/0 -# uzLQPoVMqjOrAY4Iq+XhW6w4aBihDqkot3TDH6Cyczl+N9We0QatWd5jAG+BTb22 -# 7AevzSlDKh/+oUAec6iG/WF4MjJB3c1Fdpkw4rtTjha6zKrFHNvpDzuyvJEnO9Pt -# eBRAWaQvkqfMccQMYsasHWYkZKH2U8RAsqgW8iF9aRktBdGPao+ztkblbj/c7dUz -# L4J28SmivzDJAzoAANjiC2R6xLBOb6b+TyafFmgevepwgN1QG5bPY3MptwARAQAB -# tB9oZXppamllIDxoZXppamllQG1pY3Jvc29mdC5jb20+iQJOBBMBCgA4FiEEE0LC -# 37JNq10/9GosWbcR7NOMOjwFAmNjIIoCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgEC -# F4AACgkQWbcR7NOMOjxtdQ//TUh2/GmF+4TF2qLgRgHKaH8pL8cUaCgYdUNlrK7B -# 8OXBKIxrnNs8FXUSsgyKHMjAdg0EdSgJt+w9nOgZEtLPTOE+e3RKgmmsMc9vn/qq -# qoOw8B6NxRIJsGp8YbemoDUnmrUK93TSRxINBup4y413ZoON7g8O7I8kQBz4Ra6E -# 6U+Yx5rstFeS5D5jzWYeoh9Y6g9zucEDe3qnS8LcPmhj95mrm7A4uNwMDmny/J7B -# I3sVILAybp8D8/PSSixjGsCr+81marKlkHxqaSL8dpR2tr2Z1lcm2gS4z81NXlx4 -# vh79cvpX8hedysssl8FpV3SzxYFlgWNP97vM9AAv00fBOR4lid3ZNoRCQdfw7LeT -# GrglCWmMZ3Pm8JClYTbcsQ5wg5JgPFU9Rht+QN/EoNfJ5RipYYYwE9AOSJ6eJxHB -# QH9pM1b+dZ6dYLqReeGUlZ0pYBoLC+LpqknxlPQzUuPl5VbbL2TsFIVy5n963gAk -# 5vEnRJgUFx+agI6ZPw+SnXRjwgqvuasgE8Z6wwbXWnSZf1kbJr4sv5alN/u1Uyph -# CYl3uuHJkm0D/YfH4b83Bq7saTXWmJib7AR4piB8Z81vpO+Nq3zcvX1Z3r0AlF4j -# t0KDU/cix305ldEITT7EJAxkxI71XCTgdt78h/e2N1gLatsv8I98ShK/U6Jxb0kx -# pLC5Ag0EY2MgigEQAJJgnoe58UiuSFJIxPY6g4djYrWm7R9gw8oCdWJhjT9ou+bD -# HYIY0RaaXuUsBaA/logdO87MeiIyPirypPhpSHN1c6CXBfLyspO606su8AKS+DK3 -# lTzExtU8c5lwP0KnDDugs/qbjpntrXCCUmxTF2RDMFbkbaAt9vl671+kggXvOfe/ -# iJFXjWXfBx/nKeMkHmXo6qpizurqe0CYdlOW2w7UXjeX8snuOz7kFK3PhEHJ8CKA -# UEwqQaEp8v5zbAWGzRzPbY3Djw1RHw/WT6gEZWPQYK0HP6VdwIVJhpp8RKUe3QHJ -# cG/hUJrEdbLOZrBe5NZCP5RStJ3XL4aAVS0nu/18nB1vf7pYq6VaywEM9n5PuLWr -# mdtvUMTaDLjLM9H24qU8wHbiy+3jMGIUz5sKKIkBN8VxGacHo7Aadk7npGwiLpPD -# VV0L5eapSCgf1Nja7ZDnzgzlcztg7eBV7r+tRBsgtWiFlDu00NZCowGfxeaWc7TZ -# 08JweBe4VDpUZZLiA/J2ET0/qAfDtTLtLbMrcgFuIZi0f05FG0qtW5SuVVuYGfdE -# F7rUYFC5F39GxiDElR9F4XQcfhhtzAwVe9cYquPEkFBovzwhcVyJ3sfvupbk2nTN -# koBjcs0n5C1b3YiaYeGM06hAXD0OTnl0Pbx1qMXTNs3DLCUoraU6tAwSvU4LABEB -# AAGJAjYEGAEKACAWIQQTQsLfsk2rXT/0aixZtxHs04w6PAUCY2MgigIbDAAKCRBZ -# txHs04w6POmfD/9GJ5sxWnwv8wzU46K4pK/Ie6AVCVIPgtqGIvifHwz4VM9VGIyb -# oFTlRjow+i1z/8hb3tqdaJZvHkAv6jTPX6N3UiZ9l81LOqBJsx+vBHOSKAIRlgqX -# jZ97N5y2H62BmBLqJxqA+C/8JhgrTiNB6pNAwet2mBgXCt2GDgy9UVgJ0Y/wJ2lk -# E5LZOilxqd7P+qCruaCPyjyNkMTU9b3C2qR46Ip1GWc//UWwmLKCYsF+eVUst9Mk -# O4QVJTj1B51mCXgrhg0ei8lNzXHw79W2MpEG6+HRUzyJqGylxh8B4BKwvGEr6PkC -# QN8QE7kGhxLNXPNjAyM15lWOckR0nPkwV5zV+gpw+R5grOgnBcMIhoMkUKiFqnbd -# km5bxwF00OL/QqocAvOUY44G1WtsigAeNu3OM3ki1j6VVAOlwljQ8OSdLuVM3vsU -# Q2i0lo99PuDaAjTxCFPx7+/TsL5vL21zGvVpkWvXsfVLFvjo2bTs5Yc78MGF4IZN -# o4QUqU7MGkjT7r8rFSPwFkAny0vUkp5iAKKaQFSvi5j1SNExtSeWk+cfjHwrH9l5 -# U6WDcghw5dibCpCUg5Eh0pbVe/Wdql3Y63Urk35fFAtGGpHozoVpoWFg6+n5HVlo -# 1DSrn+zuuxMp02sV+9MfqnT8Gq3fbU1mlTmqALKWa71w1dAv/M1kdjgA5w== -# =nfI3 -# -----END PGP PUBLIC KEY BLOCK----- -# KEY -# } - -# rule "terraform_comment_syntax" { -# enabled = true -# } - -# rule "terraform_deprecated_index" { -# enabled = true -# } - -# rule "terraform_deprecated_interpolation" { -# enabled = true -# } - -# rule "terraform_documented_outputs" { -# enabled = true -# } - -# rule "terraform_documented_variables" { -# enabled = true -# } - -# rule "terraform_empty_list_equality" { -# enabled = true -# } - -# rule "terraform_module_pinned_source" { -# enabled = true -# } - -# rule "terraform_module_version" { -# enabled = true -# } - -# rule "terraform_naming_convention" { -# enabled = true -# } - -# rule "terraform_required_providers" { -# enabled = true -# } - -# rule "terraform_required_version" { -# enabled = true -# } - -# rule "terraform_standard_module_structure" { -# enabled = true -# } - -# rule "terraform_typed_variables" { -# enabled = true -# } - -# rule "terraform_unused_declarations" { -# enabled = true -# } - -# rule "terraform_unused_required_providers" { -# enabled = true -# } - -# rule "terraform_workspace_remote" { -# enabled = true -# } - -# # rule "terraform_locals_order" { -# # enabled = false -# # } - -# # rule "terraform_output_order" { -# # enabled = false -# # } - -# # rule "terraform_output_separate" { -# # enabled = false -# # } - -# # rule "terraform_variable_nullable_false" { -# # enabled = false -# # } - -# # rule "terraform_variable_order" { -# # enabled = false -# # } - -# # rule "terraform_variable_separate" { -# # enabled = false -# # } - -# # rule "terraform_resource_data_arg_layout" { -# # enabled = false -# # } - -# # rule "azurerm_arg_order" { -# # enabled = false -# # } - -# rule "azurerm_resource_tag" { -# enabled = true -# } - -# # rule "terraform_count_index_usage" { -# # enabled = false -# # } - -# rule "terraform_heredoc_usage" { -# enabled = true -# } - -# # rule "terraform_module_provider_declaration" { -# # enabled = true -# # } - -# rule "terraform_required_providers_declaration" { -# enabled = true -# } - -# # rule "terraform_required_version_declaration" { -# # enabled = true -# # } - -# # rule "terraform_sensitive_variable_no_default" { -# # enabled = false -# # } - -# rule "terraform_versions_file" { -# enabled = true -# } - -# # Disable all generated rules - -# rule "azurerm_analysis_services_server_invalid_querypool_connection_mode" { -# enabled = false -# } - -# rule "azurerm_application_insights_analytics_item_invalid_scope" { -# enabled = false -# } - -# rule "azurerm_application_insights_analytics_item_invalid_type" { -# enabled = false -# } - -# rule "azurerm_application_insights_web_test_invalid_kind" { -# enabled = false -# } - -# rule "azurerm_automation_account_invalid_sku_name" { -# enabled = false -# } - -# rule "azurerm_automation_runbook_invalid_runbook_type" { -# enabled = false -# } - -# rule "azurerm_automation_schedule_invalid_frequency" { -# enabled = false -# } - -# rule "azurerm_batch_account_invalid_name" { -# enabled = false -# } - -# rule "azurerm_batch_account_invalid_pool_allocation_mode" { -# enabled = false -# } - -# rule "azurerm_batch_application_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_batch_application_invalid_name" { -# enabled = false -# } - -# rule "azurerm_batch_certificate_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_batch_certificate_invalid_format" { -# enabled = false -# } - -# rule "azurerm_batch_pool_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_batch_pool_invalid_name" { -# enabled = false -# } - -# rule "azurerm_bot_channel_directline_invalid_bot_name" { -# enabled = false -# } - -# rule "azurerm_bot_channel_directline_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_bot_channel_email_invalid_bot_name" { -# enabled = false -# } - -# rule "azurerm_bot_channel_email_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_bot_channel_ms_teams_invalid_bot_name" { -# enabled = false -# } - -# rule "azurerm_bot_channel_ms_teams_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_bot_channel_slack_invalid_bot_name" { -# enabled = false -# } - -# rule "azurerm_bot_channel_slack_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_bot_channels_registration_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_bot_channels_registration_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_bot_connection_invalid_bot_name" { -# enabled = false -# } - -# rule "azurerm_bot_connection_invalid_name" { -# enabled = false -# } - -# rule "azurerm_bot_connection_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_bot_web_app_invalid_name" { -# enabled = false -# } - -# rule "azurerm_bot_web_app_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_bot_web_app_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_cdn_endpoint_invalid_optimization_type" { -# enabled = false -# } - -# rule "azurerm_cdn_endpoint_invalid_querystring_caching_behaviour" { -# enabled = false -# } - -# rule "azurerm_cdn_endpoint_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cdn_profile_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cdn_profile_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_cognitive_account_invalid_name" { -# enabled = false -# } - -# rule "azurerm_container_registry_invalid_name" { -# enabled = false -# } - -# rule "azurerm_container_registry_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_container_registry_webhook_invalid_name" { -# enabled = false -# } - -# rule "azurerm_container_registry_webhook_invalid_registry_name" { -# enabled = false -# } - -# rule "azurerm_container_registry_webhook_invalid_status" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_account_invalid_kind" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_account_invalid_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_account_invalid_offer_type" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_account_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_cassandra_keyspace_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_cassandra_keyspace_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_gremlin_database_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_gremlin_database_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_gremlin_graph_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_gremlin_graph_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_mongo_collection_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_mongo_database_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_mongo_database_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_sql_container_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_sql_container_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_sql_database_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_sql_database_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_table_invalid_account_name" { -# enabled = false -# } - -# rule "azurerm_cosmosdb_table_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_dataset_mysql_invalid_linked_service_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_dataset_mysql_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_dataset_postgresql_invalid_linked_service_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_dataset_postgresql_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_dataset_sql_server_table_invalid_linked_service_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_dataset_sql_server_table_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_integration_runtime_managed_invalid_edition" { -# enabled = false -# } - -# rule "azurerm_data_factory_integration_runtime_managed_invalid_license_type" { -# enabled = false -# } - -# rule "azurerm_data_factory_integration_runtime_managed_invalid_max_parallel_executions_per_node" { -# enabled = false -# } - -# rule "azurerm_data_factory_integration_runtime_managed_invalid_number_of_nodes" { -# enabled = false -# } - -# rule "azurerm_data_factory_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_linked_service_data_lake_storage_gen2_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_linked_service_mysql_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_linked_service_postgresql_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_linked_service_sql_server_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_pipeline_invalid_name" { -# enabled = false -# } - -# rule "azurerm_data_factory_trigger_schedule_invalid_frequency" { -# enabled = false -# } - -# rule "azurerm_database_migration_project_invalid_source_platform" { -# enabled = false -# } - -# rule "azurerm_database_migration_project_invalid_target_platform" { -# enabled = false -# } - -# rule "azurerm_databricks_workspace_invalid_managed_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_databricks_workspace_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_dedicated_host_group_invalid_platform_fault_domain_count" { -# enabled = false -# } - -# rule "azurerm_dedicated_host_invalid_license_type" { -# enabled = false -# } - -# rule "azurerm_dedicated_host_invalid_platform_fault_domain" { -# enabled = false -# } - -# rule "azurerm_dev_test_policy_invalid_evaluator_type" { -# enabled = false -# } - -# rule "azurerm_dev_test_policy_invalid_name" { -# enabled = false -# } - -# rule "azurerm_dev_test_schedule_invalid_status" { -# enabled = false -# } - -# rule "azurerm_eventgrid_domain_invalid_input_schema" { -# enabled = false -# } - -# rule "azurerm_eventgrid_event_subscription_invalid_event_delivery_schema" { -# enabled = false -# } - -# rule "azurerm_eventhub_namespace_invalid_capacity" { -# enabled = false -# } - -# rule "azurerm_eventhub_namespace_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_express_route_circuit_peering_invalid_peering_type" { -# enabled = false -# } - -# rule "azurerm_firewall_application_rule_collection_invalid_action" { -# enabled = false -# } - -# rule "azurerm_firewall_application_rule_collection_invalid_priority" { -# enabled = false -# } - -# rule "azurerm_firewall_nat_rule_collection_invalid_action" { -# enabled = false -# } - -# rule "azurerm_firewall_nat_rule_collection_invalid_priority" { -# enabled = false -# } - -# rule "azurerm_firewall_network_rule_collection_invalid_action" { -# enabled = false -# } - -# rule "azurerm_firewall_network_rule_collection_invalid_priority" { -# enabled = false -# } - -# rule "azurerm_frontdoor_firewall_policy_invalid_custom_block_response_body" { -# enabled = false -# } - -# rule "azurerm_frontdoor_firewall_policy_invalid_mode" { -# enabled = false -# } - -# rule "azurerm_frontdoor_firewall_policy_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_frontdoor_invalid_name" { -# enabled = false -# } - -# rule "azurerm_frontdoor_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_hdinsight_hadoop_cluster_invalid_tier" { -# enabled = false -# } - -# rule "azurerm_hdinsight_hbase_cluster_invalid_tier" { -# enabled = false -# } - -# rule "azurerm_hdinsight_interactive_query_cluster_invalid_tier" { -# enabled = false -# } - -# rule "azurerm_hdinsight_kafka_cluster_invalid_tier" { -# enabled = false -# } - -# rule "azurerm_hdinsight_spark_cluster_invalid_tier" { -# enabled = false -# } - -# rule "azurerm_healthcare_service_invalid_cosmosdb_throughput" { -# enabled = false -# } - -# rule "azurerm_healthcare_service_invalid_kind" { -# enabled = false -# } - -# rule "azurerm_healthcare_service_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_hpc_cache_invalid_name" { -# enabled = false -# } - -# rule "azurerm_image_invalid_hyper_v_generation" { -# enabled = false -# } - -# rule "azurerm_iotcentral_application_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_iothub_endpoint_storage_container_invalid_batch_frequency_in_seconds" { -# enabled = false -# } - -# rule "azurerm_iothub_endpoint_storage_container_invalid_encoding" { -# enabled = false -# } - -# rule "azurerm_iothub_endpoint_storage_container_invalid_max_chunk_size_in_bytes" { -# enabled = false -# } - -# rule "azurerm_iothub_endpoint_storage_container_invalid_name" { -# enabled = false -# } - -# rule "azurerm_iothub_route_invalid_name" { -# enabled = false -# } - -# rule "azurerm_iothub_route_invalid_source" { -# enabled = false -# } - -# rule "azurerm_key_vault_invalid_name" { -# enabled = false -# } - -# rule "azurerm_key_vault_invalid_sku_name" { -# enabled = false -# } - -# rule "azurerm_key_vault_key_invalid_curve" { -# enabled = false -# } - -# rule "azurerm_key_vault_key_invalid_key_type" { -# enabled = false -# } - -# rule "azurerm_kubernetes_cluster_invalid_name" { -# enabled = false -# } - -# rule "azurerm_kubernetes_cluster_node_pool_invalid_os_disk_size_gb" { -# enabled = false -# } - -# rule "azurerm_kubernetes_cluster_node_pool_invalid_os_type" { -# enabled = false -# } - -# rule "azurerm_kusto_eventhub_data_connection_invalid_data_format" { -# enabled = false -# } - -# rule "azurerm_lb_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_lb_nat_pool_invalid_protocol" { -# enabled = false -# } - -# rule "azurerm_lb_nat_rule_invalid_protocol" { -# enabled = false -# } - -# rule "azurerm_lb_outbound_rule_invalid_protocol" { -# enabled = false -# } - -# rule "azurerm_lb_probe_invalid_protocol" { -# enabled = false -# } - -# rule "azurerm_lb_rule_invalid_load_distribution" { -# enabled = false -# } - -# rule "azurerm_lb_rule_invalid_protocol" { -# enabled = false -# } - -# rule "azurerm_linux_virtual_machine_invalid_eviction_policy" { -# enabled = false -# } - -# rule "azurerm_linux_virtual_machine_invalid_priority" { -# enabled = false -# } - -# rule "azurerm_linux_virtual_machine_scale_set_invalid_eviction_policy" { -# enabled = false -# } - -# rule "azurerm_linux_virtual_machine_scale_set_invalid_priority" { -# enabled = false -# } - -# rule "azurerm_logic_app_trigger_recurrence_invalid_frequency" { -# enabled = false -# } - -# rule "azurerm_maintenance_configuration_invalid_scope" { -# enabled = false -# } - -# rule "azurerm_managed_application_definition_invalid_lock_level" { -# enabled = false -# } - -# rule "azurerm_managed_disk_invalid_os_type" { -# enabled = false -# } - -# rule "azurerm_managed_disk_invalid_storage_account_type" { -# enabled = false -# } - -# rule "azurerm_maps_account_invalid_sku_name" { -# enabled = false -# } - -# rule "azurerm_mariadb_firewall_rule_invalid_end_ip_address" { -# enabled = false -# } - -# rule "azurerm_mariadb_firewall_rule_invalid_start_ip_address" { -# enabled = false -# } - -# rule "azurerm_mariadb_server_invalid_version" { -# enabled = false -# } - -# rule "azurerm_monitor_scheduled_query_rules_alert_invalid_severity" { -# enabled = false -# } - -# rule "azurerm_mssql_virtual_machine_invalid_sql_connectivity_type" { -# enabled = false -# } - -# rule "azurerm_mssql_virtual_machine_invalid_sql_license_type" { -# enabled = false -# } - -# rule "azurerm_mysql_firewall_rule_invalid_end_ip_address" { -# enabled = false -# } - -# rule "azurerm_mysql_firewall_rule_invalid_start_ip_address" { -# enabled = false -# } - -# rule "azurerm_nat_gateway_invalid_sku_name" { -# enabled = false -# } - -# rule "azurerm_netapp_account_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_netapp_pool_invalid_name" { -# enabled = false -# } - -# rule "azurerm_netapp_pool_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_netapp_pool_invalid_service_level" { -# enabled = false -# } - -# rule "azurerm_netapp_snapshot_invalid_pool_name" { -# enabled = false -# } - -# rule "azurerm_netapp_snapshot_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_netapp_snapshot_invalid_volume_name" { -# enabled = false -# } - -# rule "azurerm_netapp_volume_invalid_name" { -# enabled = false -# } - -# rule "azurerm_netapp_volume_invalid_pool_name" { -# enabled = false -# } - -# rule "azurerm_netapp_volume_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_netapp_volume_invalid_service_level" { -# enabled = false -# } - -# rule "azurerm_network_packet_capture_invalid_maximum_capture_duration" { -# enabled = false -# } - -# rule "azurerm_network_security_rule_invalid_access" { -# enabled = false -# } - -# rule "azurerm_network_security_rule_invalid_direction" { -# enabled = false -# } - -# rule "azurerm_network_security_rule_invalid_protocol" { -# enabled = false -# } - -# rule "azurerm_notification_hub_namespace_invalid_namespace_type" { -# enabled = false -# } - -# rule "azurerm_notification_hub_namespace_invalid_sku_name" { -# enabled = false -# } - -# rule "azurerm_postgresql_configuration_invalid_name" { -# enabled = false -# } - -# rule "azurerm_postgresql_database_invalid_charset" { -# enabled = false -# } - -# rule "azurerm_postgresql_database_invalid_collation" { -# enabled = false -# } - -# rule "azurerm_postgresql_database_invalid_name" { -# enabled = false -# } - -# rule "azurerm_postgresql_firewall_rule_invalid_end_ip_address" { -# enabled = false -# } - -# rule "azurerm_postgresql_firewall_rule_invalid_name" { -# enabled = false -# } - -# rule "azurerm_postgresql_firewall_rule_invalid_start_ip_address" { -# enabled = false -# } - -# rule "azurerm_postgresql_server_invalid_version" { -# enabled = false -# } - -# rule "azurerm_public_ip_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_public_ip_prefix_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_recovery_services_vault_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_redis_cache_invalid_family" { -# enabled = false -# } - -# rule "azurerm_redis_cache_invalid_minimum_tls_version" { -# enabled = false -# } - -# rule "azurerm_redis_cache_invalid_private_static_ip_address" { -# enabled = false -# } - -# rule "azurerm_redis_cache_invalid_sku_name" { -# enabled = false -# } - -# rule "azurerm_redis_cache_invalid_subnet_id" { -# enabled = false -# } - -# rule "azurerm_relay_namespace_invalid_sku_name" { -# enabled = false -# } - -# rule "azurerm_route_invalid_next_hop_type" { -# enabled = false -# } - -# rule "azurerm_sql_database_invalid_create_mode" { -# enabled = false -# } - -# rule "azurerm_search_service_invalid_partition_count" { -# enabled = false -# } - -# rule "azurerm_search_service_invalid_replica_count" { -# enabled = false -# } - -# rule "azurerm_search_service_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_sentinel_alert_rule_ms_security_incident_invalid_product_filter" { -# enabled = false -# } - -# rule "azurerm_service_fabric_cluster_invalid_reliability_level" { -# enabled = false -# } - -# rule "azurerm_service_fabric_cluster_invalid_upgrade_mode" { -# enabled = false -# } - -# rule "azurerm_servicebus_namespace_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_servicebus_subscription_rule_invalid_filter_type" { -# enabled = false -# } - -# rule "azurerm_servicebus_topic_invalid_status" { -# enabled = false -# } - -# rule "azurerm_shared_image_invalid_os_type" { -# enabled = false -# } - -# rule "azurerm_storage_account_invalid_access_tier" { -# enabled = false -# } - -# rule "azurerm_storage_account_invalid_account_kind" { -# enabled = false -# } - -# rule "azurerm_storage_account_invalid_resource_group_name" { -# enabled = false -# } - -# rule "azurerm_storage_account_network_rules_invalid_default_action" { -# enabled = false -# } - -# rule "azurerm_stream_analytics_job_invalid_compatibility_level" { -# enabled = false -# } - -# rule "azurerm_stream_analytics_job_invalid_events_out_of_order_policy" { -# enabled = false -# } - -# rule "azurerm_stream_analytics_job_invalid_output_error_policy" { -# enabled = false -# } - -# rule "azurerm_template_deployment_invalid_deployment_mode" { -# enabled = false -# } - -# rule "azurerm_traffic_manager_profile_invalid_profile_status" { -# enabled = false -# } - -# rule "azurerm_traffic_manager_profile_invalid_traffic_routing_method" { -# enabled = false -# } - -# rule "azurerm_virtual_machine_data_disk_attachment_invalid_caching" { -# enabled = false -# } - -# rule "azurerm_virtual_machine_data_disk_attachment_invalid_create_option" { -# enabled = false -# } - -# rule "azurerm_virtual_machine_scale_set_invalid_eviction_policy" { -# enabled = false -# } - -# rule "azurerm_virtual_machine_scale_set_invalid_priority" { -# enabled = false -# } - -# rule "azurerm_virtual_network_gateway_connection_invalid_connection_protocol" { -# enabled = false -# } - -# rule "azurerm_virtual_network_gateway_connection_invalid_type" { -# enabled = false -# } - -# rule "azurerm_virtual_network_gateway_invalid_generation" { -# enabled = false -# } - -# rule "azurerm_virtual_network_gateway_invalid_sku" { -# enabled = false -# } - -# rule "azurerm_virtual_network_gateway_invalid_type" { -# enabled = false -# } - -# rule "azurerm_virtual_network_gateway_invalid_vpn_type" { -# enabled = false -# } - -# rule "azurerm_virtual_wan_invalid_office365_local_breakout_category" { -# enabled = false -# } - -# rule "azurerm_windows_virtual_machine_invalid_eviction_policy" { -# enabled = false -# } - -# rule "azurerm_windows_virtual_machine_invalid_priority" { -# enabled = false -# } - -# rule "azurerm_windows_virtual_machine_scale_set_invalid_eviction_policy" { -# enabled = false -# } - -# rule "azurerm_windows_virtual_machine_scale_set_invalid_priority" { -# enabled = false -# } diff --git a/Makefile b/Makefile index 3b76505..d7e0718 100644 --- a/Makefile +++ b/Makefile @@ -1,18 +1,4 @@ -.PHONY: docs -docs: - @echo "==> Generating module documentation..." - terraform-docs -c .terraform-docs.yml . - @echo "==> Generating examples documentation..." - cd examples && for d in $$(ls -d */); do terraform-docs $$d; done +SHELL := /bin/bash -.PHONY: fmt -fmt: - @echo "==> Fixing Terraform code with terraform fmt..." - terraform fmt -recursive - @echo "==> Fixing embedded Terraform with terrafmt..." - find . | egrep ".md|.tf" | grep -v README.md | sort | while read f; do terrafmt fmt $$f; done - -.PHONY: tools -tools: - go install github.com/katbyte/terrafmt@latest - go install github.com/terraform-docs/terraform-docs@latest +$(shell curl -H 'Cache-Control: no-cache, no-store' -sSL "https://raw.githubusercontent.com/Azure/tfmod-scaffold/main/avmmakefile" -o avmmakefile) +-include avmmakefile \ No newline at end of file diff --git a/main.tf b/main.tf index 609c266..143da1e 100644 --- a/main.tf +++ b/main.tf @@ -8,7 +8,7 @@ resource "azurerm_TODO_the_resource_for_this_module" "this" { name = var.name # calling code must supply the name resource_group_name = var.resource_group_name location = coalesce(var.location, local.resource_group_location) - // etc + # etc } # required AVM resources interfaces diff --git a/variables.tf b/variables.tf index a51ce25..071170b 100644 --- a/variables.tf +++ b/variables.tf @@ -32,8 +32,9 @@ variable "name" { } } -// required AVM interfaces -// remove only if not supported by the resource +# required AVM interfaces +# remove only if not supported by the resource +# tflint-ignore: terraform_unused_declarations variable "customer_managed_key" { type = object({ key_vault_resource_id = optional(string) @@ -104,6 +105,7 @@ variable "lock" { } } +# tflint-ignore: terraform_unused_declarations variable "managed_identities" { type = object({ system_assigned = optional(bool, false) @@ -190,6 +192,7 @@ A map of role assignments to create on this resource. The map key is deliberatel DESCRIPTION } +# tflint-ignore: terraform_unused_declarations variable "tags" { type = map(any) description = "The map of tags to be applied to the resource" From e3ebc17ae371aa0f65595fe808e5c4755a110545 Mon Sep 17 00:00:00 2001 From: hezijie Date: Fri, 15 Dec 2023 14:14:36 +0800 Subject: [PATCH 4/4] update testexamples, use docker container and 1es pool --- .github/actions/e2e-testexamples/action.yml | 47 --------------------- .github/workflows/e2e.yml | 18 ++++---- 2 files changed, 9 insertions(+), 56 deletions(-) delete mode 100644 .github/actions/e2e-testexamples/action.yml diff --git a/.github/actions/e2e-testexamples/action.yml b/.github/actions/e2e-testexamples/action.yml deleted file mode 100644 index c1ac53a..0000000 --- a/.github/actions/e2e-testexamples/action.yml +++ /dev/null @@ -1,47 +0,0 @@ -author: AVM -name: e2e - testexamples -description: Tests the example supplied in the input. Needs checkout and Azure login prior. -inputs: - example: - description: The example directory to test - required: true - -runs: - using: composite - steps: - - uses: hashicorp/setup-terraform@v2 - with: - terraform_version: ">=1.5.0" - - - name: terraform init - run: terraform init - working-directory: examples/${{ inputs.example }} - shell: bash - - - name: terraform apply - run: terraform apply -auto-approve - working-directory: examples/${{ inputs.example }} - shell: bash - - - name: terraform plan - id: plan - run: | - terraform plan -detailed-exitcode - echo PLANCODE="$?" >> "$GITHUB_OUTPUT" - continue-on-error: true - working-directory: examples/${{ inputs.example }} - shell: bash - - - name: check idempotent - run: | - echo Error: terraform plan code is ${{ steps.plan.outputs.PLANCODE }} - exit 1 - working-directory: examples/${{ inputs.example }} - shell: bash - if: steps.plan.outputs.PLANCODE != 0 - - - name: terraform destroy - run: terraform destroy -auto-approve - working-directory: examples/${{ inputs.example }} - shell: bash - if: always() diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 6186bb1..e09cafb 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -18,7 +18,7 @@ jobs: outputs: examples: ${{ steps.getexamples.outputs.examples }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1 + - uses: actions/checkout@v4 - name: get examples id: getexamples uses: Azure/terraform-azurerm-avm-template/.github/actions/e2e-getexamples@main @@ -27,7 +27,7 @@ jobs: testexamples: if: github.event.repository.name != 'terraform-azurerm-avm-template' - runs-on: ubuntu-latest + runs-on: [ self-hosted, 1ES.Pool=terraform-azurerm-container-apps ] needs: getexamples environment: test env: @@ -40,14 +40,14 @@ jobs: steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1 - - uses: Azure/login@v1 - with: - client-id: ${{ secrets.AZURE_CLIENT_ID }} - tenant-id: ${{ secrets.AZURE_TENANT_ID }} - subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - - name: Test example - uses: Azure/terraform-azurerm-avm-template/.github/actions/e2e-testexamples@main + shell: bash + run: | + set -e + az login --identity --username $MSI_ID > /dev/null + export ARM_SUBSCRIPTION_ID=$(az login --identity --username $MSI_ID | jq -r '.[0] | .id') + export ARM_TENANT_ID=$(az login --identity --username $MSI_ID | jq -r '.[0] | .tenantId') + docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):/src -w /src --network=host -e TF_IN_AUTOMATION -e TF_VAR_enable_telemetry -e AVM_MOD_PATH=/src -e AVM_EXAMPLE=${{ matrix.example }} -e MSI_ID -e ARM_SUBSCRIPTION_ID -e ARM_TENANT_ID -e ARM_USE_MSI=true mcr.microsoft.com/azterraform:latest make test-example with: example: ${{ matrix.example }}