diff --git a/.github/examples/pr_merge_matrix.yaml b/.github/examples/pr_merge_matrix.yaml index 14a80c24..0bdef4e2 100644 --- a/.github/examples/pr_merge_matrix.yaml +++ b/.github/examples/pr_merge_matrix.yaml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-latest permissions: - actions: read # Required to download repository artifact. - checks: write # Required to add status summary. - contents: read # Required to checkout repository. - pull-requests: write # Required to add PR comment and label. + actions: read # Required to identify workflow run. + checks: write # Required to add status summary. + contents: read # Required to checkout repository. + pull-requests: write # Required to add comment and label. strategy: fail-fast: false @@ -30,11 +30,12 @@ jobs: uses: opentofu/setup-opentofu@v1 - name: Provision TF - uses: devsectop/tf-via-pr@v11 + uses: devsectop/tf-via-pr@v12 with: - arg_chdir: directory/path arg_command: ${{ github.event_name == 'merge_group' && 'apply' || 'plan' }} - arg_lock: ${{ github.event_name == 'merge_group' && 'true' || 'false' }} - arg_var_file: env/${{ matrix.deployment }}.tfvars - arg_workspace: ${{ matrix.deployment }} - plan_parity: true + arg-lock: ${{ github.event_name == 'merge_group' }} + arg-var-file: env/${{ matrix.deployment }}.tfvars + arg-workspace: ${{ matrix.deployment }} + working-directory: path/to/directory + plan-encrypt: ${{ secrets.PASSPHRASE }} + plan-parity: true diff --git a/.github/examples/pr_push_auth.yaml b/.github/examples/pr_push_auth.yaml index 32477270..5fb01631 100644 --- a/.github/examples/pr_push_auth.yaml +++ b/.github/examples/pr_push_auth.yaml @@ -11,11 +11,11 @@ jobs: runs-on: ubuntu-latest permissions: - actions: read # Required to download repository artifact. - checks: write # Required to add status summary. - contents: read # Required to checkout repository. - id-token: write # Required to authenticate via OIDC. - pull-requests: write # Required to add PR comment and label. + actions: read # Required to identify workflow run. + checks: write # Required to add status summary. + contents: read # Required to checkout repository. + id-token: write # Required to authenticate via OIDC. + pull-requests: write # Required to add comment and label. steps: - name: Checkout repository @@ -31,8 +31,9 @@ jobs: uses: hashicorp/setup-terraform@v3 - name: Provision TF - uses: devsectop/tf-via-pr@v11 + uses: devsectop/tf-via-pr@v12 with: - arg_chdir: directory/path - arg_command: ${{ github.event_name == 'push' && 'apply' || 'plan' }} - arg_lock: ${{ github.event_name == 'push' && 'true' || 'false' }} + command: ${{ github.event_name == 'push' && 'apply' || 'plan' }} + arg-lock: ${{ github.event_name == 'push' }} + working-directory: path/to/directory + plan-encrypt: ${{ secrets.PASSPHRASE }} diff --git a/.github/examples/pr_self_hosted.yaml b/.github/examples/pr_self_hosted.yaml new file mode 100644 index 00000000..1ceb27ac --- /dev/null +++ b/.github/examples/pr_self_hosted.yaml @@ -0,0 +1,43 @@ +--- +name: Trigger on pull_request (plan or apply) event with Terraform and OpenTofu on self-hosted runner. + +on: + pull_request: + types: [opened, reopened, synchronize, closed] + +jobs: + tf: + runs-on: self-hosted + + permissions: + actions: read # Required to identify workflow run. + checks: write # Required to add status summary. + contents: read # Required to checkout repository. + pull-requests: write # Required to add comment and label. + + env: + tool: terraform + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Terraform + if: env.tool == 'terraform' + uses: hashicorp/setup-terraform@v3 + + - name: Setup OpenTofu + if: env.tool == 'tofu' + uses: opentofu/setup-opentofu@v1 + + - name: Install GitHub CLI + run: sudo apt update && sudo apt install gh -y + + - name: Provision TF + uses: devsectop/tf-via-pr@v12 + with: + command: ${{ github.event.pull_request.merged && 'apply' || 'plan' }} + arg-lock: ${{ github.event.pull_request.merged }} + working-directory: path/to/directory + plan-encrypt: ${{ secrets.PASSPHRASE }} + tool: ${{ env.tool }} diff --git a/.github/examples/pr_tenv.yaml b/.github/examples/pr_tenv.yaml deleted file mode 100644 index 0c18ada9..00000000 --- a/.github/examples/pr_tenv.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: Trigger on pull_request (plan or apply) event with tenv proxy to avoid TF wrapper. - -on: - pull_request: - types: [opened, reopened, synchronize, closed] - -jobs: - tf: - runs-on: self-hosted - - permissions: - actions: read # Required to download repository artifact. - checks: write # Required to add status summary. - contents: read # Required to checkout repository. - pull-requests: write # Required to add PR comment and label. - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup Node - uses: actions/setup-node@v4 - with: - node-version: "lts/*" - - - name: Provision TF - uses: devsectop/tf-via-pr@v11 - with: - arg_chdir: directory/path - arg_command: ${{ github.event.pull_request.merged && 'apply' || 'plan' }} - tf_version: ~> 1.8.0 diff --git a/.github/examples/schedule_refresh.yaml b/.github/examples/schedule_refresh.yaml new file mode 100644 index 00000000..26b40a75 --- /dev/null +++ b/.github/examples/schedule_refresh.yaml @@ -0,0 +1,40 @@ +--- +name: Trigger on schedule (cron) event with 'fmt' and 'validate' checks to identify configuration drift. + +on: + schedule: + - cron: "0 */8 * * 1-5" # Every 8 hours on weekdays. + +jobs: + tf: + runs-on: ubuntu-latest + + permissions: + actions: read # Required to identify workflow run. + checks: write # Required to add status summary. + contents: read # Required to checkout repository. + pull-requests: write # Required to add comment and label. + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup TF + uses: hashicorp/setup-terraform@v3 + + - name: Provision TF + id: provision + uses: devsectop/tf-via-pr@v12 + with: + command: plan + arg-lock: false + arg-parallelism: 20 + arg-refresh-only: true + working-directory: path/to/directory + plan-encrypt: ${{ secrets.PASSPHRASE }} + format: true + validate: true + + - name: Check drift + if: steps.provision.outputs.exitcode != 0 + run: echo "Configuration drift detected." diff --git a/assets/screenshot_dark.png b/assets/screenshot_dark.png deleted file mode 100644 index d372002b..00000000 Binary files a/assets/screenshot_dark.png and /dev/null differ diff --git a/assets/screenshot_light.png b/assets/screenshot_light.png deleted file mode 100644 index 99c64e88..00000000 Binary files a/assets/screenshot_light.png and /dev/null differ diff --git a/docs/README.md b/docs/README.md index 8183293b..db013c11 100644 --- a/docs/README.md +++ b/docs/README.md @@ -8,11 +8,9 @@ # Terraform/OpenTofu via Pull Request (TF-via-PR) -
-

Overview: Usage Examples · In/Output Parameters · Security · Changelog · License

-

+

Overview: Usage Examples · In/Output Parameters · Security · Changelog · License


-[![PR comment of plan output with "Diff of changes" section expanded.](comment.png)](https://raw.githubusercontent.com/DevSecTop/TF-via-PR/refs/heads/docs--tidy-up/docs/comment.png "View full-size image.") +[![PR comment of plan output with "Diff of changes" section expanded.](assets/comment.png)](https://github.com/devsectop/tf-via-pr/blob/main/docs/comment.png?raw=true "View full-size image.")
@@ -83,15 +81,16 @@ jobs: The functional workflow examples below showcase common use cases, while a comprehensive list of inputs is also [documented](#parameters). -- [Trigger](.github/examples/pr_push_auth.yaml) on `pull_request` (plan) and `push` (apply) events with Terraform and AWS **authentication**. -- [Trigger](.github/examples/pr_merge_matrix.yaml) on `pull_request` (plan) and `merge_group` (apply) events with OpenTofu in **matrix** strategy. -- [Trigger](.github/examples/pr_tenv.yaml) on `pull_request` (plan or apply) event with [tenv](https://tofuutils.github.io/tenv/) to avoid TF **wrapper** on **self-hosted** runners. +- [Trigger](/.github/examples/pr_push_auth.yaml) on `pull_request` (plan) and `push` (apply) events with Terraform and AWS **authentication**. +- [Trigger](/.github/examples/pr_merge_matrix.yaml) on `pull_request` (plan) and `merge_group` (apply) events with OpenTofu in **matrix** strategy. +- [Trigger](/.github/examples/pr_self_hosted.yaml) on `pull_request` (plan or apply) event event with Terraform and OpenTofu on **self-hosted** runner. +- [Trigger](/.github/examples/schedule_refresh.yaml) on `schedule` (cron) event with "fmt" and "validate" checks to identify **configuration drift**. ### How does encryption work? -Before the workflow uploads the TF plan file as an artifact, it can be encrypted with a passphrase to prevent exposure of sensitive data using `plan-encrypt` input with a secret (e.g., `${{ secrets.PASSPHRASE }}`). This is done with [OpenSSL](https://docs.openssl.org/master/man1/openssl-enc/ "OpenSSL encryption documentation.")'s symmetric stream counter mode encryption with salt and pbkdf2. +Before the workflow uploads the plan file as an artifact, it can be encrypted with a passphrase to prevent exposure of sensitive data using `plan-encrypt` input with a secret (e.g., `${{ secrets.PASSPHRASE }}`). This is done with [OpenSSL](https://docs.openssl.org/master/man1/openssl-enc/ "OpenSSL encryption documentation.")'s symmetric stream counter mode encryption with salt and pbkdf2. -In order to locally decrypt the TF plan file, use the following commands after downloading the artifact (noting the whitespace before `openssl` to prevent recording the command in shell history): +In order to decrypt the plan file locally, use the following commands after downloading the artifact (noting the whitespace before `openssl` to prevent recording the command in shell history): ```fish unzip @@ -117,6 +116,11 @@ unzip | UI | `label-pr` | Add a PR label with the command input.
Default: `true` | | UI | `hide-args` | Hide comma-separated arguments from the command input.
Default: `detailed-exitcode,lock,out,var` | +
The default behavior of comment-pr is to update the existing PR comment with the latest plan output, making it easy to track changes over time through the comment's revision history.
+ +[![PR comment revision history comparing plan and apply outputs.](assets/revisions.png)](https://github.com/devsectop/tf-via-pr/blob/main/docs/revisions.png?raw=true "View full-size image.") +
+ ### Inputs - Arguments > [!NOTE] @@ -199,8 +203,3 @@ View [all notable changes](https://github.com/devsectop/tf-via-pr/releases "Rele - This project is licensed under the permissive [Apache License 2.0](../LICENSE.txt "Apache License 2.0."). - All works herein are my own, shared of my own volition, and [contributors](https://github.com/devsectop/tf-via-pr/graphs/contributors "Contributors."). - Copyright 2022-2024 [Rishav Dhar](https://github.com/rdhar "Rishav Dhar's GitHub profile.") — All wrongs reserved. - -[opentofu_org]: https://opentofu.org "Open-source Terraform-compatible IaC tool." -[pr_example_1]: https://github.com/devsectop/tf-via-pr/pull/164 "Example PR for this use-case." -[pr_example_2]: https://github.com/devsectop/tf-via-pr/pull/166 "Example PR for this use-case." -[terraform_io]: https://www.terraform.io "Terraform by Hashicorp." diff --git a/docs/comment.png b/docs/assets/comment.png similarity index 100% rename from docs/comment.png rename to docs/assets/comment.png diff --git a/docs/revisions.png b/docs/assets/revisions.png similarity index 100% rename from docs/revisions.png rename to docs/assets/revisions.png diff --git a/sample/bucket/.terraform.lock.hcl b/sample/bucket/.terraform.lock.hcl deleted file mode 100644 index e5472fd0..00000000 --- a/sample/bucket/.terraform.lock.hcl +++ /dev/null @@ -1,20 +0,0 @@ -# This file is maintained automatically by "tofu init". -# Manual edits may be lost in future updates. - -provider "registry.opentofu.org/hashicorp/aws" { - version = "5.62.0" - constraints = ">= 5.27.0, 5.62.0" - hashes = [ - "h1:DzXMlmL2hRPfACAbN1PUhnLDGY9Kl0vbrt05qSfGsxA=", - "zh:2cb519ce7f3cbcb88b2e93dd3b3424ad85a347fc0e7429661945da5df8a20fda", - "zh:2fc7ed911cceaa1652d1f4090eaa91e8463aba86873910bccf16601260379886", - "zh:395b32d157adeb92571a0efd230c73bbee01744782a50356fb16e8946bd63ffb", - "zh:43303d36af40a568cd40bd54dc9e8430e18c4a4d78682b459dca8c755c717a0c", - "zh:65b2c6e955deeeffb9d9cd4ed97e8c532a453ba690d0e3d88c740f9036bccc4d", - "zh:a9d09dc9daf33b16894ed7d192ceb4c402261da58cded503a3ffa1dd2373e3fb", - "zh:c5e9f8bc4397c2075b6dc62458be51b93322517affd760c161633d56b0b9a334", - "zh:db0921c091402179edd549f8aa4f12dce18aab09d4302e800c67d6ec6ff88a86", - "zh:e7d13f9c0891446d03c29e4fcd60de633f71bbf1bc9786fca47a0ee356ac979a", - "zh:f128a725dbdbd31b9ed8ea478782152339c9fab4d635485763c8da2a477fe3f6", - ] -} diff --git a/sample/bucket/README.md b/sample/bucket/README.md deleted file mode 100644 index 895f55f4..00000000 --- a/sample/bucket/README.md +++ /dev/null @@ -1,33 +0,0 @@ -# sample_bucket - -> Deploy a sample bucket to AWS with this template stack. - -## Structure - -- [backend/](backend): Contains backend-specific configuration files. -- [main.tf](main.tf): Contains the configuration of resources to be provisioned (e.g., S3 bucket). - - Best practice is to keep this file as small as possible (e.g., storage.tf). - - Break out the configuration into separate files. -- [providers.tf](providers.tf): Contains stack requirements, such as providers (e.g., AWS). -- [terraform.tfvars](terraform.tfvars): Contains values assigned to each variable (e.g., region). - - Certain variable definitions files are [loaded automatically](https://developer.hashicorp.com/terraform/language/values/variables#variable-definitions-tfvars-files). -- [variables.tf](variables.tf): Contains the definitions declared for each variable (e.g., region). - -## Inputs - -- PREFIX -- aws_region -- bucket_versioning - -## Outputs - -- sample_bucket_id - -## Command - -```sh -export TF_VAR_PREFIX=sample -tofu init -upgrade -reconfigure -backend-config=backend/dev.tfbackend -tofu workspace select dev -tofu apply -``` diff --git a/sample/bucket/backend/dev.tfbackend b/sample/bucket/backend/dev.tfbackend deleted file mode 100644 index b380a429..00000000 --- a/sample/bucket/backend/dev.tfbackend +++ /dev/null @@ -1,3 +0,0 @@ -bucket = "tmp-workflow-tfstates" -key = "sample_bucket.tfstate" -region = "us-east-1" diff --git a/sample/bucket/backend/qa.tfbackend b/sample/bucket/backend/qa.tfbackend deleted file mode 100644 index b380a429..00000000 --- a/sample/bucket/backend/qa.tfbackend +++ /dev/null @@ -1,3 +0,0 @@ -bucket = "tmp-workflow-tfstates" -key = "sample_bucket.tfstate" -region = "us-east-1" diff --git a/sample/bucket/main.tf b/sample/bucket/main.tf deleted file mode 100644 index b6adb62a..00000000 --- a/sample/bucket/main.tf +++ /dev/null @@ -1,14 +0,0 @@ -# Create a sample S3 bucket with versioning. -module "sample_bucket" { - source = "../modules/s3_bucket" - source_version = var.s3_source_version - - name_prefix = var.s3_name_prefix - versioning = var.s3_versioning -} - -# Output the ID of the sample S3 bucket. -output "sample_bucket_id" { - description = "ID of the sample S3 bucket." - value = module.sample_bucket.id -} diff --git a/sample/bucket/providers.tf b/sample/bucket/providers.tf deleted file mode 100644 index b73aa3c4..00000000 --- a/sample/bucket/providers.tf +++ /dev/null @@ -1,38 +0,0 @@ -terraform { - required_version = "~> 1.8.0" - - backend "s3" {} - - required_providers { - aws = { - source = "hashicorp/aws" - version = "5.62.0" - } - } -} - -locals { - tags = { - default = { - Environment = "Undefined" - } - dev = { - Environment = "Development" - } - qa = { - Environment = "Quality Assurance" - } - } -} - -provider "aws" { - region = var.aws_region - - default_tags { - tags = merge({ - Stack = basename(abspath(path.root)) - Terraform = terraform.workspace - }, local.tags[terraform.workspace] - ) - } -} diff --git a/sample/bucket/terraform.tfvars b/sample/bucket/terraform.tfvars deleted file mode 100644 index 5045c063..00000000 --- a/sample/bucket/terraform.tfvars +++ /dev/null @@ -1,5 +0,0 @@ -aws_region = "eu-west-1" - -s3_source_version = "4.1.2" -s3_name_prefix = "sample-bucket" -s3_versioning = true diff --git a/sample/bucket/variables.tf b/sample/bucket/variables.tf deleted file mode 100644 index 8c59e326..00000000 --- a/sample/bucket/variables.tf +++ /dev/null @@ -1,19 +0,0 @@ -variable "aws_region" { - description = "String AWS region in which to provision resources." - type = string -} - -variable "s3_source_version" { - description = "String version of the S3 bucket module." - type = string -} - -variable "s3_name_prefix" { - description = "String prefix of the unique bucket name." - type = string -} - -variable "s3_versioning" { - description = "Boolean toggle of bucket versioning." - type = bool -} diff --git a/sample/instance/.terraform.lock.hcl b/sample/instance/.terraform.lock.hcl deleted file mode 100644 index 9fadfee9..00000000 --- a/sample/instance/.terraform.lock.hcl +++ /dev/null @@ -1,20 +0,0 @@ -# This file is maintained automatically by "tofu init". -# Manual edits may be lost in future updates. - -provider "registry.opentofu.org/hashicorp/aws" { - version = "5.62.0" - constraints = "5.62.0" - hashes = [ - "h1:DzXMlmL2hRPfACAbN1PUhnLDGY9Kl0vbrt05qSfGsxA=", - "zh:2cb519ce7f3cbcb88b2e93dd3b3424ad85a347fc0e7429661945da5df8a20fda", - "zh:2fc7ed911cceaa1652d1f4090eaa91e8463aba86873910bccf16601260379886", - "zh:395b32d157adeb92571a0efd230c73bbee01744782a50356fb16e8946bd63ffb", - "zh:43303d36af40a568cd40bd54dc9e8430e18c4a4d78682b459dca8c755c717a0c", - "zh:65b2c6e955deeeffb9d9cd4ed97e8c532a453ba690d0e3d88c740f9036bccc4d", - "zh:a9d09dc9daf33b16894ed7d192ceb4c402261da58cded503a3ffa1dd2373e3fb", - "zh:c5e9f8bc4397c2075b6dc62458be51b93322517affd760c161633d56b0b9a334", - "zh:db0921c091402179edd549f8aa4f12dce18aab09d4302e800c67d6ec6ff88a86", - "zh:e7d13f9c0891446d03c29e4fcd60de633f71bbf1bc9786fca47a0ee356ac979a", - "zh:f128a725dbdbd31b9ed8ea478782152339c9fab4d635485763c8da2a477fe3f6", - ] -} diff --git a/sample/instance/README.md b/sample/instance/README.md deleted file mode 100644 index 36216c09..00000000 --- a/sample/instance/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# sample_instance - -> Deploy a sample instance to AWS with this template stack. - -## Structure - -- [env/](env): Contains environment-specific configuration files. -- [main.tf](main.tf): Contains the configuration of resources to be provisioned (e.g., EC2 instance). - - Best practice is to keep this file as small as possible (e.g., compute.tf). - - Break out the configuration into separate files. -- [providers.tf](providers.tf): Contains stack requirements, such as providers (e.g., AWS). -- [variables.tf](variables.tf): Contains the definitions declared for each variable (e.g., region). - -## Inputs - -- PREFIX -- aws_region -- instance_type - -## Outputs - -- sample_instance_id - -## Command - -```sh -export TF_VAR_PREFIX=sample -tofu init -upgrade -reconfigure -tofu workspace select dev -tofu apply -var-file=env/dev.tfvars -``` diff --git a/sample/instance/env/dev.tfvars b/sample/instance/env/dev.tfvars deleted file mode 100644 index 38b83733..00000000 --- a/sample/instance/env/dev.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -aws_region = "us-east-1" -instance_type = "t2.nano" diff --git a/sample/instance/env/qa.tfvars b/sample/instance/env/qa.tfvars deleted file mode 100644 index 12833d3d..00000000 --- a/sample/instance/env/qa.tfvars +++ /dev/null @@ -1,2 +0,0 @@ -aws_region = "us-east-1" -instance_type = "t3.nano" diff --git a/sample/instance/main.tf b/sample/instance/main.tf deleted file mode 100644 index 4057c0d0..00000000 --- a/sample/instance/main.tf +++ /dev/null @@ -1,28 +0,0 @@ -# Get the latest Ubuntu 22.04 AMI https://cloud-images.ubuntu.com/locator/ec2. -data "aws_ami" "ubuntu" { - most_recent = true - owners = ["099720109477"] # Canonical. - - filter { - name = "name" - values = ["ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*"] - } -} - -# Create a sample EC2 instance. -resource "aws_instance" "sample" { - ami = data.aws_ami.ubuntu.id - instance_type = var.instance_type - vpc_security_group_ids = ["sg-0f910049cea34d9ce"] - subnet_id = "subnet-01ef465df13ebc0dc" - - tags = { - Name = join("-", [var.PREFIX, "instance"]) - } -} - -# Output the ID of the sample EC2 instance. -output "sample_instance_id" { - description = "ID of the sample EC2 instance." - value = aws_instance.sample.id -} diff --git a/sample/instance/providers.tf b/sample/instance/providers.tf deleted file mode 100644 index 89fd2f25..00000000 --- a/sample/instance/providers.tf +++ /dev/null @@ -1,42 +0,0 @@ -terraform { - required_version = "~> 1.8.0" - - backend "s3" { - bucket = "tmp-workflow-tfstates" - key = "sample_instance.tfstate" - region = "us-east-1" - } - - required_providers { - aws = { - source = "hashicorp/aws" - version = "5.62.0" - } - } -} - -locals { - tags = { - default = { - Environment = "Undefined" - } - dev = { - Environment = "Development" - } - qa = { - Environment = "Quality Assurance" - } - } -} - -provider "aws" { - region = var.aws_region - - default_tags { - tags = merge({ - Stack = basename(abspath(path.root)) - Terraform = terraform.workspace - }, local.tags[terraform.workspace] - ) - } -} diff --git a/sample/instance/variables.tf b/sample/instance/variables.tf deleted file mode 100644 index 0dc018fc..00000000 --- a/sample/instance/variables.tf +++ /dev/null @@ -1,14 +0,0 @@ -variable "PREFIX" { - description = "Prefix for resource identifiers." - type = string -} - -variable "aws_region" { - description = "https://aws.amazon.com/about-aws/global-infrastructure." - type = string -} - -variable "instance_type" { - description = "https://aws.amazon.com/ec2/instance-types." - type = string -} diff --git a/sample/modules/s3_bucket/main.tf b/sample/modules/s3_bucket/main.tf deleted file mode 100644 index c59b29d2..00000000 --- a/sample/modules/s3_bucket/main.tf +++ /dev/null @@ -1,22 +0,0 @@ -# Create an S3 bucket with versioning. -module "s3_bucket" { - source = "terraform-aws-modules/s3-bucket/aws" - version = var.source_version - - bucket_prefix = var.name_prefix - acl = "private" - - control_object_ownership = true - force_destroy = true - object_ownership = "ObjectWriter" - - versioning = { - enabled = var.versioning - } -} - -# Output the ID of the S3 bucket. -output "id" { - description = "String ID of the S3 bucket." - value = module.s3_bucket.s3_bucket_id -} diff --git a/sample/modules/s3_bucket/variables.tf b/sample/modules/s3_bucket/variables.tf deleted file mode 100644 index 8b2274be..00000000 --- a/sample/modules/s3_bucket/variables.tf +++ /dev/null @@ -1,14 +0,0 @@ -variable "source_version" { - description = "String version of the S3 bucket module." - type = string -} - -variable "name_prefix" { - description = "String prefix of the unique bucket name." - type = string -} - -variable "versioning" { - description = "Boolean toggle of bucket versioning." - type = bool -}