mirror of
https://github.com/terraform-aws-modules/terraform-aws-rds-proxy.git
synced 2025-12-17 16:31:11 +00:00
Compare commits
No commits in common. "master" and "v4.0.0" have entirely different histories.
26 changed files with 63 additions and 351 deletions
2
.github/workflows/pr-title.yml
vendored
2
.github/workflows/pr-title.yml
vendored
|
|
@ -14,7 +14,7 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
# Please look up the latest version from
|
# Please look up the latest version from
|
||||||
# https://github.com/amannn/action-semantic-pull-request/releases
|
# https://github.com/amannn/action-semantic-pull-request/releases
|
||||||
- uses: amannn/action-semantic-pull-request@v6.1.1
|
- uses: amannn/action-semantic-pull-request@v5.5.3
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
|
|
|
||||||
111
.github/workflows/pre-commit.yml
vendored
111
.github/workflows/pre-commit.yml
vendored
|
|
@ -7,8 +7,8 @@ on:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
env:
|
env:
|
||||||
TERRAFORM_DOCS_VERSION: v0.20.0
|
TERRAFORM_DOCS_VERSION: v0.19.0
|
||||||
TFLINT_VERSION: v0.59.1
|
TFLINT_VERSION: v0.53.0
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
collectInputs:
|
collectInputs:
|
||||||
|
|
@ -18,11 +18,11 @@ jobs:
|
||||||
directories: ${{ steps.dirs.outputs.directories }}
|
directories: ${{ steps.dirs.outputs.directories }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Get root directories
|
- name: Get root directories
|
||||||
id: dirs
|
id: dirs
|
||||||
uses: clowdhaus/terraform-composite-actions/directories@v1.14.0
|
uses: clowdhaus/terraform-composite-actions/directories@v1.9.0
|
||||||
|
|
||||||
preCommitMinVersions:
|
preCommitMinVersions:
|
||||||
name: Min TF pre-commit
|
name: Min TF pre-commit
|
||||||
|
|
@ -32,49 +32,27 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
directory: ${{ fromJson(needs.collectInputs.outputs.directories) }}
|
directory: ${{ fromJson(needs.collectInputs.outputs.directories) }}
|
||||||
steps:
|
steps:
|
||||||
- name: Install rmz
|
|
||||||
uses: jaxxstorm/action-install-gh-release@v2.1.0
|
|
||||||
with:
|
|
||||||
repo: SUPERCILEX/fuc
|
|
||||||
asset-name: x86_64-unknown-linux-gnu-rmz
|
|
||||||
rename-to: rmz
|
|
||||||
chmod: 0755
|
|
||||||
extension-matching: disable
|
|
||||||
|
|
||||||
# https://github.com/orgs/community/discussions/25678#discussioncomment-5242449
|
# https://github.com/orgs/community/discussions/25678#discussioncomment-5242449
|
||||||
- name: Delete unnecessary files
|
- name: Delete huge unnecessary tools folder
|
||||||
run: |
|
run: |
|
||||||
formatByteCount() { echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000'); }
|
rm -rf /opt/hostedtoolcache/CodeQL
|
||||||
getAvailableSpace() { echo $(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}'); }
|
rm -rf /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk
|
||||||
|
rm -rf /opt/hostedtoolcache/Ruby
|
||||||
BEFORE=$(getAvailableSpace)
|
rm -rf /opt/hostedtoolcache/go
|
||||||
|
|
||||||
ln -s /opt/hostedtoolcache/SUPERCILEX/x86_64-unknown-linux-gnu-rmz/latest/linux-x64/rmz /usr/local/bin/rmz
|
|
||||||
rmz -f /opt/hostedtoolcache/CodeQL &
|
|
||||||
rmz -f /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk &
|
|
||||||
rmz -f /opt/hostedtoolcache/PyPy &
|
|
||||||
rmz -f /opt/hostedtoolcache/Ruby &
|
|
||||||
rmz -f /opt/hostedtoolcache/go &
|
|
||||||
|
|
||||||
wait
|
|
||||||
|
|
||||||
AFTER=$(getAvailableSpace)
|
|
||||||
SAVED=$((AFTER-BEFORE))
|
|
||||||
echo "=> Saved $(formatByteCount $SAVED)"
|
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Terraform min/max versions
|
- name: Terraform min/max versions
|
||||||
id: minMax
|
id: minMax
|
||||||
uses: clowdhaus/terraform-min-max@v2.1.0
|
uses: clowdhaus/terraform-min-max@v1.3.1
|
||||||
with:
|
with:
|
||||||
directory: ${{ matrix.directory }}
|
directory: ${{ matrix.directory }}
|
||||||
|
|
||||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
|
- name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
|
||||||
# Run only validate pre-commit check on min version supported
|
# Run only validate pre-commit check on min version supported
|
||||||
if: ${{ matrix.directory != '.' }}
|
if: ${{ matrix.directory != '.' }}
|
||||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.14.0
|
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.11.1
|
||||||
with:
|
with:
|
||||||
terraform-version: ${{ steps.minMax.outputs.minVersion }}
|
terraform-version: ${{ steps.minMax.outputs.minVersion }}
|
||||||
tflint-version: ${{ env.TFLINT_VERSION }}
|
tflint-version: ${{ env.TFLINT_VERSION }}
|
||||||
|
|
@ -83,7 +61,7 @@ jobs:
|
||||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
|
- name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
|
||||||
# Run only validate pre-commit check on min version supported
|
# Run only validate pre-commit check on min version supported
|
||||||
if: ${{ matrix.directory == '.' }}
|
if: ${{ matrix.directory == '.' }}
|
||||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.14.0
|
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.11.1
|
||||||
with:
|
with:
|
||||||
terraform-version: ${{ steps.minMax.outputs.minVersion }}
|
terraform-version: ${{ steps.minMax.outputs.minVersion }}
|
||||||
tflint-version: ${{ env.TFLINT_VERSION }}
|
tflint-version: ${{ env.TFLINT_VERSION }}
|
||||||
|
|
@ -94,73 +72,26 @@ jobs:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: collectInputs
|
needs: collectInputs
|
||||||
steps:
|
steps:
|
||||||
- name: Install rmz
|
|
||||||
uses: jaxxstorm/action-install-gh-release@v2.1.0
|
|
||||||
with:
|
|
||||||
repo: SUPERCILEX/fuc
|
|
||||||
asset-name: x86_64-unknown-linux-gnu-rmz
|
|
||||||
rename-to: rmz
|
|
||||||
chmod: 0755
|
|
||||||
extension-matching: disable
|
|
||||||
|
|
||||||
# https://github.com/orgs/community/discussions/25678#discussioncomment-5242449
|
# https://github.com/orgs/community/discussions/25678#discussioncomment-5242449
|
||||||
- name: Delete unnecessary files
|
- name: Delete huge unnecessary tools folder
|
||||||
run: |
|
run: |
|
||||||
formatByteCount() { echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000'); }
|
rm -rf /opt/hostedtoolcache/CodeQL
|
||||||
getAvailableSpace() { echo $(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}'); }
|
rm -rf /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk
|
||||||
|
rm -rf /opt/hostedtoolcache/Ruby
|
||||||
BEFORE=$(getAvailableSpace)
|
rm -rf /opt/hostedtoolcache/go
|
||||||
|
|
||||||
ln -s /opt/hostedtoolcache/SUPERCILEX/x86_64-unknown-linux-gnu-rmz/latest/linux-x64/rmz /usr/local/bin/rmz
|
|
||||||
rmz -f /opt/hostedtoolcache/CodeQL &
|
|
||||||
rmz -f /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk &
|
|
||||||
rmz -f /opt/hostedtoolcache/PyPy &
|
|
||||||
rmz -f /opt/hostedtoolcache/Ruby &
|
|
||||||
rmz -f /opt/hostedtoolcache/go &
|
|
||||||
sudo rmz -f /usr/local/lib/android &
|
|
||||||
|
|
||||||
if [[ ${{ github.repository }} == terraform-aws-modules/terraform-aws-security-group ]]; then
|
|
||||||
sudo rmz -f /usr/share/dotnet &
|
|
||||||
sudo rmz -f /usr/local/.ghcup &
|
|
||||||
sudo apt-get -qq remove -y 'azure-.*'
|
|
||||||
sudo apt-get -qq remove -y 'cpp-.*'
|
|
||||||
sudo apt-get -qq remove -y 'dotnet-runtime-.*'
|
|
||||||
sudo apt-get -qq remove -y 'google-.*'
|
|
||||||
sudo apt-get -qq remove -y 'libclang-.*'
|
|
||||||
sudo apt-get -qq remove -y 'libllvm.*'
|
|
||||||
sudo apt-get -qq remove -y 'llvm-.*'
|
|
||||||
sudo apt-get -qq remove -y 'mysql-.*'
|
|
||||||
sudo apt-get -qq remove -y 'postgresql-.*'
|
|
||||||
sudo apt-get -qq remove -y 'php.*'
|
|
||||||
sudo apt-get -qq remove -y 'temurin-.*'
|
|
||||||
sudo apt-get -qq remove -y kubectl firefox mono-devel
|
|
||||||
sudo apt-get -qq autoremove -y
|
|
||||||
sudo apt-get -qq clean
|
|
||||||
fi
|
|
||||||
|
|
||||||
wait
|
|
||||||
|
|
||||||
AFTER=$(getAvailableSpace)
|
|
||||||
SAVED=$((AFTER-BEFORE))
|
|
||||||
echo "=> Saved $(formatByteCount $SAVED)"
|
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.ref }}
|
ref: ${{ github.event.pull_request.head.ref }}
|
||||||
repository: ${{github.event.pull_request.head.repo.full_name}}
|
repository: ${{github.event.pull_request.head.repo.full_name}}
|
||||||
|
|
||||||
- name: Terraform min/max versions
|
- name: Terraform min/max versions
|
||||||
id: minMax
|
id: minMax
|
||||||
uses: clowdhaus/terraform-min-max@v2.1.0
|
uses: clowdhaus/terraform-min-max@v1.3.1
|
||||||
|
|
||||||
- name: Hide template dir
|
|
||||||
# Special to this repo, we don't want to check this dir
|
|
||||||
if: ${{ github.repository == 'terraform-aws-modules/terraform-aws-security-group' }}
|
|
||||||
run: rm -rf modules/_templates
|
|
||||||
|
|
||||||
- name: Pre-commit Terraform ${{ steps.minMax.outputs.maxVersion }}
|
- name: Pre-commit Terraform ${{ steps.minMax.outputs.maxVersion }}
|
||||||
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.14.0
|
uses: clowdhaus/terraform-composite-actions/pre-commit@v1.11.1
|
||||||
with:
|
with:
|
||||||
terraform-version: ${{ steps.minMax.outputs.maxVersion }}
|
terraform-version: ${{ steps.minMax.outputs.maxVersion }}
|
||||||
tflint-version: ${{ env.TFLINT_VERSION }}
|
tflint-version: ${{ env.TFLINT_VERSION }}
|
||||||
|
|
|
||||||
22
.github/workflows/release.yml
vendored
22
.github/workflows/release.yml
vendored
|
|
@ -20,26 +20,18 @@ jobs:
|
||||||
if: github.repository_owner == 'terraform-aws-modules'
|
if: github.repository_owner == 'terraform-aws-modules'
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Set correct Node.js version
|
|
||||||
uses: actions/setup-node@v6
|
|
||||||
with:
|
|
||||||
node-version: 24
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
npm install \
|
|
||||||
@semantic-release/changelog@6.0.3 \
|
|
||||||
@semantic-release/git@10.0.1 \
|
|
||||||
conventional-changelog-conventionalcommits@9.1.0
|
|
||||||
|
|
||||||
- name: Release
|
- name: Release
|
||||||
uses: cycjimmy/semantic-release-action@v5
|
uses: cycjimmy/semantic-release-action@v4
|
||||||
with:
|
with:
|
||||||
semantic_version: 25.0.0
|
semantic_version: 23.0.2
|
||||||
|
extra_plugins: |
|
||||||
|
@semantic-release/changelog@6.0.3
|
||||||
|
@semantic-release/git@10.0.1
|
||||||
|
conventional-changelog-conventionalcommits@7.0.2
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE_TOKEN }}
|
||||||
|
|
|
||||||
2
.github/workflows/stale-actions.yaml
vendored
2
.github/workflows/stale-actions.yaml
vendored
|
|
@ -7,7 +7,7 @@ jobs:
|
||||||
stale:
|
stale:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v10
|
- uses: actions/stale@v9
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
# Staling issues and PR's
|
# Staling issues and PR's
|
||||||
|
|
|
||||||
24
.gitignore
vendored
24
.gitignore
vendored
|
|
@ -1,13 +1,13 @@
|
||||||
# Local .terraform directories
|
# Local .terraform directories
|
||||||
**/.terraform/*
|
**/.terraform/*
|
||||||
|
|
||||||
# Terraform lockfile
|
|
||||||
.terraform.lock.hcl
|
|
||||||
|
|
||||||
# .tfstate files
|
# .tfstate files
|
||||||
*.tfstate
|
*.tfstate
|
||||||
*.tfstate.*
|
*.tfstate.*
|
||||||
|
|
||||||
|
# terraform lockfile
|
||||||
|
.terraform.lock.hcl
|
||||||
|
|
||||||
# Crash log files
|
# Crash log files
|
||||||
crash.log
|
crash.log
|
||||||
|
|
||||||
|
|
@ -15,6 +15,7 @@ crash.log
|
||||||
# password, private keys, and other secrets. These should not be part of version
|
# password, private keys, and other secrets. These should not be part of version
|
||||||
# control as they are data points which are potentially sensitive and subject
|
# control as they are data points which are potentially sensitive and subject
|
||||||
# to change depending on the environment.
|
# to change depending on the environment.
|
||||||
|
#
|
||||||
*.tfvars
|
*.tfvars
|
||||||
|
|
||||||
# Ignore override files as they are usually used to override resources locally and so
|
# Ignore override files as they are usually used to override resources locally and so
|
||||||
|
|
@ -24,16 +25,13 @@ override.tf.json
|
||||||
*_override.tf
|
*_override.tf
|
||||||
*_override.tf.json
|
*_override.tf.json
|
||||||
|
|
||||||
|
# Include override files you do wish to add to version control using negated pattern
|
||||||
|
#
|
||||||
|
# !example_override.tf
|
||||||
|
|
||||||
|
# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
|
||||||
|
# example: *tfplan*
|
||||||
|
|
||||||
# Ignore CLI configuration files
|
# Ignore CLI configuration files
|
||||||
.terraformrc
|
.terraformrc
|
||||||
terraform.rc
|
terraform.rc
|
||||||
|
|
||||||
# Lambda build artifacts
|
|
||||||
builds/
|
|
||||||
__pycache__/
|
|
||||||
*.zip
|
|
||||||
.tox
|
|
||||||
|
|
||||||
# Local editors/macos files
|
|
||||||
.DS_Store
|
|
||||||
.idea
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/antonbabenko/pre-commit-terraform
|
- repo: https://github.com/antonbabenko/pre-commit-terraform
|
||||||
rev: v1.103.0
|
rev: v1.100.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: terraform_fmt
|
- id: terraform_fmt
|
||||||
- id: terraform_wrapper_module_for_each
|
|
||||||
- id: terraform_docs
|
- id: terraform_docs
|
||||||
args:
|
args:
|
||||||
- '--args=--lockfile=false'
|
- '--args=--lockfile=false'
|
||||||
|
|
|
||||||
20
CHANGELOG.md
20
CHANGELOG.md
|
|
@ -2,26 +2,6 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
## [4.2.1](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/compare/v4.2.0...v4.2.1) (2025-10-21)
|
|
||||||
|
|
||||||
### Bug Fixes
|
|
||||||
|
|
||||||
* Update CI workflow versions to latest ([#40](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/issues/40)) ([5deff22](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/commit/5deff22cf4c471ce824c016687c3b933cd8b783c))
|
|
||||||
|
|
||||||
## [4.2.0](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/compare/v4.1.0...v4.2.0) (2025-10-14)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* Support `default_auth_scheme` ([#39](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/issues/39)) ([c2073a0](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/commit/c2073a031c947270dac3f17c7f76e2996cd1b5b1))
|
|
||||||
|
|
||||||
## [4.1.0](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/compare/v4.0.0...v4.1.0) (2025-10-01)
|
|
||||||
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
* Add Terragrunt wrappers ([#38](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/issues/38)) ([33b43c7](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/commit/33b43c72abdad0b01655238d844e56dabca5e6d4))
|
|
||||||
|
|
||||||
## [4.0.0](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/compare/v3.2.1...v4.0.0) (2025-09-16)
|
## [4.0.0](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/compare/v3.2.1...v4.0.0) (2025-09-16)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,13 +63,13 @@ Examples codified under the [`examples`](https://github.com/terraform-aws-module
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.15 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.0 |
|
||||||
|
|
||||||
## Providers
|
## Providers
|
||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.15 |
|
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.0 |
|
||||||
|
|
||||||
## Modules
|
## Modules
|
||||||
|
|
||||||
|
|
@ -105,7 +105,6 @@ No modules.
|
||||||
| <a name="input_db_cluster_identifier"></a> [db\_cluster\_identifier](#input\_db\_cluster\_identifier) | DB cluster identifier | `string` | `""` | no |
|
| <a name="input_db_cluster_identifier"></a> [db\_cluster\_identifier](#input\_db\_cluster\_identifier) | DB cluster identifier | `string` | `""` | no |
|
||||||
| <a name="input_db_instance_identifier"></a> [db\_instance\_identifier](#input\_db\_instance\_identifier) | DB instance identifier | `string` | `""` | no |
|
| <a name="input_db_instance_identifier"></a> [db\_instance\_identifier](#input\_db\_instance\_identifier) | DB instance identifier | `string` | `""` | no |
|
||||||
| <a name="input_debug_logging"></a> [debug\_logging](#input\_debug\_logging) | Whether the proxy includes detailed information about SQL statements in its logs | `bool` | `false` | no |
|
| <a name="input_debug_logging"></a> [debug\_logging](#input\_debug\_logging) | Whether the proxy includes detailed information about SQL statements in its logs | `bool` | `false` | no |
|
||||||
| <a name="input_default_auth_scheme"></a> [default\_auth\_scheme](#input\_default\_auth\_scheme) | Default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database. Valid values are NONE and IAM\_AUTH. Defaults to NONE | `string` | `null` | no |
|
|
||||||
| <a name="input_endpoints"></a> [endpoints](#input\_endpoints) | Map of DB proxy endpoints to create and their attributes | <pre>map(object({<br/> name = optional(string)<br/> vpc_subnet_ids = list(string)<br/> vpc_security_group_ids = optional(list(string))<br/> target_role = optional(string)<br/> tags = optional(map(string), {})<br/> }))</pre> | `{}` | no |
|
| <a name="input_endpoints"></a> [endpoints](#input\_endpoints) | Map of DB proxy endpoints to create and their attributes | <pre>map(object({<br/> name = optional(string)<br/> vpc_subnet_ids = list(string)<br/> vpc_security_group_ids = optional(list(string))<br/> target_role = optional(string)<br/> tags = optional(map(string), {})<br/> }))</pre> | `{}` | no |
|
||||||
| <a name="input_engine_family"></a> [engine\_family](#input\_engine\_family) | The kind of database engine that the proxy will connect to. Valid values are `MYSQL` or `POSTGRESQL` | `string` | `""` | no |
|
| <a name="input_engine_family"></a> [engine\_family](#input\_engine\_family) | The kind of database engine that the proxy will connect to. Valid values are `MYSQL` or `POSTGRESQL` | `string` | `""` | no |
|
||||||
| <a name="input_iam_policy_name"></a> [iam\_policy\_name](#input\_iam\_policy\_name) | The name of the role policy. If omitted, Terraform will assign a random, unique name | `string` | `""` | no |
|
| <a name="input_iam_policy_name"></a> [iam\_policy\_name](#input\_iam\_policy\_name) | The name of the role policy. If omitted, Terraform will assign a random, unique name | `string` | `""` | no |
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
# Examples
|
# AWS RDS Proxy Terraform Examples
|
||||||
|
|
||||||
Please note - the examples provided serve two primary means:
|
- [IAM auth. w/ MySQL Aurora cluster](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/tree/master/examples/mysql-iam-cluster)
|
||||||
|
- [IAM auth. w/ MySQL RDS instance](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/tree/master/examples/mysql-iam-instance)
|
||||||
1. Show users working examples of the various ways in which the module can be configured and features supported
|
- [IAM auth. w/ PostgreSQL Aurora cluster](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/tree/master/examples/postgresql-iam-cluster)
|
||||||
2. A means of testing/validating module changes
|
- [IAM auth. w/ PostgreSQL RDS instance](https://github.com/terraform-aws-modules/terraform-aws-rds-proxy/tree/master/examples/postgresql-iam-instance)
|
||||||
|
|
||||||
Please do not mistake the examples provided as "best practices". It is up to users to consult the AWS service documentation for best practices, usage recommendations, etc.
|
|
||||||
|
|
|
||||||
|
|
@ -31,13 +31,13 @@ An EC2 instance configuration has been provided for use in validating the exampl
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.15 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.0 |
|
||||||
|
|
||||||
## Providers
|
## Providers
|
||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.15 |
|
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.0 |
|
||||||
|
|
||||||
## Modules
|
## Modules
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
version = ">= 6.15"
|
version = ">= 6.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,14 +31,14 @@ An EC2 instance configuration has been provided for use in validating the exampl
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.15 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.0 |
|
||||||
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 2.0 |
|
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 2.0 |
|
||||||
|
|
||||||
## Providers
|
## Providers
|
||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.15 |
|
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.0 |
|
||||||
| <a name="provider_random"></a> [random](#provider\_random) | >= 2.0 |
|
| <a name="provider_random"></a> [random](#provider\_random) | >= 2.0 |
|
||||||
|
|
||||||
## Modules
|
## Modules
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
version = ">= 6.15"
|
version = ">= 6.0"
|
||||||
}
|
}
|
||||||
random = {
|
random = {
|
||||||
source = "hashicorp/random"
|
source = "hashicorp/random"
|
||||||
|
|
|
||||||
|
|
@ -31,13 +31,13 @@ An EC2 instance configuration has been provided for use in validating the exampl
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.15 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.0 |
|
||||||
|
|
||||||
## Providers
|
## Providers
|
||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.15 |
|
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.0 |
|
||||||
|
|
||||||
## Modules
|
## Modules
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ module "rds" {
|
||||||
|
|
||||||
name = local.name
|
name = local.name
|
||||||
engine = "aurora-postgresql"
|
engine = "aurora-postgresql"
|
||||||
engine_version = "17.5"
|
engine_version = "14.7"
|
||||||
master_username = "root"
|
master_username = "root"
|
||||||
|
|
||||||
# When using RDS Proxy w/ IAM auth - Database must be username/password auth, not IAM
|
# When using RDS Proxy w/ IAM auth - Database must be username/password auth, not IAM
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
version = ">= 6.15"
|
version = ">= 6.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,14 +31,14 @@ An EC2 instance configuration has been provided for use in validating the exampl
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.5.7 |
|
||||||
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.15 |
|
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 6.0 |
|
||||||
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 2.0 |
|
| <a name="requirement_random"></a> [random](#requirement\_random) | >= 2.0 |
|
||||||
|
|
||||||
## Providers
|
## Providers
|
||||||
|
|
||||||
| Name | Version |
|
| Name | Version |
|
||||||
|------|---------|
|
|------|---------|
|
||||||
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.15 |
|
| <a name="provider_aws"></a> [aws](#provider\_aws) | >= 6.0 |
|
||||||
| <a name="provider_random"></a> [random](#provider\_random) | >= 2.0 |
|
| <a name="provider_random"></a> [random](#provider\_random) | >= 2.0 |
|
||||||
|
|
||||||
## Modules
|
## Modules
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
version = ">= 6.15"
|
version = ">= 6.0"
|
||||||
}
|
}
|
||||||
random = {
|
random = {
|
||||||
source = "hashicorp/random"
|
source = "hashicorp/random"
|
||||||
|
|
|
||||||
1
main.tf
1
main.tf
|
|
@ -21,7 +21,6 @@ resource "aws_db_proxy" "this" {
|
||||||
}
|
}
|
||||||
|
|
||||||
debug_logging = var.debug_logging
|
debug_logging = var.debug_logging
|
||||||
default_auth_scheme = var.default_auth_scheme
|
|
||||||
engine_family = var.engine_family
|
engine_family = var.engine_family
|
||||||
idle_client_timeout = var.idle_client_timeout
|
idle_client_timeout = var.idle_client_timeout
|
||||||
name = var.name
|
name = var.name
|
||||||
|
|
|
||||||
|
|
@ -49,12 +49,6 @@ variable "debug_logging" {
|
||||||
default = false
|
default = false
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "default_auth_scheme" {
|
|
||||||
description = "Default authentication scheme that the proxy uses for client connections to the proxy and connections from the proxy to the underlying database. Valid values are NONE and IAM_AUTH. Defaults to NONE"
|
|
||||||
type = string
|
|
||||||
default = null
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "engine_family" {
|
variable "engine_family" {
|
||||||
description = "The kind of database engine that the proxy will connect to. Valid values are `MYSQL` or `POSTGRESQL`"
|
description = "The kind of database engine that the proxy will connect to. Valid values are `MYSQL` or `POSTGRESQL`"
|
||||||
type = string
|
type = string
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ terraform {
|
||||||
required_providers {
|
required_providers {
|
||||||
aws = {
|
aws = {
|
||||||
source = "hashicorp/aws"
|
source = "hashicorp/aws"
|
||||||
version = ">= 6.15"
|
version = ">= 6.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
||||||
# Wrapper for the root module
|
|
||||||
|
|
||||||
The configuration in this directory contains an implementation of a single module wrapper pattern, which allows managing several copies of a module in places where using the native Terraform 0.13+ `for_each` feature is not feasible (e.g., with Terragrunt).
|
|
||||||
|
|
||||||
You may want to use a single Terragrunt configuration file to manage multiple resources without duplicating `terragrunt.hcl` files for each copy of the same module.
|
|
||||||
|
|
||||||
This wrapper does not implement any extra functionality.
|
|
||||||
|
|
||||||
## Usage with Terragrunt
|
|
||||||
|
|
||||||
`terragrunt.hcl`:
|
|
||||||
|
|
||||||
```hcl
|
|
||||||
terraform {
|
|
||||||
source = "tfr:///terraform-aws-modules/rds-proxy/aws//wrappers"
|
|
||||||
# Alternative source:
|
|
||||||
# source = "git::git@github.com:terraform-aws-modules/terraform-aws-rds-proxy.git//wrappers?ref=master"
|
|
||||||
}
|
|
||||||
|
|
||||||
inputs = {
|
|
||||||
defaults = { # Default values
|
|
||||||
create = true
|
|
||||||
tags = {
|
|
||||||
Terraform = "true"
|
|
||||||
Environment = "dev"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
items = {
|
|
||||||
my-item = {
|
|
||||||
# omitted... can be any argument supported by the module
|
|
||||||
}
|
|
||||||
my-second-item = {
|
|
||||||
# omitted... can be any argument supported by the module
|
|
||||||
}
|
|
||||||
# omitted...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage with Terraform
|
|
||||||
|
|
||||||
```hcl
|
|
||||||
module "wrapper" {
|
|
||||||
source = "terraform-aws-modules/rds-proxy/aws//wrappers"
|
|
||||||
|
|
||||||
defaults = { # Default values
|
|
||||||
create = true
|
|
||||||
tags = {
|
|
||||||
Terraform = "true"
|
|
||||||
Environment = "dev"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
items = {
|
|
||||||
my-item = {
|
|
||||||
# omitted... can be any argument supported by the module
|
|
||||||
}
|
|
||||||
my-second-item = {
|
|
||||||
# omitted... can be any argument supported by the module
|
|
||||||
}
|
|
||||||
# omitted...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Example: Manage multiple S3 buckets in one Terragrunt layer
|
|
||||||
|
|
||||||
`eu-west-1/s3-buckets/terragrunt.hcl`:
|
|
||||||
|
|
||||||
```hcl
|
|
||||||
terraform {
|
|
||||||
source = "tfr:///terraform-aws-modules/s3-bucket/aws//wrappers"
|
|
||||||
# Alternative source:
|
|
||||||
# source = "git::git@github.com:terraform-aws-modules/terraform-aws-s3-bucket.git//wrappers?ref=master"
|
|
||||||
}
|
|
||||||
|
|
||||||
inputs = {
|
|
||||||
defaults = {
|
|
||||||
force_destroy = true
|
|
||||||
|
|
||||||
attach_elb_log_delivery_policy = true
|
|
||||||
attach_lb_log_delivery_policy = true
|
|
||||||
attach_deny_insecure_transport_policy = true
|
|
||||||
attach_require_latest_tls_policy = true
|
|
||||||
}
|
|
||||||
|
|
||||||
items = {
|
|
||||||
bucket1 = {
|
|
||||||
bucket = "my-random-bucket-1"
|
|
||||||
}
|
|
||||||
bucket2 = {
|
|
||||||
bucket = "my-random-bucket-2"
|
|
||||||
tags = {
|
|
||||||
Secure = "probably"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
||||||
module "wrapper" {
|
|
||||||
source = "../"
|
|
||||||
|
|
||||||
for_each = var.items
|
|
||||||
|
|
||||||
auth = try(each.value.auth, var.defaults.auth, {
|
|
||||||
default = {
|
|
||||||
auth_scheme = "SECRETS"
|
|
||||||
}
|
|
||||||
})
|
|
||||||
connection_borrow_timeout = try(each.value.connection_borrow_timeout, var.defaults.connection_borrow_timeout, null)
|
|
||||||
create = try(each.value.create, var.defaults.create, true)
|
|
||||||
create_iam_policy = try(each.value.create_iam_policy, var.defaults.create_iam_policy, true)
|
|
||||||
create_iam_role = try(each.value.create_iam_role, var.defaults.create_iam_role, true)
|
|
||||||
db_cluster_identifier = try(each.value.db_cluster_identifier, var.defaults.db_cluster_identifier, "")
|
|
||||||
db_instance_identifier = try(each.value.db_instance_identifier, var.defaults.db_instance_identifier, "")
|
|
||||||
debug_logging = try(each.value.debug_logging, var.defaults.debug_logging, false)
|
|
||||||
default_auth_scheme = try(each.value.default_auth_scheme, var.defaults.default_auth_scheme, null)
|
|
||||||
endpoints = try(each.value.endpoints, var.defaults.endpoints, {})
|
|
||||||
engine_family = try(each.value.engine_family, var.defaults.engine_family, "")
|
|
||||||
iam_policy_name = try(each.value.iam_policy_name, var.defaults.iam_policy_name, "")
|
|
||||||
iam_role_description = try(each.value.iam_role_description, var.defaults.iam_role_description, "")
|
|
||||||
iam_role_force_detach_policies = try(each.value.iam_role_force_detach_policies, var.defaults.iam_role_force_detach_policies, true)
|
|
||||||
iam_role_max_session_duration = try(each.value.iam_role_max_session_duration, var.defaults.iam_role_max_session_duration, 43200)
|
|
||||||
iam_role_name = try(each.value.iam_role_name, var.defaults.iam_role_name, "")
|
|
||||||
iam_role_path = try(each.value.iam_role_path, var.defaults.iam_role_path, null)
|
|
||||||
iam_role_permissions_boundary = try(each.value.iam_role_permissions_boundary, var.defaults.iam_role_permissions_boundary, null)
|
|
||||||
iam_role_tags = try(each.value.iam_role_tags, var.defaults.iam_role_tags, {})
|
|
||||||
idle_client_timeout = try(each.value.idle_client_timeout, var.defaults.idle_client_timeout, 1800)
|
|
||||||
init_query = try(each.value.init_query, var.defaults.init_query, "")
|
|
||||||
kms_key_arns = try(each.value.kms_key_arns, var.defaults.kms_key_arns, [])
|
|
||||||
log_group_class = try(each.value.log_group_class, var.defaults.log_group_class, null)
|
|
||||||
log_group_kms_key_id = try(each.value.log_group_kms_key_id, var.defaults.log_group_kms_key_id, null)
|
|
||||||
log_group_retention_in_days = try(each.value.log_group_retention_in_days, var.defaults.log_group_retention_in_days, 30)
|
|
||||||
log_group_tags = try(each.value.log_group_tags, var.defaults.log_group_tags, {})
|
|
||||||
manage_log_group = try(each.value.manage_log_group, var.defaults.manage_log_group, true)
|
|
||||||
max_connections_percent = try(each.value.max_connections_percent, var.defaults.max_connections_percent, 90)
|
|
||||||
max_idle_connections_percent = try(each.value.max_idle_connections_percent, var.defaults.max_idle_connections_percent, 50)
|
|
||||||
name = try(each.value.name, var.defaults.name, "")
|
|
||||||
proxy_tags = try(each.value.proxy_tags, var.defaults.proxy_tags, {})
|
|
||||||
region = try(each.value.region, var.defaults.region, null)
|
|
||||||
require_tls = try(each.value.require_tls, var.defaults.require_tls, true)
|
|
||||||
role_arn = try(each.value.role_arn, var.defaults.role_arn, "")
|
|
||||||
session_pinning_filters = try(each.value.session_pinning_filters, var.defaults.session_pinning_filters, [])
|
|
||||||
tags = try(each.value.tags, var.defaults.tags, {})
|
|
||||||
target_db_cluster = try(each.value.target_db_cluster, var.defaults.target_db_cluster, false)
|
|
||||||
target_db_instance = try(each.value.target_db_instance, var.defaults.target_db_instance, false)
|
|
||||||
use_policy_name_prefix = try(each.value.use_policy_name_prefix, var.defaults.use_policy_name_prefix, false)
|
|
||||||
use_role_name_prefix = try(each.value.use_role_name_prefix, var.defaults.use_role_name_prefix, false)
|
|
||||||
vpc_security_group_ids = try(each.value.vpc_security_group_ids, var.defaults.vpc_security_group_ids, [])
|
|
||||||
vpc_subnet_ids = try(each.value.vpc_subnet_ids, var.defaults.vpc_subnet_ids, [])
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
output "wrapper" {
|
|
||||||
description = "Map of outputs of a wrapper."
|
|
||||||
value = module.wrapper
|
|
||||||
# sensitive = false # No sensitive module output found
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
variable "defaults" {
|
|
||||||
description = "Map of default values which will be used for each item."
|
|
||||||
type = any
|
|
||||||
default = {}
|
|
||||||
}
|
|
||||||
|
|
||||||
variable "items" {
|
|
||||||
description = "Maps of items to create a wrapper from. Values are passed through to the module."
|
|
||||||
type = any
|
|
||||||
default = {}
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
terraform {
|
|
||||||
required_version = ">= 1.5.7"
|
|
||||||
|
|
||||||
required_providers {
|
|
||||||
aws = {
|
|
||||||
source = "hashicorp/aws"
|
|
||||||
version = ">= 6.15"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue