{"id":22944812,"url":"https://github.com/joatmon08/terraform-aws-postgres-operator","last_synced_at":"2026-01-15T22:33:54.240Z","repository":{"id":195615027,"uuid":"693293150","full_name":"joatmon08/terraform-aws-postgres-operator","owner":"joatmon08","description":"Terraform module for creating a PostgreSQL database on RDS using HCP Terraform operator","archived":false,"fork":false,"pushed_at":"2024-06-05T15:13:41.000Z","size":70,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-16T02:39:58.039Z","etag":null,"topics":["aws","postgresql","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joatmon08.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-18T18:28:15.000Z","updated_at":"2024-12-04T17:44:38.000Z","dependencies_parsed_at":"2024-06-05T17:23:54.407Z","dependency_job_id":null,"html_url":"https://github.com/joatmon08/terraform-aws-postgres-operator","commit_stats":null,"previous_names":["joatmon08/terraform-aws-postgres","joatmon08/terraform-aws-postgres-operator"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joatmon08%2Fterraform-aws-postgres-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joatmon08%2Fterraform-aws-postgres-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joatmon08%2Fterraform-aws-postgres-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joatmon08%2Fterraform-aws-postgres-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joatmon08","download_url":"https://codeload.github.com/joatmon08/terraform-aws-postgres-operator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246716078,"owners_count":20822409,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","postgresql","terraform","terraform-module"],"created_at":"2024-12-14T14:21:23.246Z","updated_at":"2026-01-15T22:33:54.227Z","avatar_url":"https://github.com/joatmon08.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-postgres\n\nSample module creating RDS PostgreSQL database, Boundary targets, and Consul registration.\nIt is intended to run with an operator, which means defining provider variables inline.\n\nFull demo at: https://github.com/joatmon08/hashicorp-stack-demoapp\n\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | ~\u003e 1.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 5.0 |\n| \u003ca name=\"requirement_boundary\"\u003e\u003c/a\u003e [boundary](#requirement\\_boundary) | \u003e= 1.0 |\n| \u003ca name=\"requirement_consul\"\u003e\u003c/a\u003e [consul](#requirement\\_consul) | \u003e= 2.18 |\n| \u003ca name=\"requirement_vault\"\u003e\u003c/a\u003e [vault](#requirement\\_vault) | \u003e= 3.20 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 5.17.0 |\n| \u003ca name=\"provider_boundary\"\u003e\u003c/a\u003e [boundary](#provider\\_boundary) | 1.1.9 |\n| \u003ca name=\"provider_consul\"\u003e\u003c/a\u003e [consul](#provider\\_consul) | 2.18.0 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | 3.5.1 |\n| \u003ca name=\"provider_vault\"\u003e\u003c/a\u003e [vault](#provider\\_vault) | 3.20.1 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_db_instance.database](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/db_instance) | resource |\n| [boundary_credential_library_vault.database_admin](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_library_vault) | resource |\n| [boundary_credential_library_vault.database_app](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/credential_library_vault) | resource |\n| [boundary_host_catalog_static.database](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/host_catalog_static) | resource |\n| [boundary_host_set_static.database](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/host_set_static) | resource |\n| [boundary_host_static.database](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/host_static) | resource |\n| [boundary_target.database_admin](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/target) | resource |\n| [boundary_target.database_app](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/target) | resource |\n| [consul_config_entry.service_defaults](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/resources/config_entry) | resource |\n| [consul_node.database](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/resources/node) | resource |\n| [consul_service.database](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/resources/service) | resource |\n| [random_password.database](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [random_pet.database](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) | resource |\n| [vault_database_secret_backend_connection.db](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/database_secret_backend_connection) | resource |\n| [vault_database_secret_backend_role.db](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/database_secret_backend_role) | resource |\n| [vault_kubernetes_auth_backend_role.db](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/kubernetes_auth_backend_role) | resource |\n| [vault_kv_secret_v2.postgres](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/kv_secret_v2) | resource |\n| [vault_mount.db](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/mount) | resource |\n| [vault_mount.static](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/mount) | resource |\n| [vault_policy.db](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/policy) | resource |\n| [vault_policy.transit](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/policy) | resource |\n| [vault_transit_secret_backend_key.transit](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/resources/transit_secret_backend_key) | resource |\n| [aws_security_group.database](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/security_group) | data source |\n| [consul_service_health.database](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/data-sources/service_health) | data source |\n| [vault_kv_secret_v2.postgres](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/data-sources/kv_secret_v2) | data source |\n| [vault_policy_document.db](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/data-sources/policy_document) | data source |\n| [vault_policy_document.transit](https://registry.terraform.io/providers/hashicorp/vault/latest/docs/data-sources/policy_document) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_additional_service_account_names\"\u003e\u003c/a\u003e [additional\\_service\\_account\\_names](#input\\_additional\\_service\\_account\\_names) | Additional service account names to allow access to database credentials | `list(string)` | `[]` | no |\n| \u003ca name=\"input_allow_major_version_upgrade\"\u003e\u003c/a\u003e [allow\\_major\\_version\\_upgrade](#input\\_allow\\_major\\_version\\_upgrade) | Allow major version upgrades of database | `bool` | `true` | no |\n| \u003ca name=\"input_boundary_address\"\u003e\u003c/a\u003e [boundary\\_address](#input\\_boundary\\_address) | Boundary address | `string` | n/a | yes |\n| \u003ca name=\"input_boundary_credentials_store_id\"\u003e\u003c/a\u003e [boundary\\_credentials\\_store\\_id](#input\\_boundary\\_credentials\\_store\\_id) | Boundary credentials store ID | `string` | n/a | yes |\n| \u003ca name=\"input_boundary_password\"\u003e\u003c/a\u003e [boundary\\_password](#input\\_boundary\\_password) | Boundary password | `string` | n/a | yes |\n| \u003ca name=\"input_boundary_scope_id\"\u003e\u003c/a\u003e [boundary\\_scope\\_id](#input\\_boundary\\_scope\\_id) | Boundary scope ID for setting up target to database | `string` | n/a | yes |\n| \u003ca name=\"input_boundary_username\"\u003e\u003c/a\u003e [boundary\\_username](#input\\_boundary\\_username) | Boundary address | `string` | n/a | yes |\n| \u003ca name=\"input_business_unit\"\u003e\u003c/a\u003e [business\\_unit](#input\\_business\\_unit) | Business unit | `string` | n/a | yes |\n| \u003ca name=\"input_consul_address\"\u003e\u003c/a\u003e [consul\\_address](#input\\_consul\\_address) | Consul address | `string` | n/a | yes |\n| \u003ca name=\"input_consul_datacenter\"\u003e\u003c/a\u003e [consul\\_datacenter](#input\\_consul\\_datacenter) | Consul datacenter | `string` | `null` | no |\n| \u003ca name=\"input_consul_token\"\u003e\u003c/a\u003e [consul\\_token](#input\\_consul\\_token) | Consul token | `string` | n/a | yes |\n| \u003ca name=\"input_db_instance_class\"\u003e\u003c/a\u003e [db\\_instance\\_class](#input\\_db\\_instance\\_class) | Database instance class | `string` | `\"db.t3.micro\"` | no |\n| \u003ca name=\"input_db_name\"\u003e\u003c/a\u003e [db\\_name](#input\\_db\\_name) | Database name to create in instance | `string` | n/a | yes |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | Environment | `string` | n/a | yes |\n| \u003ca name=\"input_org_name\"\u003e\u003c/a\u003e [org\\_name](#input\\_org\\_name) | Organization to search for VPC resources, including database subnet group | `string` | n/a | yes |\n| \u003ca name=\"input_postgres_db_version\"\u003e\u003c/a\u003e [postgres\\_db\\_version](#input\\_postgres\\_db\\_version) | PostgreSQL version | `string` | `\"14.9\"` | no |\n| \u003ca name=\"input_postgres_port\"\u003e\u003c/a\u003e [postgres\\_port](#input\\_postgres\\_port) | Database port | `number` | `5432` | no |\n| \u003ca name=\"input_use_vault_for_db_password\"\u003e\u003c/a\u003e [use\\_vault\\_for\\_db\\_password](#input\\_use\\_vault\\_for\\_db\\_password) | Use Vault for database password | `bool` | `true` | no |\n| \u003ca name=\"input_vault_address\"\u003e\u003c/a\u003e [vault\\_address](#input\\_vault\\_address) | Vault address | `string` | n/a | yes |\n| \u003ca name=\"input_vault_kubernetes_auth_path\"\u003e\u003c/a\u003e [vault\\_kubernetes\\_auth\\_path](#input\\_vault\\_kubernetes\\_auth\\_path) | Vault Kubernetes auth path | `string` | `\"kubernetes\"` | no |\n| \u003ca name=\"input_vault_namespace\"\u003e\u003c/a\u003e [vault\\_namespace](#input\\_vault\\_namespace) | Vault namespace | `string` | n/a | yes |\n| \u003ca name=\"input_vault_token\"\u003e\u003c/a\u003e [vault\\_token](#input\\_vault\\_token) | Vault token | `string` | n/a | yes |\n| \u003ca name=\"input_vault_transit_secrets_engine_mount\"\u003e\u003c/a\u003e [vault\\_transit\\_secrets\\_engine\\_mount](#input\\_vault\\_transit\\_secrets\\_engine\\_mount) | Override default Vault transit secrets engine mount | `string` | `\"transit\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_boundary_target_postgres\"\u003e\u003c/a\u003e [boundary\\_target\\_postgres](#output\\_boundary\\_target\\_postgres) | n/a |\n| \u003ca name=\"output_boundary_target_postgres_app\"\u003e\u003c/a\u003e [boundary\\_target\\_postgres\\_app](#output\\_boundary\\_target\\_postgres\\_app) | n/a |\n| \u003ca name=\"output_database_secret_name\"\u003e\u003c/a\u003e [database\\_secret\\_name](#output\\_database\\_secret\\_name) | Name of secret with database admin credentials |\n| \u003ca name=\"output_database_static_path\"\u003e\u003c/a\u003e [database\\_static\\_path](#output\\_database\\_static\\_path) | Path to static secrets related to database service |\n| \u003ca name=\"output_product_database_address\"\u003e\u003c/a\u003e [product\\_database\\_address](#output\\_product\\_database\\_address) | n/a |\n| \u003ca name=\"output_vault_paths\"\u003e\u003c/a\u003e [vault\\_paths](#output\\_vault\\_paths) | n/a |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoatmon08%2Fterraform-aws-postgres-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoatmon08%2Fterraform-aws-postgres-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoatmon08%2Fterraform-aws-postgres-operator/lists"}