diff --git a/.wordlist-en-custom.txt b/.wordlist-en-custom.txt index d52ac354..fcde5932 100644 --- a/.wordlist-en-custom.txt +++ b/.wordlist-en-custom.txt @@ -41,6 +41,7 @@ postgres PostGIS postGIS ssd +TDE terraform ultradisk uri diff --git a/CHANGELOG.md b/CHANGELOG.md index a1c82d03..3d9be801 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,19 @@ +## v1.0.0 (August 07. 2024) +Features: +* Transparent Data Encryption (TDE) is now supported in `biganimal_cluster` and `biganimal_faraway_replica` resources +* Volume Snapshots are now supported in `biganimal_cluster` and `biganimal_faraway_replica` resources +* (Breaking change) `biganimal_cluster` and `biganimal_faraway_replica` datasources now use cluster ID instead of cluster name + +Enhancements: +* (Breaking change) data groups in `biganimal_pgd` resources now use lists instead of sets +* (Breaking change) blocks are migrated to terraform plugin framework attributes in `biganimal_cluster` resources +* (Breaking change) `biganimal_faraway_replica` resources are migrated to terraform plugin framework attributes +* Updated examples + +## v0.11.2 (July 31. 2024) +Bug Fixes: +* fixed pg bouncer settings = null will always show changes on update + ## v0.11.0 (June 20. 2024) Features: * New Resource to manage Analytical clusters: `biganimal_analytics_cluster` diff --git a/GNUmakefile b/GNUmakefile index 766475bf..14ad8d98 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -4,7 +4,7 @@ HOSTNAME=registry.terraform.io NAMESPACE=EnterpriseDB NAME=biganimal BINARY=terraform-provider-${NAME} -VERSION=0.11.0 +VERSION=1.0.0 # Figure out the OS and ARCH of the # builder machine diff --git a/README.md b/README.md index c4a13ba6..7b50ce3a 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/docs/data-sources/cluster.md b/docs/data-sources/cluster.md index 19a9dd4a..7f1b533a 100644 --- a/docs/data-sources/cluster.md +++ b/docs/data-sources/cluster.md @@ -1,11 +1,11 @@ # biganimal_cluster (Data Source) -The cluster data source describes a BigAnimal cluster. The data source requires your cluster name. +The cluster data source describes a BigAnimal cluster. The data source requires your cluster ID. ## Example Usage ```terraform -variable "cluster_name" { +variable "cluster_id" { type = string - description = "The name of the cluster" + description = "The id of the cluster" } variable "project_id" { @@ -14,8 +14,8 @@ variable "project_id" { } data "biganimal_cluster" "this" { - cluster_name = var.cluster_name - project_id = var.project_id + cluster_id = var.cluster_id + project_id = var.project_id } output "cluster_architecture" { @@ -38,14 +38,6 @@ output "csp_auth" { value = coalesce(data.biganimal_cluster.this.csp_auth, false) } -output "deleted_at" { - value = data.biganimal_cluster.this.deleted_at -} - -output "expired_at" { - value = data.biganimal_cluster.this.expired_at -} - output "instance_type" { value = data.biganimal_cluster.this.instance_type } @@ -125,6 +117,10 @@ output "pe_allowed_principal_ids" { output "service_account_ids" { value = data.biganimal_cluster.this.service_account_ids } + +output "volume_snapshot_backup" { + value = coalesce(data.biganimal_cluster.this.post_gis, false) +} ``` @@ -132,58 +128,77 @@ output "service_account_ids" { ### Required -- `cluster_name` (String) Name of the cluster. +- `cluster_id` (String) Cluster ID. - `project_id` (String) BigAnimal Project ID. ### Optional - `allowed_ip_ranges` (Attributes Set) Allowed IP ranges. (see [below for nested schema](#nestedatt--allowed_ip_ranges)) -- `faraway_replica_ids` (Set of String) -- `most_recent` (Boolean) Show the most recent cluster when there are multiple clusters with the same name. -- `pause` (Boolean) Pause cluster. If true it will put the cluster on pause and set the phase as paused, if false it will resume the cluster and set the phase as healthy -- `pe_allowed_principal_ids` (Set of String) +- `backup_retention_period` (String) Backup retention period. For example, "7d", "2w", or "3m". +- `csp_auth` (Boolean) Is authentication handled by the cloud service provider. Available for AWS only, See [Authentication](https://www.enterprisedb.com/docs/biganimal/latest/getting_started/creating_a_cluster/#authentication) for details. +- `maintenance_window` (Attributes) Custom maintenance window. (see [below for nested schema](#nestedatt--maintenance_window)) +- `pause` (Boolean) Pause cluster. If true it will put the cluster on pause and set the phase as paused, if false it will resume the cluster and set the phase as healthy. Pausing a cluster allows you to save on compute costs without losing data or cluster configuration settings. While paused, clusters aren't upgraded or patched, but changes are applied when the cluster resumes. Pausing a high availability cluster shuts down all cluster nodes +- `pe_allowed_principal_ids` (Set of String) Cloud provider subscription/account ID, need to be specified when cluster is deployed on BigAnimal's cloud account. - `pg_bouncer` (Attributes) Pg bouncer. (see [below for nested schema](#nestedatt--pg_bouncer)) -- `service_account_ids` (Set of String) +- `pg_config` (Attributes Set) Database configuration parameters. See [Modifying database configuration parameters](https://www.enterprisedb.com/docs/biganimal/latest/using_cluster/03_modifying_your_cluster/05_db_configuration_parameters/) for details. (see [below for nested schema](#nestedatt--pg_config)) +- `pg_identity` (String) PG Identity required to grant key permissions to activate the cluster. +- `pgvector` (Boolean) Is pgvector extension enabled. Adds support for vector storage and vector similarity search to Postgres. +- `post_gis` (Boolean) Is postGIS extension enabled. PostGIS extends the capabilities of the PostgreSQL relational database by adding support storing, indexing and querying geographic data. +- `private_networking` (Boolean) Is private networking enabled. +- `read_only_connections` (Boolean) Is read only connection enabled. +- `service_account_ids` (Set of String) A Google Cloud Service Account is used for logs. If you leave this blank, then you will be unable to access log details for this cluster. Required when cluster is deployed on BigAnimal's cloud account. +- `superuser_access` (Boolean) Enable to grant superuser access to the edb_admin role. +- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts)) +- `transparent_data_encryption` (Attributes) Transparent Data Encryption (TDE) key (see [below for nested schema](#nestedatt--transparent_data_encryption)) +- `volume_snapshot_backup` (Boolean) Volume snapshot. ### Read-Only -- `backup_retention_period` (String) Backup retention period. -- `cloud_provider` (String) Cloud provider. +- `cloud_provider` (String) Cloud provider. For example, "aws", "azure", "gcp" or "bah:aws", "bah:gcp". - `cluster_architecture` (Attributes) Cluster architecture. (see [below for nested schema](#nestedatt--cluster_architecture)) -- `cluster_id` (String) Cluster ID. -- `cluster_type` (String) Type of the Specified Cluster. +- `cluster_name` (String) Name of the cluster. +- `cluster_type` (String) Type of the cluster. For example, "cluster" for biganimal_cluster resources, or "faraway_replica" for biganimal_faraway_replica resources. - `connection_uri` (String) Cluster connection URI. - `created_at` (String) Cluster creation time. -- `csp_auth` (Boolean) Is authentication handled by the cloud service provider. -- `deleted_at` (String) Cluster deletion time. -- `expired_at` (String) Cluster expiry time. +- `faraway_replica_ids` (Set of String) - `first_recoverability_point_at` (String) Earliest backup recover time. -- `id` (String) Datasource ID. -- `instance_type` (String) Instance type. +- `id` (String) Data source ID. +- `instance_type` (String) Instance type. For example, "azure:Standard_D2s_v3", "aws:c5.large" or "gcp:e2-highcpu-4". - `logs_url` (String) The URL to find the logs of this cluster. -- `maintenance_window` (Attributes) Custom maintenance window. (see [below for nested schema](#nestedatt--maintenance_window)) - `metrics_url` (String) The URL to find the metrics of this cluster. -- `pg_config` (Attributes Set) Database configuration parameters. (see [below for nested schema](#nestedatt--pg_config)) -- `pg_type` (String) Postgres type. -- `pg_version` (String) Postgres version. -- `pgvector` (Boolean) Is pgvector extension enabled. Adds support for vector storage and vector similarity search to Postgres. +- `password` (String) Password for the user edb_admin. It must be 12 characters or more. +- `pg_type` (String) Postgres type. For example, "epas", "pgextended", or "postgres". +- `pg_version` (String) Postgres version. See [Supported Postgres types and versions](https://www.enterprisedb.com/docs/biganimal/latest/overview/05_database_version_policy/#supported-postgres-types-and-versions) for supported Postgres types and versions. - `phase` (String) Current phase of the cluster. -- `post_gis` (Boolean) Is postGIS extension enabled. PostGIS extends the capabilities of the PostgreSQL relational database by adding support storing, indexing and querying geographic data. -- `private_networking` (Boolean) Is private networking enabled. -- `read_only_connections` (Boolean) Is read only connection enabled. -- `region` (String) Region to deploy the cluster. +- `region` (String) Region to deploy the cluster. See [Supported regions](https://www.enterprisedb.com/docs/biganimal/latest/overview/03a_region_support/) for supported regions. - `resizing_pvc` (List of String) Resizing PVC. - `ro_connection_uri` (String) Cluster read-only connection URI. Only available for high availability clusters. - `storage` (Attributes) Storage. (see [below for nested schema](#nestedatt--storage)) -- `superuser_access` (Boolean) Is superuser access enabled. +- `transparent_data_encryption_action` (String) Transparent data encryption action. ### Nested Schema for `allowed_ip_ranges` -Read-Only: +Required: -- `cidr_block` (String) CIDR block. -- `description` (String) CIDR block description. +- `cidr_block` (String) CIDR block + +Optional: + +- `description` (String) Description of CIDR block + + + +### Nested Schema for `maintenance_window` + +Required: + +- `is_enabled` (Boolean) Is maintenance window enabled. + +Optional: + +- `start_day` (Number) The day of week, 0 represents Sunday, 1 is Monday, and so on. +- `start_time` (String) Start time. "hh:mm", for example: "23:59". @@ -208,42 +223,58 @@ Required: - -### Nested Schema for `cluster_architecture` + +### Nested Schema for `pg_config` -Read-Only: +Required: -- `id` (String) Cluster architecture ID. -- `name` (String) Name. -- `nodes` (Number) Node count. +- `name` (String) GUC name. +- `value` (String) GUC value. - -### Nested Schema for `maintenance_window` + +### Nested Schema for `timeouts` + +Optional: + +- `create` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +- `delete` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +- `update` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + + + +### Nested Schema for `transparent_data_encryption` Read-Only: -- `is_enabled` (Boolean) Is maintenance window enabled. -- `start_day` (Number) The day of week, 0 represents Sunday, 1 is Monday, and so on. -- `start_time` (String) Start time. "hh:mm", for example: "23:59". +- `key_id` (String) Transparent Data Encryption (TDE) key ID. +- `key_name` (String) Key name. +- `status` (String) Status. - -### Nested Schema for `pg_config` + +### Nested Schema for `cluster_architecture` + +Required: + +- `id` (String) Cluster architecture ID. For example, "single" or "ha".For Extreme High Availability clusters, please use the [biganimal_pgd](https://registry.terraform.io/providers/EnterpriseDB/biganimal/latest/docs/resources/pgd) resource. +- `nodes` (Number) Node count. Read-Only: -- `name` (String) GUC name. -- `value` (String) GUC value. +- `name` (String) Name. ### Nested Schema for `storage` -Read-Only: +Required: + +- `size` (String) Size of the volume. It can be set to different values depending on your volume type and properties. +- `volume_properties` (String) Volume properties in accordance with the selected volume type. +- `volume_type` (String) Volume type. For Azure: "azurepremiumstorage" or "ultradisk". For AWS: "gp3", "io2", org s "io2-block-express". For Google Cloud: only "pd-ssd". + +Optional: -- `iops` (String) IOPS for the selected volume. -- `size` (String) Size of the volume. -- `throughput` (String) Throughput. -- `volume_properties` (String) Volume properties. -- `volume_type` (String) Volume type. +- `iops` (String) IOPS for the selected volume. It can be set to different values depending on your volume type and properties. +- `throughput` (String) Throughput is automatically calculated by BigAnimal based on the IOPS input if it's not provided. diff --git a/docs/data-sources/faraway_replica.md b/docs/data-sources/faraway_replica.md index 316630d4..9fe92353 100644 --- a/docs/data-sources/faraway_replica.md +++ b/docs/data-sources/faraway_replica.md @@ -56,14 +56,6 @@ output "csp_auth" { value = coalesce(data.biganimal_faraway_replica.this.csp_auth, false) } -output "deleted_at" { - value = data.biganimal_faraway_replica.this.deleted_at -} - -output "expired_at" { - value = data.biganimal_faraway_replica.this.expired_at -} - output "instance_type" { value = data.biganimal_faraway_replica.this.instance_type } @@ -111,6 +103,10 @@ output "resizing_pvc" { output "storage" { value = data.biganimal_faraway_replica.this.storage } + +output "volume_snapshot_backup" { + value = data.biganimal_faraway_replica.this.volume_snapshot_backup +} ``` @@ -118,78 +114,105 @@ output "storage" { ### Required -- `cluster_id` (String) Faraway Replica Cluster ID. -- `project_id` (String) BigAnimal Project ID. +- `cluster_id` (String) Cluster ID. ### Optional -- `most_recent` (Boolean) Show the most recent cluster when there are multiple clusters with the same name. +- `allowed_ip_ranges` (Attributes Set) Allowed IP ranges. (see [below for nested schema](#nestedatt--allowed_ip_ranges)) +- `backup_retention_period` (String) Backup retention period. For example, "7d", "2w", or "3m". +- `csp_auth` (Boolean) Is authentication handled by the cloud service provider. +- `pe_allowed_principal_ids` (Set of String) Cloud provider subscription/account ID, need to be specified when cluster is deployed on BigAnimal's cloud account. +- `pg_config` (Attributes Set) Database configuration parameters. (see [below for nested schema](#nestedatt--pg_config)) +- `private_networking` (Boolean) Is private networking enabled. +- `project_id` (String) BigAnimal Project ID. +- `service_account_ids` (Set of String) A Google Cloud Service Account is used for logs. If you leave this blank, then you will be unable to access log details for this cluster. Required when cluster is deployed on BigAnimal's cloud account. +- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts)) +- `transparent_data_encryption` (Attributes) Transparent Data Encryption (TDE) key (see [below for nested schema](#nestedatt--transparent_data_encryption)) ### Read-Only -- `allowed_ip_ranges` (Block Set) Allowed IP ranges. (see [below for nested schema](#nestedblock--allowed_ip_ranges)) -- `backup_retention_period` (String) Backup retention period. -- `cloud_provider` (String) Cloud provider. -- `cluster_architecture` (Block List) Cluster architecture. (see [below for nested schema](#nestedblock--cluster_architecture)) +- `cloud_provider` (String) Cloud provider. For example, "aws", "azure", "gcp" or "bah:aws", "bah:gcp". +- `cluster_architecture` (Attributes) Cluster architecture. (see [below for nested schema](#nestedatt--cluster_architecture)) - `cluster_name` (String) Name of the faraway replica cluster. -- `cluster_type` (String) Type of the Specified Cluster . +- `cluster_type` (String) Type of the cluster. For example, "cluster" for biganimal_cluster resources, or "faraway_replica" for biganimal_faraway_replica resources. - `connection_uri` (String) Cluster connection URI. - `created_at` (String) Cluster creation time. -- `csp_auth` (Boolean) Is authentication handled by the cloud service provider. -- `deleted_at` (String) Cluster deletion time. -- `expired_at` (String) Cluster expiry time. -- `first_recoverability_point_at` (String) Earliest backup recover time. - `id` (String) The ID of this resource. -- `instance_type` (String) Instance type. +- `instance_type` (String) Instance type. For example, "azure:Standard_D2s_v3", "aws:c5.large" or "gcp:e2-highcpu-4". - `logs_url` (String) The URL to find the logs of this cluster. - `metrics_url` (String) The URL to find the metrics of this cluster. -- `pg_config` (Set of Object) Database configuration parameters. (see [below for nested schema](#nestedatt--pg_config)) -- `pg_type` (String) Postgres type. -- `pg_version` (String) Postgres version. -- `pgvector` (Boolean) Is pgvector extension enabled. Adds support for vector storage and vector similarity search to Postgres. +- `pg_identity` (String) PG Identity required to grant key permissions to activate the cluster. +- `pg_type` (String) Postgres type. For example, "epas", "pgextended", or "postgres". +- `pg_version` (String) Postgres version. See [Supported Postgres types and versions](https://www.enterprisedb.com/docs/biganimal/latest/overview/05_database_version_policy/#supported-postgres-types-and-versions) for supported Postgres types and versions. - `phase` (String) Current phase of the cluster. -- `post_gis` (Boolean) Is postGIS extension enabled. PostGIS extends the capabilities of the PostgreSQL relational database by adding support storing, indexing and querying geographic data. -- `private_networking` (Boolean) Is private networking enabled. -- `region` (String) Region to deploy the cluster. +- `region` (String) Region to deploy the cluster. See [Supported regions](https://www.enterprisedb.com/docs/biganimal/latest/overview/03a_region_support/) for supported regions. - `resizing_pvc` (List of String) Resizing PVC. -- `source_cluster_id` (String) Source Cluster ID. -- `storage` (List of Object) Storage. (see [below for nested schema](#nestedatt--storage)) +- `source_cluster_id` (String) Source cluster ID. +- `storage` (Attributes) Storage. (see [below for nested schema](#nestedatt--storage)) +- `transparent_data_encryption_action` (String) Transparent data encryption action. +- `volume_snapshot_backup` (Boolean) Enable to take a snapshot of the volume. - + ### Nested Schema for `allowed_ip_ranges` -Read-Only: +Required: -- `cidr_block` (String) CIDR block. -- `description` (String) CIDR block description. +- `cidr_block` (String) CIDR block +- `description` (String) Description of CIDR block - -### Nested Schema for `cluster_architecture` + +### Nested Schema for `pg_config` + +Required: + +- `name` (String) GUC name. +- `value` (String) GUC value. + + + +### Nested Schema for `timeouts` + +Optional: + +- `create` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +- `delete` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +- `update` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + + + +### Nested Schema for `transparent_data_encryption` + +Required: + +- `key_id` (String) Transparent Data Encryption (TDE) key ID. Read-Only: -- `id` (String) Cluster architecture ID. -- `name` (String) Name. -- `nodes` (Number) Node count. +- `key_name` (String) Key name. +- `status` (String) Status. - -### Nested Schema for `pg_config` + +### Nested Schema for `cluster_architecture` Read-Only: -- `name` (String) -- `value` (String) +- `id` (String) Cluster architecture ID. For example, "single" or "ha".For Extreme High Availability clusters, please use the [biganimal_pgd](https://registry.terraform.io/providers/EnterpriseDB/biganimal/latest/docs/resources/pgd) resource. +- `name` (String) Name. +- `nodes` (Number) Node count. ### Nested Schema for `storage` -Read-Only: +Required: + +- `volume_properties` (String) Volume properties. +- `volume_type` (String) Volume type. + +Optional: -- `iops` (String) -- `size` (String) -- `throughput` (String) -- `volume_properties` (String) -- `volume_type` (String) +- `iops` (String) IOPS for the selected volume. +- `size` (String) Size of the volume. +- `throughput` (String) Throughput. diff --git a/docs/data-sources/pgd.md b/docs/data-sources/pgd.md index 788d9db5..c977bd3f 100644 --- a/docs/data-sources/pgd.md +++ b/docs/data-sources/pgd.md @@ -74,7 +74,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/docs/resources/aws_connection.md b/docs/resources/aws_connection.md index 563b2c59..5e1f8798 100644 --- a/docs/resources/aws_connection.md +++ b/docs/resources/aws_connection.md @@ -19,7 +19,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/docs/resources/azure_connection.md b/docs/resources/azure_connection.md index d0e31b72..8d9979fe 100644 --- a/docs/resources/azure_connection.md +++ b/docs/resources/azure_connection.md @@ -19,7 +19,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/docs/resources/cluster.md b/docs/resources/cluster.md index 1d22744f..29094be0 100644 --- a/docs/resources/cluster.md +++ b/docs/resources/cluster.md @@ -13,7 +13,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -43,38 +43,40 @@ resource "biganimal_cluster" "single_node_cluster" { project_id = var.project_id pause = false - allowed_ip_ranges { - cidr_block = "127.0.0.1/32" - description = "localhost" - } - - allowed_ip_ranges { - cidr_block = "192.168.0.1/32" - description = "description!" - } + allowed_ip_ranges = [ + { + cidr_block = "127.0.0.1/32" + description = "localhost" + }, + { + cidr_block = "192.168.0.1/32" + description = "description!" + } + ] backup_retention_period = "6d" - cluster_architecture { + cluster_architecture = { id = "single" nodes = 1 } csp_auth = false - instance_type = "azure:Standard_D2s_v3" + instance_type = "aws:m5.large" password = resource.random_password.password.result - pg_config { - name = "application_name" - value = "created through terraform" - } - - pg_config { - name = "array_nulls" - value = "off" - } + pg_config = [ + { + name = "application_name" + value = "created through terraform" + }, + { + name = "array_nulls" + value = "off" + } + ] - storage { - volume_type = "azurepremiumstorage" - volume_properties = "P1" + storage = { + volume_type = "gp3" + volume_properties = "gp3" size = "4 Gi" } @@ -84,16 +86,16 @@ resource "biganimal_cluster" "single_node_cluster" { start_time = "03:00" } - pg_type = "epas" - pg_version = "15" - private_networking = false - cloud_provider = "azure" - read_only_connections = false - region = "eastus2" - superuser_access = true - pgvector = false - post_gis = false - + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" + pg_version = "15" + private_networking = false + cloud_provider = "bah:aws" // "bah:aws" uses BigAnimal's cloud account AWS, use "aws" for your cloud account + read_only_connections = false + region = "us-east-1" + superuser_access = false + pgvector = false + post_gis = false + volume_snapshot_backup = false pg_bouncer = { is_enabled = false @@ -110,6 +112,14 @@ resource "biganimal_cluster" "single_node_cluster" { # }, # ] } + + # pe_allowed_principal_ids = [ + # # ex: 123456789012 + # ] + + # transparent_data_encryption = { + # key_id = + # } } output "password" { @@ -128,7 +138,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -158,35 +168,37 @@ resource "biganimal_cluster" "ha_cluster" { project_id = var.project_id pause = false - allowed_ip_ranges { - cidr_block = "127.0.0.1/32" - description = "localhost" - } - - allowed_ip_ranges { - cidr_block = "192.168.0.1/32" - description = "description!" - } + allowed_ip_ranges = [ + { + cidr_block = "127.0.0.1/32" + description = "localhost" + }, + { + cidr_block = "192.168.0.1/32" + description = "description!" + } + ] backup_retention_period = "6d" - cluster_architecture { + cluster_architecture = { id = "ha" nodes = 3 } instance_type = "aws:c5.large" password = resource.random_password.password.result - pg_config { - name = "application_name" - value = "created through terraform" - } - - pg_config { - name = "array_nulls" - value = "off" - } + pg_config = [ + { + name = "application_name" + value = "created through terraform" + }, + { + name = "array_nulls" + value = "off" + } + ] - storage { + storage = { volume_type = "gp3" volume_properties = "gp3" size = "4 Gi" @@ -198,15 +210,16 @@ resource "biganimal_cluster" "ha_cluster" { start_time = "03:00" } - pg_type = "epas" - pg_version = "15" - private_networking = false - cloud_provider = "aws" - read_only_connections = true - region = "us-east-1" - superuser_access = true - pgvector = false - post_gis = false + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" + pg_version = "15" + private_networking = false + cloud_provider = "bah:aws" // "bah:aws" uses BigAnimal's cloud account AWS, use "aws" for your cloud account + read_only_connections = false + region = "us-east-1" + superuser_access = false + pgvector = false + post_gis = false + volume_snapshot_backup = false pg_bouncer = { is_enabled = false @@ -223,6 +236,10 @@ resource "biganimal_cluster" "ha_cluster" { # }, # ] } + + # transparent_data_encryption = { + # key_id = + # } } output "password" { @@ -249,6 +266,7 @@ output "faraway_replica_ids" { ### Required - `cloud_provider` (String) Cloud provider. For example, "aws", "azure", "gcp" or "bah:aws", "bah:gcp". +- `cluster_architecture` (Attributes) Cluster architecture. (see [below for nested schema](#nestedatt--cluster_architecture)) - `cluster_name` (String) Name of the cluster. - `instance_type` (String) Instance type. For example, "azure:Standard_D2s_v3", "aws:c5.large" or "gcp:e2-highcpu-4". - `password` (String) Password for the user edb_admin. It must be 12 characters or more. @@ -256,27 +274,27 @@ output "faraway_replica_ids" { - `pg_version` (String) Postgres version. See [Supported Postgres types and versions](https://www.enterprisedb.com/docs/biganimal/latest/overview/05_database_version_policy/#supported-postgres-types-and-versions) for supported Postgres types and versions. - `project_id` (String) BigAnimal Project ID. - `region` (String) Region to deploy the cluster. See [Supported regions](https://www.enterprisedb.com/docs/biganimal/latest/overview/03a_region_support/) for supported regions. +- `storage` (Attributes) Storage. (see [below for nested schema](#nestedatt--storage)) ### Optional -- `allowed_ip_ranges` (Block Set) Allowed IP ranges. (see [below for nested schema](#nestedblock--allowed_ip_ranges)) +- `allowed_ip_ranges` (Attributes Set) Allowed IP ranges. (see [below for nested schema](#nestedatt--allowed_ip_ranges)) - `backup_retention_period` (String) Backup retention period. For example, "7d", "2w", or "3m". -- `cluster_architecture` (Block, Optional) Cluster architecture. See [Supported cluster types](https://www.enterprisedb.com/docs/biganimal/latest/overview/02_high_availability/) for details. (see [below for nested schema](#nestedblock--cluster_architecture)) - `csp_auth` (Boolean) Is authentication handled by the cloud service provider. Available for AWS only, See [Authentication](https://www.enterprisedb.com/docs/biganimal/latest/getting_started/creating_a_cluster/#authentication) for details. - `maintenance_window` (Attributes) Custom maintenance window. (see [below for nested schema](#nestedatt--maintenance_window)) - `pause` (Boolean) Pause cluster. If true it will put the cluster on pause and set the phase as paused, if false it will resume the cluster and set the phase as healthy. Pausing a cluster allows you to save on compute costs without losing data or cluster configuration settings. While paused, clusters aren't upgraded or patched, but changes are applied when the cluster resumes. Pausing a high availability cluster shuts down all cluster nodes - `pe_allowed_principal_ids` (Set of String) Cloud provider subscription/account ID, need to be specified when cluster is deployed on BigAnimal's cloud account. - `pg_bouncer` (Attributes) Pg bouncer. (see [below for nested schema](#nestedatt--pg_bouncer)) -- `pg_config` (Block Set) Database configuration parameters. See [Modifying database configuration parameters](https://www.enterprisedb.com/docs/biganimal/latest/using_cluster/03_modifying_your_cluster/05_db_configuration_parameters/) for details. (see [below for nested schema](#nestedblock--pg_config)) +- `pg_config` (Attributes Set) Database configuration parameters. See [Modifying database configuration parameters](https://www.enterprisedb.com/docs/biganimal/latest/using_cluster/03_modifying_your_cluster/05_db_configuration_parameters/) for details. (see [below for nested schema](#nestedatt--pg_config)) - `pgvector` (Boolean) Is pgvector extension enabled. Adds support for vector storage and vector similarity search to Postgres. - `post_gis` (Boolean) Is postGIS extension enabled. PostGIS extends the capabilities of the PostgreSQL relational database by adding support storing, indexing and querying geographic data. - `private_networking` (Boolean) Is private networking enabled. - `read_only_connections` (Boolean) Is read only connection enabled. - `service_account_ids` (Set of String) A Google Cloud Service Account is used for logs. If you leave this blank, then you will be unable to access log details for this cluster. Required when cluster is deployed on BigAnimal's cloud account. -- `storage` (Block, Optional) Storage. (see [below for nested schema](#nestedblock--storage)) - `superuser_access` (Boolean) Enable to grant superuser access to the edb_admin role. - `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts)) -- `volume_snapshot_backup`(Boolean) Enable to take a snapshot of the volume. +- `transparent_data_encryption` (Attributes) Transparent Data Encryption (TDE) key (see [below for nested schema](#nestedatt--transparent_data_encryption)) +- `volume_snapshot_backup` (Boolean) Enable to take a snapshot of the volume. ### Read-Only @@ -289,33 +307,50 @@ output "faraway_replica_ids" { - `id` (String) Resource ID of the cluster. - `logs_url` (String) The URL to find the logs of this cluster. - `metrics_url` (String) The URL to find the metrics of this cluster. +- `pg_identity` (String) PG Identity required to grant key permissions to activate the cluster. - `phase` (String) Current phase of the cluster. - `resizing_pvc` (List of String) Resizing PVC. - `ro_connection_uri` (String) Cluster read-only connection URI. Only available for high availability clusters. +- `transparent_data_encryption_action` (String) Transparent data encryption action. + + +### Nested Schema for `cluster_architecture` + +Required: + +- `id` (String) Cluster architecture ID. For example, "single" or "ha".For Extreme High Availability clusters, please use the [biganimal_pgd](https://registry.terraform.io/providers/EnterpriseDB/biganimal/latest/docs/resources/pgd) resource. +- `nodes` (Number) Node count. + +Read-Only: + +- `name` (String) Name. - -### Nested Schema for `allowed_ip_ranges` + + +### Nested Schema for `storage` Required: -- `cidr_block` (String) CIDR block. +- `size` (String) Size of the volume. It can be set to different values depending on your volume type and properties. +- `volume_properties` (String) Volume properties in accordance with the selected volume type. +- `volume_type` (String) Volume type. For Azure: "azurepremiumstorage" or "ultradisk". For AWS: "gp3", "io2", org s "io2-block-express". For Google Cloud: only "pd-ssd". Optional: -- `description` (String) CIDR block description. +- `iops` (String) IOPS for the selected volume. It can be set to different values depending on your volume type and properties. +- `throughput` (String) Throughput is automatically calculated by BigAnimal based on the IOPS input if it's not provided. - -### Nested Schema for `cluster_architecture` + +### Nested Schema for `allowed_ip_ranges` Required: -- `id` (String) Cluster architecture ID. For example, "single" or "ha".For Extreme High Availability clusters, please use the [biganimal_pgd](https://registry.terraform.io/providers/EnterpriseDB/biganimal/latest/docs/resources/pgd) resource. -- `nodes` (Number) Node count. +- `cidr_block` (String) CIDR block Optional: -- `name` (String) Name. +- `description` (String) Description of CIDR block @@ -353,7 +388,7 @@ Required: - + ### Nested Schema for `pg_config` Required: @@ -362,21 +397,6 @@ Required: - `value` (String) GUC value. - -### Nested Schema for `storage` - -Required: - -- `size` (String) Size of the volume. It can be set to different values depending on your volume type and properties. -- `volume_properties` (String) Volume properties in accordance with the selected volume type. -- `volume_type` (String) Volume type. For Azure: "azurepremiumstorage" or "ultradisk". For AWS: "gp3", "io2", org s "io2-block-express". For Google Cloud: only "pd-ssd". - -Optional: - -- `iops` (String) IOPS for the selected volume. It can be set to different values depending on your volume type and properties. -- `throughput` (String) Throughput is automatically calculated by BigAnimal based on the IOPS input if it's not provided. - - ### Nested Schema for `timeouts` @@ -386,6 +406,19 @@ Optional: - `delete` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. - `update` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + + +### Nested Schema for `transparent_data_encryption` + +Required: + +- `key_id` (String) Transparent Data Encryption (TDE) key ID. + +Read-Only: + +- `key_name` (String) Key name. +- `status` (String) Status. + ## Import Import is supported using the following syntax: diff --git a/docs/resources/faraway_replica.md b/docs/resources/faraway_replica.md index 2fc90eab..e3eeb6f1 100644 --- a/docs/resources/faraway_replica.md +++ b/docs/resources/faraway_replica.md @@ -2,95 +2,7 @@ The faraway replica resource is used to manage cluster faraway-replicas on different active regions in the cloud. See [Managing replicas](https://www.enterprisedb.com/docs/biganimal/latest/using_cluster/managing_replicas/) for more details. -## Example Usage -```terraform -terraform { - required_providers { - biganimal = { - source = "EnterpriseDB/biganimal" - version = "0.11.0" - } - random = { - source = "hashicorp/random" - version = "3.6.0" - } - } -} - -variable "cluster_name" { - type = string - description = "The name of the faraway replica cluster." -} - -variable "source_cluster_id" { - type = string - description = "BigAnimal source cluster ID" -} - -variable "project_id" { - type = string - description = "BigAnimal Project ID" -} - -resource "biganimal_faraway_replica" "faraway_replica" { - cluster_name = var.cluster_name - project_id = var.project_id - source_cluster_id = var.source_cluster_id - - allowed_ip_ranges { - cidr_block = "127.0.0.1/32" - description = "localhost" - } - - allowed_ip_ranges { - cidr_block = "192.168.0.1/32" - description = "description!" - } - - backup_retention_period = "6d" - csp_auth = true - instance_type = "aws:m5.large" - - // only following pg_config parameters are configurable for faraway replica - // max_connections, max_locks_per_transaction, max_prepared_transactions, max_wal_senders, max_worker_processes. - // it is highly recommended setting these values to be equal to or greater than the source cluster's. - // Please visit [this page](https://www.enterprisedb.com/docs/biganimal/latest/using_cluster/managing_replicas/#modify-a-faraway-replica)for best practices. - pg_config { - name = "max_connections" - value = "100" - } - - pg_config { - name = "max_locks_per_transaction" - value = "64" - } - - pg_config { - name = "max_prepared_transactions" - value = "0" - } - - pg_config { - name = "max_wal_senders" - value = "10" - } - - pg_config { - name = "max_worker_processes" - value = "32" - } - - - storage { - volume_type = "gp3" - volume_properties = "gp3" - size = "4 Gi" - } - private_networking = false - region = "eu-west-2" -} -``` ## Example of Creating a Single Node Cluster and Its Faraway Replica @@ -102,7 +14,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -131,7 +43,7 @@ resource "biganimal_cluster" "single_node_cluster" { cluster_name = var.cluster_name project_id = var.project_id - cluster_architecture { + cluster_architecture = { id = "single" nodes = 1 } @@ -139,16 +51,22 @@ resource "biganimal_cluster" "single_node_cluster" { instance_type = "azure:Standard_D2s_v3" password = resource.random_password.password.result - storage { + storage = { volume_type = "azurepremiumstorage" volume_properties = "P1" size = "4 Gi" } - pg_type = "epas" + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" pg_version = "15" cloud_provider = "azure" region = "eastus" + + # transparent_data_encryption = { + # key_id = + # } + + volume_snapshot_backup = false } output "password" { @@ -161,48 +79,37 @@ resource "biganimal_faraway_replica" "faraway_replica" { project_id = var.project_id source_cluster_id = resource.biganimal_cluster.single_node_cluster.cluster_id - allowed_ip_ranges { - cidr_block = "127.0.0.1/32" - description = "localhost" - } - - allowed_ip_ranges { - cidr_block = "192.168.0.1/32" - description = "description!" - } - - backup_retention_period = "6d" + allowed_ip_ranges = [ + { + cidr_block = "127.0.0.1/32" + description = "localhost" + }, + { + cidr_block = "192.168.0.1/32" + description = "description!" + }, + ] + + backup_retention_period = "8d" csp_auth = false - instance_type = "azure:Standard_D2s_v3" - + instance_type = "aws:c6i.large" // only following pg_config parameters are configurable for faraway replica // max_connections, max_locks_per_transaction, max_prepared_transactions, max_wal_senders, max_worker_processes. // it is highly recommended setting these values to be equal to or greater than the source cluster's. // Please visit [this page](https://www.enterprisedb.com/docs/biganimal/latest/using_cluster/managing_replicas/#modify-a-faraway-replica)for best practices. - pg_config { - name = "max_connections" - value = "100" - } - - pg_config { - name = "max_locks_per_transaction" - value = "64" - } - pg_config { - name = "max_prepared_transactions" - value = "0" - } - pg_config { - name = "max_wal_senders" - value = "10" - } - pg_config { - name = "max_worker_processes" - value = "32" - } + pg_config = [ + { + name = "max_connections" + value = "100" + }, + { + name = "max_locks_per_transaction" + value = "64" + } + ] - storage { + storage = { volume_type = "azurepremiumstorage" volume_properties = "P1" size = "4 Gi" @@ -210,6 +117,12 @@ resource "biganimal_faraway_replica" "faraway_replica" { private_networking = false region = "centralindia" + + # transparent_data_encryption = { + # key_id = + # } + + volume_snapshot_backup = false } ``` @@ -220,64 +133,67 @@ resource "biganimal_faraway_replica" "faraway_replica" { - `cluster_name` (String) Name of the faraway replica cluster. - `instance_type` (String) Instance type. For example, "azure:Standard_D2s_v3", "aws:c5.large" or "gcp:e2-highcpu-4". -- `project_id` (String) BigAnimal Project ID. - `region` (String) Region to deploy the cluster. See [Supported regions](https://www.enterprisedb.com/docs/biganimal/latest/overview/03a_region_support/) for supported regions. - `source_cluster_id` (String) Source cluster ID. -- `storage` (Block List, Min: 1) Storage. (see [below for nested schema](#nestedblock--storage)) +- `storage` (Attributes) Storage. (see [below for nested schema](#nestedatt--storage)) ### Optional -- `allowed_ip_ranges` (Block Set) Allowed IP ranges. (see [below for nested schema](#nestedblock--allowed_ip_ranges)) +- `allowed_ip_ranges` (Attributes Set) Allowed IP ranges. (see [below for nested schema](#nestedatt--allowed_ip_ranges)) - `backup_retention_period` (String) Backup retention period. For example, "7d", "2w", or "3m". -- `csp_auth` (Boolean) Is authentication handled by the cloud service provider. Available for AWS only, See [Authentication](https://www.enterprisedb.com/docs/biganimal/latest/getting_started/creating_a_cluster/#authentication) for details. -- `pg_config` (Block Set) Database configuration parameters. See [Modifying database configuration parameters](https://www.enterprisedb.com/docs/biganimal/latest/using_cluster/03_modifying_your_cluster/05_db_configuration_parameters/) for details. (see [below for nested schema](#nestedblock--pg_config)) +- `csp_auth` (Boolean) Is authentication handled by the cloud service provider. +- `pe_allowed_principal_ids` (Set of String) Cloud provider subscription/account ID, need to be specified when cluster is deployed on BigAnimal's cloud account. +- `pg_config` (Attributes Set) Database configuration parameters. (see [below for nested schema](#nestedatt--pg_config)) - `private_networking` (Boolean) Is private networking enabled. +- `project_id` (String) BigAnimal Project ID. +- `service_account_ids` (Set of String) A Google Cloud Service Account is used for logs. If you leave this blank, then you will be unable to access log details for this cluster. Required when cluster is deployed on BigAnimal's cloud account. - `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts)) +- `transparent_data_encryption` (Attributes) Transparent Data Encryption (TDE) key (see [below for nested schema](#nestedatt--transparent_data_encryption)) +- `volume_snapshot_backup` (Boolean) Enable to take a snapshot of the volume. ### Read-Only +- `cloud_provider` (String) Cloud provider. For example, "aws", "azure", "gcp" or "bah:aws", "bah:gcp". +- `cluster_architecture` (Attributes) Cluster architecture. (see [below for nested schema](#nestedatt--cluster_architecture)) - `cluster_id` (String) Cluster ID. - `cluster_type` (String) Type of the cluster. For example, "cluster" for biganimal_cluster resources, or "faraway_replica" for biganimal_faraway_replica resources. - `connection_uri` (String) Cluster connection URI. - `created_at` (String) Cluster creation time. -- `deleted_at` (String) Cluster deletion time. -- `expired_at` (String) Cluster expiry time. - `id` (String) The ID of this resource. - `logs_url` (String) The URL to find the logs of this cluster. - `metrics_url` (String) The URL to find the metrics of this cluster. -- `pgvector` (Boolean) Is pgvector extension enabled. Adds support for vector storage and vector similarity search to Postgres. +- `pg_identity` (String) PG Identity required to grant key permissions to activate the cluster. +- `pg_type` (String) Postgres type. For example, "epas", "pgextended", or "postgres". +- `pg_version` (String) Postgres version. See [Supported Postgres types and versions](https://www.enterprisedb.com/docs/biganimal/latest/overview/05_database_version_policy/#supported-postgres-types-and-versions) for supported Postgres types and versions. - `phase` (String) Current phase of the cluster. -- `post_gis` (Boolean) Is postGIS extension enabled. PostGIS extends the capabilities of the PostgreSQL relational database by adding support storing, indexing and querying geographic data. - `resizing_pvc` (List of String) Resizing PVC. +- `transparent_data_encryption_action` (String) Transparent data encryption action. - + ### Nested Schema for `storage` Required: -- `volume_properties` (String) Volume properties in accordance with the selected volume type. -- `volume_type` (String) Volume type. For Azure: "azurepremiumstorage" or "ultradisk". For AWS: "gp3", "io2", or "io2-block-express". For Google Cloud: only "pd-ssd". +- `volume_properties` (String) Volume properties. +- `volume_type` (String) Volume type. Optional: -- `iops` (String) IOPS for the selected volume. It can be set to different values depending on your volume type and properties. -- `size` (String) Size of the volume. It can be set to different values depending on your volume type and properties. -- `throughput` (String) Throughput is automatically calculated by BigAnimal based on the IOPS input. +- `iops` (String) IOPS for the selected volume. +- `size` (String) Size of the volume. +- `throughput` (String) Throughput. - + ### Nested Schema for `allowed_ip_ranges` Required: -- `cidr_block` (String) CIDR block. - -Optional: +- `cidr_block` (String) CIDR block +- `description` (String) Description of CIDR block -- `description` (String) CIDR block description. - - + ### Nested Schema for `pg_config` Required: @@ -291,4 +207,29 @@ Required: Optional: -- `create` (String) +- `create` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +- `delete` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +- `update` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + + + +### Nested Schema for `transparent_data_encryption` + +Required: + +- `key_id` (String) Transparent Data Encryption (TDE) key ID. + +Read-Only: + +- `key_name` (String) Key name. +- `status` (String) Status. + + + +### Nested Schema for `cluster_architecture` + +Read-Only: + +- `id` (String) Cluster architecture ID. For example, "single" or "ha".For Extreme High Availability clusters, please use the [biganimal_pgd](https://registry.terraform.io/providers/EnterpriseDB/biganimal/latest/docs/resources/pgd) resource. +- `name` (String) Name. +- `nodes` (Number) Node count. diff --git a/docs/resources/pgd.md b/docs/resources/pgd.md index d3134269..927e343a 100644 --- a/docs/resources/pgd.md +++ b/docs/resources/pgd.md @@ -10,7 +10,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -77,14 +77,14 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "azure" + cloud_provider_id = "bah:azure" // "bah:azure" uses BigAnimal's cloud account Azure, use "azure" for your cloud account } region = { region_id = "northeurope" @@ -94,6 +94,9 @@ resource "biganimal_pgd" "pgd_cluster" { start_day = 1 start_time = "13:00" } + # pe_allowed_principal_ids = [ + # # ex: "9334e5e6-7f47-aE61-5A4F-ee067daeEf4A" + # ] }, ] } @@ -110,7 +113,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -177,14 +180,14 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "azure" + cloud_provider_id = "bah:azure" // "bah:azure" uses BigAnimal's cloud account Azure, use "azure" for your cloud account } region = { region_id = "northeurope" @@ -194,6 +197,9 @@ resource "biganimal_pgd" "pgd_cluster" { start_day = 1 start_time = "13:00" } + # pe_allowed_principal_ids = [ + # # ex: "9334e5e6-7f47-aE61-5A4F-ee067daeEf4A" + # ] }, { allowed_ip_ranges = [ @@ -231,14 +237,14 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "azure" + cloud_provider_id = "bah:azure" // "bah:azure" uses BigAnimal's cloud account Azure, use "azure" for your cloud account } region = { region_id = "eastus" @@ -248,6 +254,9 @@ resource "biganimal_pgd" "pgd_cluster" { start_day = 2 start_time = "15:00" } + # pe_allowed_principal_ids = [ + # # ex: "9334e5e6-7f47-aE61-5A4F-ee067daeEf4A" + # ] } ] witness_groups = [ @@ -256,7 +265,7 @@ resource "biganimal_pgd" "pgd_cluster" { region_id = "canadacentral" } cloud_provider = { - cloud_provider_id = "azure" + cloud_provider_id = "bah:azure" // "bah:azure" uses BigAnimal's cloud account Azure, use "azure" for your cloud account } maintenance_window = { is_enabled = true @@ -273,13 +282,13 @@ output "password" { } ``` -## PGD Azure BigAnimal's cloud account One Data Group Example +## PGD AWS One Data Group Example ```terraform terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -328,7 +337,7 @@ resource "biganimal_pgd" "pgd_cluster" { } csp_auth = false instance_type = { - instance_type_id = "azure:Standard_D2s_v3" + instance_type_id = "aws:m5.large" } pg_config = [ { @@ -341,32 +350,32 @@ resource "biganimal_pgd" "pgd_cluster" { }, ] storage = { - volume_type = "azurepremiumstorage" - volume_properties = "P2" + volume_type = "gp3" + volume_properties = "gp3" size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "bah:azure" + cloud_provider_id = "bah:aws" // "bah:aws" uses BigAnimal's cloud account AWS, use "aws" for your cloud account } region = { - region_id = "northeurope" + region_id = "eu-central-1" } maintenance_window = { is_enabled = true - start_day = 1 + start_day = 6 start_time = "13:00" } # pe_allowed_principal_ids = [ - # # ex: "9334e5e6-7f47-aE61-5A4F-ee067daeEf4A" + # # ex: 123456789012 # ] - }, + } ] } @@ -376,13 +385,13 @@ output "password" { } ``` -## PGD Azure BigAnimal's cloud account Two Data Groups with One Witness Group Example +## PGD AWS Two Data Groups with One Witness Group Example ```terraform terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -431,7 +440,7 @@ resource "biganimal_pgd" "pgd_cluster" { } csp_auth = false instance_type = { - instance_type_id = "azure:Standard_D2s_v3" + instance_type_id = "aws:m5.large" } pg_config = [ { @@ -444,22 +453,22 @@ resource "biganimal_pgd" "pgd_cluster" { }, ] storage = { - volume_type = "azurepremiumstorage" - volume_properties = "P2" + volume_type = "gp3" + volume_properties = "gp3" size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "bah:azure" + cloud_provider_id = "bah:aws" // "bah:aws" uses BigAnimal's cloud account AWS, use "aws" for your cloud account } region = { - region_id = "northeurope" + region_id = "eu-west-1" } maintenance_window = { is_enabled = true @@ -467,7 +476,7 @@ resource "biganimal_pgd" "pgd_cluster" { start_time = "13:00" } # pe_allowed_principal_ids = [ - # # ex: "9334e5e6-7f47-aE61-5A4F-ee067daeEf4A" + # # ex: 123456789012 # ] }, { @@ -488,7 +497,7 @@ resource "biganimal_pgd" "pgd_cluster" { } csp_auth = false instance_type = { - instance_type_id = "azure:Standard_D2s_v3" + instance_type_id = "aws:m5.large" } pg_config = [ { @@ -501,22 +510,22 @@ resource "biganimal_pgd" "pgd_cluster" { }, ] storage = { - volume_type = "azurepremiumstorage" - volume_properties = "P2" + volume_type = "gp3" + volume_properties = "gp3" size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "bah:azure" + cloud_provider_id = "bah:aws" // "bah:aws" uses BigAnimal's cloud account AWS, use "aws" for your cloud account } region = { - region_id = "eastus" + region_id = "eu-west-2" } maintenance_window = { is_enabled = true @@ -524,17 +533,17 @@ resource "biganimal_pgd" "pgd_cluster" { start_time = "15:00" } # pe_allowed_principal_ids = [ - # # ex: "9334e5e6-7f47-aE61-5A4F-ee067daeEf4A" + # # ex: 123456789012 # ] } ] witness_groups = [ { region = { - region_id = "canadacentral" + region_id = "us-east-1" } cloud_provider = { - cloud_provider_id = "bah:azure" + cloud_provider_id = "bah:aws" // "bah:aws" uses BigAnimal's cloud account AWS, use "aws" for your cloud account } maintenance_window = { is_enabled = true @@ -551,13 +560,13 @@ output "password" { } ``` -## PGD AWS One Data Group Example +## PGD GCP One Data Group Example ```terraform terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -606,7 +615,7 @@ resource "biganimal_pgd" "pgd_cluster" { } csp_auth = false instance_type = { - instance_type_id = "aws:m5.large" + instance_type_id = "gcp:e2-highcpu-4" } pg_config = [ { @@ -619,197 +628,35 @@ resource "biganimal_pgd" "pgd_cluster" { }, ] storage = { - volume_type = "gp3" - volume_properties = "gp3" + volume_type = "pd-ssd" + volume_properties = "pd-ssd" size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "aws" + cloud_provider_id = "bah:gcp" // "bah:gpc" uses BigAnimal's cloud account Google Cloud provider, use "gcp" for your cloud account } region = { - region_id = "eu-central-1" + region_id = "us-east1" } maintenance_window = { is_enabled = true start_day = 6 start_time = "13:00" } - } - ] -} - -output "password" { - sensitive = true - value = resource.biganimal_pgd.pgd_cluster.password -} -``` - -## PGD AWS Two Data Groups with One Witness Group Example -```terraform -terraform { - required_providers { - biganimal = { - source = "EnterpriseDB/biganimal" - version = "0.11.0" - } - random = { - source = "hashicorp/random" - version = "3.6.0" - } - } -} - -resource "random_password" "password" { - length = 16 - special = true - override_special = "!#$%&*()-_=+[]{}<>:?" -} - -variable "cluster_name" { - type = string - description = "The name of the cluster." -} - -variable "project_id" { - type = string - description = "BigAnimal Project ID" -} + # pe_allowed_principal_ids = [ + # # ex: "development-data-123456" + # ] -resource "biganimal_pgd" "pgd_cluster" { - cluster_name = var.cluster_name - project_id = var.project_id - password = resource.random_password.password.result - pause = false - data_groups = [ - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "aws:m5.large" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "gp3" - volume_properties = "gp3" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "aws" - } - region = { - region_id = "eu-west-1" - } - maintenance_window = { - is_enabled = true - start_day = 1 - start_time = "13:00" - } - }, - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "aws:m5.large" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "gp3" - volume_properties = "gp3" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "aws" - } - region = { - region_id = "eu-west-2" - } - maintenance_window = { - is_enabled = true - start_day = 2 - start_time = "15:00" - } - } - ] - witness_groups = [ - { - region = { - region_id = "us-east-1" - } - cloud_provider = { - cloud_provider_id = "aws" - } - maintenance_window = { - is_enabled = true - start_day = 3 - start_time = "03:00" - } + # service_account_ids = [ + # # ex: "test@development-data-123456.iam.gserviceaccount.com" + # ] } ] } @@ -820,667 +667,13 @@ output "password" { } ``` -## PGD AWS BigAnimal's cloud account One Data Group Example -```terraform -terraform { - required_providers { - biganimal = { - source = "EnterpriseDB/biganimal" - version = "0.11.0" - } - random = { - source = "hashicorp/random" - version = "3.6.0" - } - } -} - -resource "random_password" "password" { - length = 16 - special = true - override_special = "!#$%&*()-_=+[]{}<>:?" -} - -variable "cluster_name" { - type = string - description = "The name of the cluster." -} - -variable "project_id" { - type = string - description = "BigAnimal Project ID" -} - -resource "biganimal_pgd" "pgd_cluster" { - cluster_name = var.cluster_name - project_id = var.project_id - password = resource.random_password.password.result - pause = false - data_groups = [ - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "aws:m5.large" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "gp3" - volume_properties = "gp3" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "bah:aws" - } - region = { - region_id = "eu-central-1" - } - maintenance_window = { - is_enabled = true - start_day = 6 - start_time = "13:00" - } - # pe_allowed_principal_ids = [ - # # ex: 123456789012 - # ] - } - ] -} - -output "password" { - sensitive = true - value = resource.biganimal_pgd.pgd_cluster.password -} -``` - -## PGD AWS BigAnimal's cloud account Two Data Groups with One Witness Group Example -```terraform -terraform { - required_providers { - biganimal = { - source = "EnterpriseDB/biganimal" - version = "0.11.0" - } - random = { - source = "hashicorp/random" - version = "3.6.0" - } - } -} - -resource "random_password" "password" { - length = 16 - special = true - override_special = "!#$%&*()-_=+[]{}<>:?" -} - -variable "cluster_name" { - type = string - description = "The name of the cluster." -} - -variable "project_id" { - type = string - description = "BigAnimal Project ID" -} - -resource "biganimal_pgd" "pgd_cluster" { - cluster_name = var.cluster_name - project_id = var.project_id - password = resource.random_password.password.result - pause = false - data_groups = [ - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "aws:m5.large" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "gp3" - volume_properties = "gp3" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "bah:aws" - } - region = { - region_id = "eu-west-1" - } - maintenance_window = { - is_enabled = true - start_day = 1 - start_time = "13:00" - } - # pe_allowed_principal_ids = [ - # # ex: 123456789012 - # ] - }, - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "aws:m5.large" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "gp3" - volume_properties = "gp3" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "bah:aws" - } - region = { - region_id = "eu-west-2" - } - maintenance_window = { - is_enabled = true - start_day = 2 - start_time = "15:00" - } - # pe_allowed_principal_ids = [ - # # ex: 123456789012 - # ] - } - ] - witness_groups = [ - { - region = { - region_id = "us-east-1" - } - cloud_provider = { - cloud_provider_id = "bah:aws" - } - maintenance_window = { - is_enabled = true - start_day = 3 - start_time = "03:00" - } - } - ] -} - -output "password" { - sensitive = true - value = resource.biganimal_pgd.pgd_cluster.password -} -``` - -## PGD GCP One Data Group Example -```terraform -terraform { - required_providers { - biganimal = { - source = "EnterpriseDB/biganimal" - version = "0.11.0" - } - random = { - source = "hashicorp/random" - version = "3.6.0" - } - } -} - -resource "random_password" "password" { - length = 16 - special = true - override_special = "!#$%&*()-_=+[]{}<>:?" -} - -variable "cluster_name" { - type = string - description = "The name of the cluster." -} - -variable "project_id" { - type = string - description = "BigAnimal Project ID" -} - -resource "biganimal_pgd" "pgd_cluster" { - cluster_name = var.cluster_name - project_id = var.project_id - password = resource.random_password.password.result - pause = false - data_groups = [ - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "gcp:e2-highcpu-4" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "pd-ssd" - volume_properties = "pd-ssd" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "gcp" - } - region = { - region_id = "us-east1" - } - maintenance_window = { - is_enabled = true - start_day = 6 - start_time = "13:00" - } - } - ] -} - -output "password" { - sensitive = true - value = resource.biganimal_pgd.pgd_cluster.password -} -``` - -## PGD GCP Two Data Groups with One Witness Group Example -```terraform -terraform { - required_providers { - biganimal = { - source = "EnterpriseDB/biganimal" - version = "0.11.0" - } - random = { - source = "hashicorp/random" - version = "3.6.0" - } - } -} - -resource "random_password" "password" { - length = 16 - special = true - override_special = "!#$%&*()-_=+[]{}<>:?" -} - -variable "cluster_name" { - type = string - description = "The name of the cluster." -} - -variable "project_id" { - type = string - description = "BigAnimal Project ID" -} - -resource "biganimal_pgd" "pgd_cluster" { - cluster_name = var.cluster_name - project_id = var.project_id - password = resource.random_password.password.result - pause = false - data_groups = [ - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "gcp:e2-highcpu-4" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "pd-ssd" - volume_properties = "pd-ssd" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "gcp" - } - region = { - region_id = "us-east1" - } - maintenance_window = { - is_enabled = true - start_day = 6 - start_time = "13:00" - } - }, - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "gcp:e2-highcpu-4" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "pd-ssd" - volume_properties = "pd-ssd" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "gcp" - } - region = { - region_id = "europe-west1" - } - maintenance_window = { - is_enabled = true - start_day = 5 - start_time = "12:00" - } - } - ] - witness_groups = [ - { - region = { - region_id = "asia-south1" - } - cloud_provider = { - cloud_provider_id = "gcp" - } - maintenance_window = { - is_enabled = true - start_day = 3 - start_time = "03:00" - } - } - ] -} - -output "password" { - sensitive = true - value = resource.biganimal_pgd.pgd_cluster.password -} -``` - -## PGD GCP BigAnimal's cloud account One Data Group Example -```terraform -terraform { - required_providers { - biganimal = { - source = "EnterpriseDB/biganimal" - version = "0.11.0" - } - random = { - source = "hashicorp/random" - version = "3.6.0" - } - } -} - -resource "random_password" "password" { - length = 16 - special = true - override_special = "!#$%&*()-_=+[]{}<>:?" -} - -variable "cluster_name" { - type = string - description = "The name of the cluster." -} - -variable "project_id" { - type = string - description = "BigAnimal Project ID" -} - -resource "biganimal_pgd" "pgd_cluster" { - cluster_name = var.cluster_name - project_id = var.project_id - password = resource.random_password.password.result - pause = false - data_groups = [ - { - allowed_ip_ranges = [ - { - cidr_block = "127.0.0.1/32" - description = "localhost" - }, - { - cidr_block = "192.168.0.1/32" - description = "description!" - }, - ] - backup_retention_period = "6d" - cluster_architecture = { - cluster_architecture_id = "pgd" - nodes = 3 - } - csp_auth = false - instance_type = { - instance_type_id = "gcp:e2-highcpu-4" - } - pg_config = [ - { - name = "application_name" - value = "created through terraform" - }, - { - name = "array_nulls" - value = "off" - }, - ] - storage = { - volume_type = "pd-ssd" - volume_properties = "pd-ssd" - size = "32 Gi" - } - pg_type = { - pg_type_id = "epas" - } - pg_version = { - pg_version_id = "15" - } - private_networking = false - cloud_provider = { - cloud_provider_id = "bah:gcp" - } - region = { - region_id = "us-east1" - } - maintenance_window = { - is_enabled = true - start_day = 6 - start_time = "13:00" - } - # pe_allowed_principal_ids = [ - # # ex: "development-data-123456" - # ] - - # service_account_ids = [ - # # ex: "test@development-data-123456.iam.gserviceaccount.com" - # ] - } - ] -} - -output "password" { - sensitive = true - value = resource.biganimal_pgd.pgd_cluster.password -} -``` - -## PGD GCP BigAnimal's cloud account Two Data Groups with One Witness Group Example +## PGD GCP Two Data Groups with One Witness Group Example ```terraform terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -1547,14 +740,14 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "bah:gcp" + cloud_provider_id = "bah:gcp" // "bah:gpc" uses BigAnimal's cloud account Google Cloud provider, use "gcp" for your cloud account } region = { region_id = "us-east1" @@ -1608,14 +801,14 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" } private_networking = false cloud_provider = { - cloud_provider_id = "bah:gcp" + cloud_provider_id = "bah:gcp" // "bah:gpc" uses BigAnimal's cloud account Google Cloud provider, use "gcp" for your cloud account } region = { region_id = "europe-west1" @@ -1640,7 +833,7 @@ resource "biganimal_pgd" "pgd_cluster" { region_id = "asia-south1" } cloud_provider = { - cloud_provider_id = "bah:gcp" + cloud_provider_id = "bah:gcp" // "bah:gpc" uses BigAnimal's cloud account Google Cloud provider, use "gcp" for your cloud account } maintenance_window = { is_enabled = true @@ -1663,7 +856,7 @@ output "password" { ### Required - `cluster_name` (String) cluster name -- `data_groups` (Attributes Set) Cluster data groups. (see [below for nested schema](#nestedatt--data_groups)) +- `data_groups` (Attributes List) Cluster data groups. (see [below for nested schema](#nestedatt--data_groups)) - `password` (String, Sensitive) Password for the user edb_admin. It must be 12 characters or more. ### Optional @@ -1672,7 +865,7 @@ output "password" { - `pause` (Boolean) Pause cluster. If true it will put the cluster on pause and set the phase as paused, if false it will resume the cluster and set the phase as healthy. Pausing a cluster allows you to save on compute costs without losing data or cluster configuration settings. While paused, clusters aren't upgraded or patched, but changes are applied when the cluster resumes. Pausing a Postgres Distributed(PGD) cluster shuts down all cluster nodes - `project_id` (String) BigAnimal Project ID. - `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts)) -- `witness_groups` (Attributes Set) (see [below for nested schema](#nestedatt--witness_groups)) +- `witness_groups` (Attributes List) (see [below for nested schema](#nestedatt--witness_groups)) ### Read-Only diff --git a/docs/resources/project.md b/docs/resources/project.md index a9bf8f1d..99b3fd29 100644 --- a/docs/resources/project.md +++ b/docs/resources/project.md @@ -20,7 +20,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" diff --git a/docs/resources/region.md b/docs/resources/region.md index 3d5186f7..b4fd6c78 100644 --- a/docs/resources/region.md +++ b/docs/resources/region.md @@ -9,7 +9,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/data-sources/biganimal_analytics_cluster/provider.tf b/examples/data-sources/biganimal_analytics_cluster/provider.tf index 5ac773cb..572fa3c5 100644 --- a/examples/data-sources/biganimal_analytics_cluster/provider.tf +++ b/examples/data-sources/biganimal_analytics_cluster/provider.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/data-sources/biganimal_aws_connection/provider.tf b/examples/data-sources/biganimal_aws_connection/provider.tf index 5ac773cb..572fa3c5 100644 --- a/examples/data-sources/biganimal_aws_connection/provider.tf +++ b/examples/data-sources/biganimal_aws_connection/provider.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/data-sources/biganimal_cluster/provider.tf b/examples/data-sources/biganimal_cluster/provider.tf index 5ac773cb..572fa3c5 100644 --- a/examples/data-sources/biganimal_cluster/provider.tf +++ b/examples/data-sources/biganimal_cluster/provider.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/data-sources/biganimal_faraway_replica/data-source.tf b/examples/data-sources/biganimal_faraway_replica/data-source.tf index f968e3f5..92d9b0af 100644 --- a/examples/data-sources/biganimal_faraway_replica/data-source.tf +++ b/examples/data-sources/biganimal_faraway_replica/data-source.tf @@ -41,14 +41,6 @@ output "csp_auth" { value = coalesce(data.biganimal_faraway_replica.this.csp_auth, false) } -output "deleted_at" { - value = data.biganimal_faraway_replica.this.deleted_at -} - -output "expired_at" { - value = data.biganimal_faraway_replica.this.expired_at -} - output "instance_type" { value = data.biganimal_faraway_replica.this.instance_type } @@ -97,6 +89,6 @@ output "storage" { value = data.biganimal_faraway_replica.this.storage } -output "storage" { +output "volume_snapshot_backup" { value = data.biganimal_faraway_replica.this.volume_snapshot_backup } diff --git a/examples/data-sources/biganimal_faraway_replica/provider.tf b/examples/data-sources/biganimal_faraway_replica/provider.tf index 5ac773cb..572fa3c5 100644 --- a/examples/data-sources/biganimal_faraway_replica/provider.tf +++ b/examples/data-sources/biganimal_faraway_replica/provider.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/data-sources/biganimal_pgd/provider.tf b/examples/data-sources/biganimal_pgd/provider.tf index 5ac773cb..572fa3c5 100644 --- a/examples/data-sources/biganimal_pgd/provider.tf +++ b/examples/data-sources/biganimal_pgd/provider.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/data-sources/biganimal_projects/provider.tf b/examples/data-sources/biganimal_projects/provider.tf index 5ac773cb..572fa3c5 100644 --- a/examples/data-sources/biganimal_projects/provider.tf +++ b/examples/data-sources/biganimal_projects/provider.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/data-sources/biganimal_region/provider.tf b/examples/data-sources/biganimal_region/provider.tf index 5ac773cb..572fa3c5 100644 --- a/examples/data-sources/biganimal_region/provider.tf +++ b/examples/data-sources/biganimal_region/provider.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/resources/biganimal_analytics_cluster/aws/resource.tf b/examples/resources/biganimal_analytics_cluster/aws/resource.tf index 4acbb74a..f8b5e123 100644 --- a/examples/resources/biganimal_analytics_cluster/aws/resource.tf +++ b/examples/resources/biganimal_analytics_cluster/aws/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -55,7 +55,7 @@ resource "biganimal_analytics_cluster" "analytics_cluster" { start_time = "00:00" } - pg_type = "epas" + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" pg_version = "16" private_networking = false cloud_provider = "bah:aws" diff --git a/examples/resources/biganimal_aws_connection/resource.tf b/examples/resources/biganimal_aws_connection/resource.tf index 8711e4dd..f6fe12a6 100644 --- a/examples/resources/biganimal_aws_connection/resource.tf +++ b/examples/resources/biganimal_aws_connection/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/resources/biganimal_azure_connection/resource.tf b/examples/resources/biganimal_azure_connection/resource.tf index 1ac21f05..bf50471a 100644 --- a/examples/resources/biganimal_azure_connection/resource.tf +++ b/examples/resources/biganimal_azure_connection/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/examples/resources/biganimal_cluster/ha/resource.tf b/examples/resources/biganimal_cluster/ha/resource.tf index 92820785..360fb33f 100644 --- a/examples/resources/biganimal_cluster/ha/resource.tf +++ b/examples/resources/biganimal_cluster/ha/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -74,13 +74,13 @@ resource "biganimal_cluster" "ha_cluster" { start_time = "03:00" } - pg_type = "epas" + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" pg_version = "15" private_networking = false cloud_provider = "bah:aws" // "bah:aws" uses BigAnimal's cloud account AWS, use "aws" for your cloud account - read_only_connections = true + read_only_connections = false region = "us-east-1" - superuser_access = true + superuser_access = false pgvector = false post_gis = false volume_snapshot_backup = false diff --git a/examples/resources/biganimal_cluster/single_node/aws/resource.tf b/examples/resources/biganimal_cluster/single_node/aws/resource.tf index a3389322..472e686a 100644 --- a/examples/resources/biganimal_cluster/single_node/aws/resource.tf +++ b/examples/resources/biganimal_cluster/single_node/aws/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -48,7 +48,7 @@ resource "biganimal_cluster" "single_node_cluster" { id = "single" nodes = 1 } - csp_auth = true + csp_auth = false instance_type = "aws:m5.large" password = resource.random_password.password.result @@ -75,13 +75,13 @@ resource "biganimal_cluster" "single_node_cluster" { start_time = "03:00" } - pg_type = "epas" + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" pg_version = "15" private_networking = false cloud_provider = "bah:aws" // "bah:aws" uses BigAnimal's cloud account AWS, use "aws" for your cloud account read_only_connections = false region = "us-east-1" - superuser_access = true + superuser_access = false pgvector = false post_gis = false volume_snapshot_backup = false diff --git a/examples/resources/biganimal_cluster/single_node/azure/resource.tf b/examples/resources/biganimal_cluster/single_node/azure/resource.tf index 479570bd..0290122a 100644 --- a/examples/resources/biganimal_cluster/single_node/azure/resource.tf +++ b/examples/resources/biganimal_cluster/single_node/azure/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -75,13 +75,13 @@ resource "biganimal_cluster" "single_node_cluster" { start_time = "03:00" } - pg_type = "epas" + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" pg_version = "15" private_networking = false cloud_provider = "bah:azure" // "bah:azure" uses BigAnimal's cloud account Azure, use "azure" for your cloud account read_only_connections = false region = "eastus2" - superuser_access = true + superuser_access = false pgvector = false post_gis = false volume_snapshot_backup = false diff --git a/examples/resources/biganimal_cluster/single_node/gcp/resource.tf b/examples/resources/biganimal_cluster/single_node/gcp/resource.tf index 155edb09..093e117c 100644 --- a/examples/resources/biganimal_cluster/single_node/gcp/resource.tf +++ b/examples/resources/biganimal_cluster/single_node/gcp/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -75,13 +75,13 @@ resource "biganimal_cluster" "single_node_cluster" { start_time = "03:00" } - pg_type = "epas" + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" pg_version = "15" private_networking = false cloud_provider = "bah:gcp" // "bah:gpc" uses BigAnimal's cloud account Google Cloud provider, use "gcp" for your cloud account read_only_connections = false region = "us-east1" - superuser_access = true + superuser_access = false pgvector = false post_gis = false volume_snapshot_backup = false diff --git a/examples/resources/biganimal_faraway_replica/aws/resource.tf b/examples/resources/biganimal_faraway_replica/aws/resource.tf index d0c46064..5ce8dc4e 100644 --- a/examples/resources/biganimal_faraway_replica/aws/resource.tf +++ b/examples/resources/biganimal_faraway_replica/aws/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" diff --git a/examples/resources/biganimal_faraway_replica/azure/resource.tf b/examples/resources/biganimal_faraway_replica/azure/resource.tf index 5b0ff6a3..2e7bcbba 100644 --- a/examples/resources/biganimal_faraway_replica/azure/resource.tf +++ b/examples/resources/biganimal_faraway_replica/azure/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" diff --git a/examples/resources/biganimal_faraway_replica/cluster_and_faraway_replica/resource.tf b/examples/resources/biganimal_faraway_replica/cluster_and_faraway_replica/resource.tf index 175e85b3..daac0ec0 100644 --- a/examples/resources/biganimal_faraway_replica/cluster_and_faraway_replica/resource.tf +++ b/examples/resources/biganimal_faraway_replica/cluster_and_faraway_replica/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -45,7 +45,7 @@ resource "biganimal_cluster" "single_node_cluster" { size = "4 Gi" } - pg_type = "epas" + pg_type = "epas" #valid values ["epas", "pgextended", "postgres]" pg_version = "15" cloud_provider = "azure" region = "eastus" diff --git a/examples/resources/biganimal_faraway_replica/gcp/resource.tf b/examples/resources/biganimal_faraway_replica/gcp/resource.tf index 72f2dba8..e6be2a9f 100644 --- a/examples/resources/biganimal_faraway_replica/gcp/resource.tf +++ b/examples/resources/biganimal_faraway_replica/gcp/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" diff --git a/examples/resources/biganimal_pgd/aws/data_group/resource.tf b/examples/resources/biganimal_pgd/aws/data_group/resource.tf index 96f13417..bcd8bc39 100644 --- a/examples/resources/biganimal_pgd/aws/data_group/resource.tf +++ b/examples/resources/biganimal_pgd/aws/data_group/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -69,7 +69,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" diff --git a/examples/resources/biganimal_pgd/aws/data_groups_with_witness_group/resource.tf b/examples/resources/biganimal_pgd/aws/data_groups_with_witness_group/resource.tf index 87884181..c50f1a9e 100644 --- a/examples/resources/biganimal_pgd/aws/data_groups_with_witness_group/resource.tf +++ b/examples/resources/biganimal_pgd/aws/data_groups_with_witness_group/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -69,7 +69,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" @@ -126,7 +126,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" diff --git a/examples/resources/biganimal_pgd/azure/data_group/resource.tf b/examples/resources/biganimal_pgd/azure/data_group/resource.tf index 2c6c7cd5..eb8950f2 100644 --- a/examples/resources/biganimal_pgd/azure/data_group/resource.tf +++ b/examples/resources/biganimal_pgd/azure/data_group/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -69,7 +69,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" diff --git a/examples/resources/biganimal_pgd/azure/data_groups_with_witness_group/resource.tf b/examples/resources/biganimal_pgd/azure/data_groups_with_witness_group/resource.tf index 3b5030b6..cc407597 100644 --- a/examples/resources/biganimal_pgd/azure/data_groups_with_witness_group/resource.tf +++ b/examples/resources/biganimal_pgd/azure/data_groups_with_witness_group/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -69,7 +69,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" @@ -126,7 +126,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" diff --git a/examples/resources/biganimal_pgd/gcp/data_group/resource.tf b/examples/resources/biganimal_pgd/gcp/data_group/resource.tf index a5a62735..fb8f76bf 100644 --- a/examples/resources/biganimal_pgd/gcp/data_group/resource.tf +++ b/examples/resources/biganimal_pgd/gcp/data_group/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -69,7 +69,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" diff --git a/examples/resources/biganimal_pgd/gcp/data_groups_with_witness_group/resource.tf b/examples/resources/biganimal_pgd/gcp/data_groups_with_witness_group/resource.tf index 684ded14..34545eb1 100644 --- a/examples/resources/biganimal_pgd/gcp/data_groups_with_witness_group/resource.tf +++ b/examples/resources/biganimal_pgd/gcp/data_groups_with_witness_group/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" @@ -69,7 +69,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" @@ -130,7 +130,7 @@ resource "biganimal_pgd" "pgd_cluster" { size = "32 Gi" } pg_type = { - pg_type_id = "epas" + pg_type_id = "epas" #valid values ["epas", "pgextended", "postgres]" } pg_version = { pg_version_id = "15" diff --git a/examples/resources/biganimal_project/resource.tf b/examples/resources/biganimal_project/resource.tf index 55a74404..63145819 100644 --- a/examples/resources/biganimal_project/resource.tf +++ b/examples/resources/biganimal_project/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } random = { source = "hashicorp/random" diff --git a/examples/resources/biganimal_region/resource.tf b/examples/resources/biganimal_region/resource.tf index 5290e020..a7abfcc6 100644 --- a/examples/resources/biganimal_region/resource.tf +++ b/examples/resources/biganimal_region/resource.tf @@ -2,7 +2,7 @@ terraform { required_providers { biganimal = { source = "EnterpriseDB/biganimal" - version = "0.11.0" + version = "1.0.0" } } } diff --git a/pkg/provider/data_source_cluster.go b/pkg/provider/data_source_cluster.go index 351fb0ce..3b5a9bef 100644 --- a/pkg/provider/data_source_cluster.go +++ b/pkg/provider/data_source_cluster.go @@ -65,7 +65,7 @@ func (c *clusterDataSource) Configure(_ context.Context, req datasource.Configur func (c *clusterDataSource) Schema(ctx context.Context, req datasource.SchemaRequest, resp *datasource.SchemaResponse) { resp.Schema = schema.Schema{ - MarkdownDescription: "The cluster resource is used to manage BigAnimal clusters. See [Creating a cluster](https://www.enterprisedb.com/docs/biganimal/latest/getting_started/creating_a_cluster/) for more details.", + MarkdownDescription: "The cluster data source describes a BigAnimal cluster. The data source requires your cluster ID.", // using Blocks for backward compatible Blocks: map[string]schema.Block{ "timeouts": timeouts.Block(ctx, @@ -74,7 +74,7 @@ func (c *clusterDataSource) Schema(ctx context.Context, req datasource.SchemaReq }, Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ - MarkdownDescription: "Cluster architecture. See [Supported cluster types](https://www.enterprisedb.com/docs/biganimal/latest/overview/02_high_availability/) for details.", + MarkdownDescription: "Data source ID.", Computed: true, }, "cluster_id": schema.StringAttribute{ @@ -386,6 +386,10 @@ func (c *clusterDataSource) Schema(ctx context.Context, req datasource.SchemaReq MarkdownDescription: "Volume snapshot.", Optional: true, }, + "transparent_data_encryption_action": schema.StringAttribute{ + MarkdownDescription: "Transparent data encryption action.", + Computed: true, + }, }, } } diff --git a/pkg/provider/data_source_fareplica.go b/pkg/provider/data_source_fareplica.go index e30bba77..35edff44 100644 --- a/pkg/provider/data_source_fareplica.go +++ b/pkg/provider/data_source_fareplica.go @@ -39,7 +39,7 @@ func (c *FAReplicaData) Configure(_ context.Context, req datasource.ConfigureReq func (c *FAReplicaData) Schema(ctx context.Context, req datasource.SchemaRequest, resp *datasource.SchemaResponse) { resp.Schema = schema.Schema{ - MarkdownDescription: "The faraway replica resource is used to manage cluster faraway-replicas on different active regions in the cloud. See [Managing replicas](https://www.enterprisedb.com/docs/biganimal/latest/using_cluster/managing_replicas/) for more details.", + MarkdownDescription: "The faraway replica cluster data source describes a BigAnimal faraway replica connected to the cluster. The data source requires faraway replica cluster ID.", Blocks: map[string]schema.Block{ "timeouts": timeouts.Block(ctx, timeouts.Opts{Create: true, Delete: true, Update: true}), diff --git a/pkg/provider/resource_cluster.go b/pkg/provider/resource_cluster.go index 7d9cc7a2..a2bba884 100644 --- a/pkg/provider/resource_cluster.go +++ b/pkg/provider/resource_cluster.go @@ -180,7 +180,7 @@ func (c *clusterResource) Schema(ctx context.Context, req resource.SchemaRequest }, Attributes: map[string]schema.Attribute{ "id": schema.StringAttribute{ - MarkdownDescription: "Cluster architecture. See [Supported cluster types](https://www.enterprisedb.com/docs/biganimal/latest/overview/02_high_availability/) for details.", + MarkdownDescription: "Resource ID of the cluster.", Computed: true, PlanModifiers: []planmodifier.String{stringplanmodifier.UseStateForUnknown()}, }, diff --git a/templates/resources/cluster.md.tmpl b/templates/resources/cluster.md.tmpl index 1af44e05..47183ef1 100644 --- a/templates/resources/cluster.md.tmpl +++ b/templates/resources/cluster.md.tmpl @@ -12,7 +12,7 @@ Please visit the [examples page](https://github.com/EnterpriseDB/terraform-provider-biganimal/tree/main/examples#biganimal_cluster-resource-examples) for more single node cluster examples on various cloud service providers. -{{ tffile "examples/resources/biganimal_cluster/single_node/resource.tf" }} +{{ tffile "examples/resources/biganimal_cluster/single_node/aws/resource.tf" }} ## Primary/Standby High Availability Cluster Example {{ tffile "examples/resources/biganimal_cluster/ha/resource.tf" }} diff --git a/templates/resources/pgd.md.tmpl b/templates/resources/pgd.md.tmpl index 8a31e12f..a492a759 100644 --- a/templates/resources/pgd.md.tmpl +++ b/templates/resources/pgd.md.tmpl @@ -14,36 +14,18 @@ ## PGD Azure Two Data Groups with One Witness Group Example {{ tffile "examples/resources/biganimal_pgd/azure/data_groups_with_witness_group/resource.tf" }} -## PGD Azure BigAnimal's cloud account One Data Group Example -{{ tffile "examples/resources/biganimal_pgd/azure/bah_data_group/resource.tf" }} - -## PGD Azure BigAnimal's cloud account Two Data Groups with One Witness Group Example -{{ tffile "examples/resources/biganimal_pgd/azure/bah_data_groups_with_witness_group/resource.tf" }} - ## PGD AWS One Data Group Example {{ tffile "examples/resources/biganimal_pgd/aws/data_group/resource.tf" }} ## PGD AWS Two Data Groups with One Witness Group Example {{ tffile "examples/resources/biganimal_pgd/aws/data_groups_with_witness_group/resource.tf" }} -## PGD AWS BigAnimal's cloud account One Data Group Example -{{ tffile "examples/resources/biganimal_pgd/aws/bah_data_group/resource.tf" }} - -## PGD AWS BigAnimal's cloud account Two Data Groups with One Witness Group Example -{{ tffile "examples/resources/biganimal_pgd/aws/bah_data_groups_with_witness_group/resource.tf" }} - ## PGD GCP One Data Group Example {{ tffile "examples/resources/biganimal_pgd/gcp/data_group/resource.tf" }} ## PGD GCP Two Data Groups with One Witness Group Example {{ tffile "examples/resources/biganimal_pgd/gcp/data_groups_with_witness_group/resource.tf" }} -## PGD GCP BigAnimal's cloud account One Data Group Example -{{ tffile "examples/resources/biganimal_pgd/gcp/bah_data_group/resource.tf" }} - -## PGD GCP BigAnimal's cloud account Two Data Groups with One Witness Group Example -{{ tffile "examples/resources/biganimal_pgd/gcp/bah_data_groups_with_witness_group/resource.tf" }} - {{ .SchemaMarkdown | trimspace }} {{- if .HasImport }}