Skip to content

Commit c0d1194

Browse files
Merge branch 'main' into dependabot/github_actions/actions/setup-go-6.0.0
2 parents fbbaa24 + d423839 commit c0d1194

File tree

117 files changed

+3683
-1576
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+3683
-1576
lines changed

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040

4141
# Initializes the CodeQL tools for scanning.
4242
- name: Initialize CodeQL
43-
uses: github/codeql-action/init@v3
43+
uses: github/codeql-action/init@v4
4444
with:
4545
languages: ${{ matrix.language }}
4646
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -51,7 +51,7 @@ jobs:
5151
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
5252
# If this step fails, then you should remove it and run the build manually (see below)
5353
- name: Autobuild
54-
uses: github/codeql-action/autobuild@v3
54+
uses: github/codeql-action/autobuild@v4
5555

5656
# ℹ️ Command-line programs to run using the OS shell.
5757
# 📚 https://git.io/JvXDl
@@ -65,4 +65,4 @@ jobs:
6565
# make release
6666

6767
- name: Perform CodeQL Analysis
68-
uses: github/codeql-action/analyze@v3
68+
uses: github/codeql-action/analyze@v4

.github/workflows/terraform_provider_main.yml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
runs-on: ubuntu-latest
3939
steps:
4040
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
41-
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
41+
- uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
4242
continue-on-error: true
4343
id: cache-terraform-plugin-dir
4444
timeout-minutes: 2
@@ -62,15 +62,15 @@ jobs:
6262
runs-on: ubuntu-latest
6363
steps:
6464
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
65-
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
65+
- uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
6666
continue-on-error: true
6767
id: cache-terraform-providers-schema
6868
timeout-minutes: 2
6969
with:
7070
path: terraform-providers-schema
7171
key: ${{ runner.os }}-terraform-providers-schema-${{ hashFiles('go.sum') }}-${{ hashFiles('provider/**') }}
7272
- if: steps.cache-terraform-providers-schema.outputs.cache-hit != 'true' || steps.cache-terraform-providers-schema.outcome == 'failure'
73-
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
73+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
7474
timeout-minutes: 2
7575
with:
7676
path: terraform-plugin-dir
@@ -179,6 +179,17 @@ jobs:
179179
go-version-file: go.mod
180180
- run: EXECUTE_TESTS=true make testacc TESTARGS='-run="TestAcc(DataSource|Resource)RedisCloud(TransitGatewayAttachment|PaymentMethod).*"'
181181

182+
go_unit_test:
183+
name: go unit test
184+
needs: [go_build]
185+
runs-on: ubuntu-latest
186+
steps:
187+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
188+
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0
189+
with:
190+
go-version-file: go.mod
191+
- run: go test ./... -run="^TestUnit" # Runs tests starting with TestUnit
192+
182193
tfproviderlint:
183194
name: tfproviderlint
184195
needs: [go_build]

.github/workflows/terraform_provider_pr.yml

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
runs-on: ubuntu-latest
3939
steps:
4040
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
41-
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
41+
- uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
4242
continue-on-error: true
4343
id: cache-terraform-plugin-dir
4444
timeout-minutes: 2
@@ -62,15 +62,15 @@ jobs:
6262
runs-on: ubuntu-latest
6363
steps:
6464
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
65-
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
65+
- uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
6666
continue-on-error: true
6767
id: cache-terraform-providers-schema
6868
timeout-minutes: 2
6969
with:
7070
path: terraform-providers-schema
7171
key: ${{ runner.os }}-terraform-providers-schema-${{ hashFiles('go.sum') }}-${{ hashFiles('provider/**') }}
7272
- if: steps.cache-terraform-providers-schema.outputs.cache-hit != 'true' || steps.cache-terraform-providers-schema.outcome == 'failure'
73-
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
73+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
7474
timeout-minutes: 2
7575
with:
7676
path: terraform-plugin-dir
@@ -113,7 +113,6 @@ jobs:
113113
go-version-file: go.mod
114114
- run: EXECUTE_TESTS=true make testacc TESTARGS='-run="TestAccResourceRedisCloudActiveActiveDatabase_CRUDI"'
115115

116-
117116
go_test_smoke_essentials_sub:
118117
name: go test smoke essentials sub
119118
needs: [go_build]
@@ -183,6 +182,28 @@ jobs:
183182
- run: EXECUTE_TESTS=true make testacc TESTARGS='-run="TestAccResourceRedisCloudPrivateLink_CRUDI"'
184183

185184

185+
go_test_block_public_endpoints:
186+
name: go test smoke public endpoints
187+
needs: [ go_build ]
188+
runs-on: ubuntu-latest
189+
steps:
190+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
191+
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0
192+
with:
193+
go-version-file: go.mod
194+
- run: EXECUTE_TESTS=true make testacc TESTARGS='-run="TestAcc(RedisCloudProDatabaseBlockPublicEndpoints|ActiveActiveSubscriptionDatabaseBlockPublicEndpoints)"'
195+
196+
go_unit_test:
197+
name: go unit test
198+
needs: [go_build]
199+
runs-on: ubuntu-latest
200+
steps:
201+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
202+
- uses: actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00 # v6.0.0
203+
with:
204+
go-version-file: go.mod
205+
- run: go test ./... -run="^TestUnit" # Runs tests starting with TestUnit
206+
186207
tfproviderlint:
187208
name: tfproviderlint
188209
needs: [go_build]

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,13 @@ website/node_modules
3030
website/vendor
3131
vendor
3232
.vscode/
33+
.claude/
34+
CLAUDE.md
3335

3436
# Test exclusions
3537
!command/test-fixtures/**/*.tfstate
3638
!command/test-fixtures/**/.terraform/
3739

3840
# Keep windows files with windows line endings
3941
*.winfile eol=crlf
42+
.claude

CHANGELOG.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,54 @@
33
All notable changes to this project will be documented in this file.
44
See updating [Changelog example here](https://keepachangelog.com/en/1.0.0/)
55

6+
# 2.7.0 (22nd October 2025)
7+
8+
## Added:
9+
- Add auto_minor_version_upgrade field to Pro and Active-Active database resources (default: true) to allow users to control automatic minor version upgrades. This will NOT affect existing databases.
10+
11+
## Changed:
12+
- Change Redis 8.0 modules validation from hard error to warning since modules are bundled by default in Redis 8+.
13+
14+
## Fixed:
15+
- Fix test error message patterns to match updated API error format.
16+
- Fix Redis 8 upgrade test expectation (dataset_size_in_gb: 3→1).
17+
18+
19+
# 2.6.0 (17th October 2025)
20+
21+
## Added:
22+
- Support for disabling public endpoints on databases. When public endpoints are disabled, database connections are restricted to private networks only (via VPC peering, PrivateLink, or Private Service Connect).
23+
- `source_ips` attribute added to `rediscloud_database` data source.
24+
- `global_source_ips` attribute added to `rediscloud_active_active_subscription_database` data source.
25+
26+
## Fixed:
27+
- The default value for `enable_default_user` on each region for active-active subscriptions made the global default effectively redundant. The default has been removed meaning that the global default should work correctly now.
28+
29+
# 2.5.0 (13th October 2025)
30+
31+
## Added:
32+
- Support for Redis 8 databases and upgrading. Redis 8 does not have modules so the provider should handle these gracefully.
33+
- Support for `query_performance_factor` on Redis 8.0 - Updated validation logic to allow QPF on Redis 8.0+ databases since RediSearch is bundled by default.
34+
35+
## Fixed:
36+
- Fix subscription state handling after Redis version upgrades - Added wait for subscription to become active after upgrading Redis versions to prevent "SUBSCRIPTION_NOT_ACTIVE" errors during subsequent operations.
37+
38+
## Changed:
39+
40+
- Refactor inline pro Terraform configs to external files.
41+
- Optimize test execution time by downsizing some configs
42+
43+
# 2.4.5 (9th October 2025)
44+
45+
## Added:
46+
- Support for the global_enable_default_user attribute to Active-Active database resources, allowing users to control whether the default Redis user is enabled across all regions.
47+
48+
# 2.4.4 (3rd October 2025)
49+
50+
## Changed:
51+
- Fixed AA endpoint script calling wrong method
52+
- Fixed connection flattening not aligning to schema
53+
654
# 2.4.3 (1st October 2025)
755

856
## Added:

docs/data-sources/rediscloud_active_active_subscription_database.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ data "rediscloud_active_active_subscription_database" "example" {
4949
* `external_endpoint_for_oss_cluster_api` - Use the external endpoint for open-source (OSS) Cluster API.
5050
* `enable_tls` - Enable TLS for database.
5151
* `tls_certificate` - TLS certificate used for authentication.
52+
* `global_source_ips` - Set of CIDR addresses to allow access to the database.
5253
* `data_eviction` - The data items eviction policy.
5354
* `global_modules` - A list of modules to be enabled on all deployments of this database.
5455
* `public_endpoint` - Public endpoint to access the database.

docs/data-sources/rediscloud_database.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ data "rediscloud_database" "example" {
6363
* `private_endpoint` - Private endpoint to access the database
6464
* `enable_tls` - Enable TLS for database, default is `false`
6565
* `enable_default_user` - When `true` enables connecting to the database with the default user. Default `true`.
66+
* `source_ips` - Set of CIDR addresses to allow access to the database.
6667
* `latest_backup_status` - A latest_backup_status object, documented below.
6768
* `latest_import_status` - A latest_import_status object, documented below.
6869
* `tags` - A string/string map of all Tags associated with this database.

docs/resources/rediscloud_active_active_subscription.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ The following arguments are supported:
5959
* `name` - (Required) A meaningful name to identify the subscription
6060
* `payment_method` - (Optional) The payment method for the requested subscription, (either `credit-card` or `marketplace`). Must not be set for direct contracts. If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **(Changes to) this attribute are ignored after creation.**
6161
* `payment_method_id` - (Optional) A valid payment method pre-defined in the current account. This value is __Optional__ for AWS/GCP Marketplace accounts, but __Required__ for all other account types
62+
* `public_endpoint_access` - (Optional) Allow public access to databases within this subscription. When set to `false`, database access is restricted to private IP ranges only. Default: `true`.
6263
* `cloud_provider` - (Optional) The cloud provider to use with the subscription, (either `AWS` or `GCP`). Default: ‘AWS’. **Modifying this attribute will force creation of a new resource.**
6364
* `redis_version` - (Optional) The Redis version of the databases in the subscription. If omitted, the Redis version will be the default. **Deprecated: This attribute is deprecated on the subscription level. Please specify `redis_version` on databases directly instead.**
6465
* `creation_plan` - (Required) A creation plan object, documented below. Ignored after creation.

docs/resources/rediscloud_active_active_subscription_database.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,20 +89,21 @@ The following arguments are supported:
8989
* `subscription_id`: (Required) The ID of the Active-Active subscription to create the database in. **Modifying this attribute will force creation of a new resource.**
9090
* `name` - (Required) A meaningful name to identify the database. **Modifying this attribute will force creation of a new resource.**
9191
* `redis_version` - (Optional) The Redis version of the database. If omitted, the Redis version will be the default. **Modifying this attribute will force creation of a new resource.**
92-
* `memory_limit_in_gb` - (Optional - **Required if `dataset_size_in_gb` is unset**) Maximum memory usage for this specific database, including replication and other overhead **Deprecated in favor of `dataset_size_in_gb` - not possible to import databases with this attribute set**
92+
* `memory_limit_in_gb` - (Optional - **Required if `dataset_size_in_gb` is unset**) Maximum memory usage for this specific database, including replication and other overhead **Deprecated in favor of `dataset_size_in_gb` - not possible to import databases with this attribute set**
9393
* `dataset_size_in_gb` - (Optional - **Required if `memory_limit_in_gb` is unset**) The maximum amount of data in the dataset for this specific database is in GB
9494
* `support_oss_cluster_api` - (Optional) Support Redis open-source (OSS) Cluster API. Default: ‘false’
9595
* `external_endpoint_for_oss_cluster_api` - (Optional) Should use the external endpoint for open-source (OSS) Cluster API.
9696
Can only be enabled if OSS Cluster API support is enabled. Default: 'false'
9797
* `enable_tls` - (Optional) Use TLS for authentication. Default: ‘false’
98-
`client_ssl_certificate` - (Optional) SSL certificate to authenticate user connections, conflicts with `client_tls_certificates`
98+
* `client_ssl_certificate` - (Optional) SSL certificate to authenticate user connections, conflicts with `client_tls_certificates`
9999
* `client_tls_certificates` - (Optional) A list of TLS certificates to authenticate user connections, conflicts with `client_ssl_certificate`
100100
* `data_eviction` - (Optional) The data items eviction policy (either: 'allkeys-lru', 'allkeys-lfu', 'allkeys-random', 'volatile-lru', 'volatile-lfu', 'volatile-random', 'volatile-ttl' or 'noeviction'. Default: 'volatile-lru')
101101
* `global_data_persistence` - (Optional) Global rate of database data persistence (in persistent storage) of regions that dont override global settings. Default: 'none'
102102
* `global_password` - (Optional) Password to access the database of regions that don't override global settings. If left empty, the password will be generated automatically
103103
* `global_alert` - (Optional) A block defining Redis database alert of regions that don't override global settings, documented below, can be specified multiple times. (either: 'dataset-size', 'datasets-size', 'throughput-higher-than', 'throughput-lower-than', 'latency', 'syncsource-error', 'syncsource-lag' or 'connections-limit')
104104
* `global_modules` - (Optional) A list of modules to be enabled on all deployments of this database. Supported modules: `RedisJSON`, `RediSearch`. Ignored after database creation.
105-
* `global_source_ips` - (Optional) List of source IP addresses or subnet masks of regions that don't override global settings. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'])
105+
* `global_source_ips` - (Optional) List of source IP addresses or subnet masks that are allowed to connect to the database across all regions that don't override this setting (example: ['192.168.10.0/32', '192.168.12.0/24']). When not specified, the default behavior depends on the subscription's `public_endpoint_access` setting: if `false`, defaults to RFC1918 private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 100.64.0.0/10); if `true`, defaults to 0.0.0.0/0 (unrestricted public access)
106+
* `global_enable_default_user` - (Optional) When 'true', enables connecting to the database with the 'default' user across all regions. Default: 'true'
106107
* `global_resp_version` - (Optional) Either 'resp2' or 'resp3'. Resp version for Crdb databases within the AA database. Must be compatible with Redis version.
107108
* `port` - (Optional) TCP port on which the database is available - must be between 10000 and 19999. **Modifying this attribute will force creation of a new resource.**
108109
* `override_region` - (Optional) Override region specific configuration, documented below
@@ -113,7 +114,7 @@ The `override_region` block supports:
113114
* `name` - (Required) Region name.
114115
* `override_global_alert` - (Optional) A block defining Redis regional instance of an Active-Active database alert, documented below, can be specified multiple times
115116
* `override_global_password` - (Optional) If specified, this regional instance of an Active-Active database password will be used to access the database
116-
* `override_global_source_ips` - (Optional) List of regional instance of an Active-Active database source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )
117+
* `override_global_source_ips` - (Optional) List of source IP addresses or subnet masks that are allowed to connect to the database in this specific region, overriding the global `global_source_ips` setting (example: ['192.168.10.0/32', '192.168.12.0/24']). If not specified, the global `global_source_ips` setting applies to this region
117118
* `override_global_data_persistence` - (Optional) Regional instance of an Active-Active database data persistence rate (in persistent storage)
118119
* `remote_backup` - (Optional) Specifies the backup options for the database in this region, documented below
119120
* `enable_default_user` - (Optional) Whether the default user should be enabled or not. True by default.

docs/resources/rediscloud_subscription.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ The following arguments are supported:
7272
* `name` - (Required) A meaningful name to identify the subscription
7373
* `payment_method` (Optional) The payment method for the requested subscription, (either `credit-card` or `marketplace`). Must not be set for direct contracts. If `credit-card` is specified, `payment_method_id` must be defined. Default: 'credit-card'. **(Changes to) this attribute are ignored after creation.**
7474
* `payment_method_id` - (Optional) A valid payment method pre-defined in the current account. Only __Required__ when `payment_method` is `credit-card`.
75+
* `public_endpoint_access` - (Optional) Allow public access to databases within this subscription. When set to `false`, database access is restricted to private IP ranges only. Default: `true`.
7576
* `memory_storage` - (Optional) Memory storage preference: either ‘ram’ or a combination of ‘ram-and-flash’. Default: ‘ram’. **Modifying this attribute will force creation of a new resource.**
7677
* `redis_version` - (Optional) The Redis version of the databases in the subscription. If omitted, the Redis version will be the default. **Deprecated: This attribute is deprecated on the subscriptions level. Please specify `redis_version` on databases directly instead.**
7778
* `allowlist` - (Optional) An allowlist object, documented below

0 commit comments

Comments
 (0)