Clean code and deprecated engines for Database - #1239
Conversation
Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
Signed-off-by: mathieulaude <82038410+mathieulaude@users.noreply.github.com> Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
* add clickhouse engine Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
…lickhouse Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
There was a problem hiding this comment.
Pull request overview
This PR updates the Managed Databases surface of the provider by adding ClickHouse support, removing deprecated engines/resources (Redis, M3DB, Cassandra), and aligning documentation/examples accordingly.
Changes:
- Add/enable ClickHouse in database-related resources/data sources and acceptance test docs.
- Remove Redis/M3DB resources, data sources, templates, examples, and acceptance tests.
- Refactor/clean up code (naming, validation enums, ID field naming) and adjust generated docs.
Reviewed changes
Copilot reviewed 116 out of 122 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| templates/resources/cloud_project_database_user.md.tmpl | Remove Cassandra mention from generic database user resource docs. |
| templates/resources/cloud_project_database_redis_user.md.tmpl | Remove Redis user resource doc template. |
| templates/resources/cloud_project_database_prometheus.md.tmpl | Remove Cassandra/Redis from Prometheus engine docs list. |
| templates/resources/cloud_project_database_m3db_user.md.tmpl | Remove M3DB user resource doc template. |
| templates/resources/cloud_project_database_m3db_namespace.md.tmpl | Remove M3DB namespace resource doc template. |
| templates/resources/cloud_project_database_integration.md.tmpl | Remove M3-related integration types from docs template. |
| templates/resources/cloud_project_database_clickhouse_user.md.tmpl | Minor doc formatting fix for ClickHouse user resource template. |
| templates/resources/cloud_project_database.md.tmpl | Update plan/backup_time documentation after engine removals. |
| templates/index.md.tmpl | Update acceptance-test env var docs (ClickHouse, removals). |
| templates/data-sources/cloud_project_database_valkey_user.md.tmpl | Fix service_name attribute description. |
| templates/data-sources/cloud_project_database_user.md.tmpl | Remove Cassandra mention from generic user data source docs template. |
| templates/data-sources/cloud_project_database_redis_user.md.tmpl | Remove Redis user data source doc template. |
| templates/data-sources/cloud_project_database_prometheus.md.tmpl | Remove Cassandra/Redis from Prometheus data source docs template. |
| templates/data-sources/cloud_project_database_postgresql_user.md.tmpl | Fix service_name attribute description. |
| templates/data-sources/cloud_project_database_opensearch_user.md.tmpl | Fix service_name attribute description. |
| templates/data-sources/cloud_project_database_opensearch_pattern.md.tmpl | Fix service_name attribute description. |
| templates/data-sources/cloud_project_database_mongodb_user.md.tmpl | Fix service_name attribute description. |
| templates/data-sources/cloud_project_database_m3db_user.md.tmpl | Remove M3DB user data source doc template. |
| templates/data-sources/cloud_project_database_m3db_namespaces.md.tmpl | Remove M3DB namespaces data source doc template. |
| templates/data-sources/cloud_project_database_m3db_namespace.md.tmpl | Remove M3DB namespace data source doc template. |
| templates/data-sources/cloud_project_database_ip_restrictions.md.tmpl | Update deprecated IP restrictions data source docs template engine list. |
| templates/data-sources/cloud_project_database_database.md.tmpl | Fix service_name attribute description. |
| templates/data-sources/cloud_project_database_clickhouse_user.md.tmpl | Formatting alignment in ClickHouse user data source template. |
| templates/data-sources/cloud_project_database_certificates.md.tmpl | Remove Cassandra from certificates data source engines list. |
| ovh/resource_cloud_project_database_valkey_user.go | Fix Valkey user resource to use Valkey-specific opts/response types and naming. |
| ovh/resource_cloud_project_database_user.go | Swap Cassandra for ClickHouse in engine validation; minor naming cleanup. |
| ovh/resource_cloud_project_database_test.go | Update sweeper engine list to removed engines. |
| ovh/resource_cloud_project_database_redis_user_test.go | Remove Redis user acceptance test. |
| ovh/resource_cloud_project_database_redis_user.go | Remove Redis user resource implementation. |
| ovh/resource_cloud_project_database_prometheus.go | Remove Cassandra/Redis from Prometheus resource engine validation. |
| ovh/resource_cloud_project_database_postgresql_user.go | Rename clusterId to clusterID for consistency. |
| ovh/resource_cloud_project_database_opensearch_user.go | Rename clusterId to clusterID for consistency. |
| ovh/resource_cloud_project_database_opensearch_pattern.go | Rename IDs to ID and clusterID; log/message adjustments. |
| ovh/resource_cloud_project_database_mongodb_user.go | Use res.ID instead of res.Id. |
| ovh/resource_cloud_project_database_m3db_user_test.go | Remove M3DB user acceptance test. |
| ovh/resource_cloud_project_database_m3db_user.go | Remove M3DB user resource implementation. |
| ovh/resource_cloud_project_database_m3db_namespace_test.go | Remove M3DB namespace acceptance test. |
| ovh/resource_cloud_project_database_m3db_namespace.go | Remove M3DB namespace resource implementation. |
| ovh/resource_cloud_project_database_log_subscription.go | Add engine validation via shared engines list. |
| ovh/resource_cloud_project_database_kafka_topic.go | Rename IDs to ID and clusterID for consistency. |
| ovh/resource_cloud_project_database_kafka_schemaregistryacl.go | Rename resource funcs/types to ...ACL and use ID field. |
| ovh/resource_cloud_project_database_kafka_acl.go | Rename resource funcs/types to ...ACL and use ID field. |
| ovh/resource_cloud_project_database_ip_restriction_test.go | Remove deprecated IP restriction acceptance test. |
| ovh/resource_cloud_project_database_ip_restriction.go | Remove deprecated IP restriction resource implementation. |
| ovh/resource_cloud_project_database_integration.go | Remove M3-related integration types; rename IDs and clusterID. |
| ovh/resource_cloud_project_database_database.go | Rename IDs to ID and clusterID for consistency. |
| ovh/resource_cloud_project_database.go | Add engine validation via shared engines list; import refactor. |
| ovh/provider_test.go | Remove IP restriction precheck helper. |
| ovh/provider_new.go | Stop registering deprecated IP restrictions framework data source. |
| ovh/provider.go | Remove deprecated resources/data sources; rename Kafka ACL factory functions. |
| ovh/import_cloud_project_database_redis_user_test.go | Remove Redis user import acceptance test. |
| ovh/import_cloud_project_database_m3db_user_test.go | Remove M3DB user import acceptance test. |
| ovh/import_cloud_project_database_m3db_namespace_test.go | Remove M3DB namespace import acceptance test. |
| ovh/import_cloud_project_database_ip_restriction_test.go | Remove IP restriction import acceptance test. |
| ovh/data_cloud_project_databases.go | Add engine validation via shared engines list. |
| ovh/data_cloud_project_database_valkey_user.go | Fix Valkey user data source to use Valkey response type and clusterID. |
| ovh/data_cloud_project_database_users.go | Add engine validation via shared engines list; rename clusterID. |
| ovh/data_cloud_project_database_user.go | Swap Cassandra for ClickHouse in engine validation; rename clusterID. |
| ovh/data_cloud_project_database_redis_user_test.go | Remove Redis user data source acceptance test. |
| ovh/data_cloud_project_database_redis_user.go | Remove Redis user data source implementation. |
| ovh/data_cloud_project_database_prometheus.go | Remove Cassandra/Redis from Prometheus data source engine validation. |
| ovh/data_cloud_project_database_postgresql_user.go | Rename clusterId to clusterID for consistency. |
| ovh/data_cloud_project_database_opensearch_user.go | Rename clusterId to clusterID for consistency. |
| ovh/data_cloud_project_database_opensearch_patterns.go | Rename clusterId to clusterID for consistency. |
| ovh/data_cloud_project_database_opensearch_pattern.go | Rename clusterId to clusterID for consistency. |
| ovh/data_cloud_project_database_m3db_user_test.go | Remove M3DB user data source acceptance test. |
| ovh/data_cloud_project_database_m3db_user.go | Remove M3DB user data source implementation. |
| ovh/data_cloud_project_database_m3db_namespaces_test.go | Remove M3DB namespaces data source acceptance test. |
| ovh/data_cloud_project_database_m3db_namespaces.go | Remove M3DB namespaces data source implementation. |
| ovh/data_cloud_project_database_m3db_namespace_test.go | Remove M3DB namespace data source acceptance test. |
| ovh/data_cloud_project_database_m3db_namespace.go | Remove M3DB namespace data source implementation. |
| ovh/data_cloud_project_database_log_subscriptions.go | Add engine validation via shared engines list. |
| ovh/data_cloud_project_database_log_subscription.go | Add engine validation via shared engines list. |
| ovh/data_cloud_project_database_kafka_user_access.go | Rename userId/clusterId to userID/clusterID. |
| ovh/data_cloud_project_database_kafka_topics.go | Rename clusterId to clusterID. |
| ovh/data_cloud_project_database_kafka_topic.go | Rename clusterId to clusterID. |
| ovh/data_cloud_project_database_kafka_schemaregistryacls.go | Rename clusterId to clusterID. |
| ovh/data_cloud_project_database_kafka_schemaregistryacl.go | Rename funcs to ...ACL and update response type usage. |
| ovh/data_cloud_project_database_kafka_acls.go | Rename clusterId to clusterID. |
| ovh/data_cloud_project_database_kafka_acl.go | Use CloudProjectDatabaseKafkaACLResponse naming. |
| ovh/data_cloud_project_database_ip_restrictions_test.go | Remove deprecated IP restrictions framework DS acceptance test. |
| ovh/data_cloud_project_database_ip_restrictions.go | Remove deprecated IP restrictions framework DS implementation. |
| ovh/data_cloud_project_database_certificates.go | Remove Cassandra from certificates data source engine validation. |
| ovh/data_cloud_project_database.go | Add engine validation via shared engines list. |
| examples/resources/cloud_project_database_redis_user/example_1.tf | Remove Redis user example. |
| examples/resources/cloud_project_database_redis_user/example_2.tf | Remove Redis user password reset example. |
| examples/resources/cloud_project_database_redis_user/example_3.tf | Remove Redis user timeouts example. |
| examples/resources/cloud_project_database_m3db_user/example_1.tf | Remove M3DB user example. |
| examples/resources/cloud_project_database_m3db_user/example_2.tf | Remove M3DB user password reset example. |
| examples/resources/cloud_project_database_m3db_user/example_3.tf | Remove M3DB user timeouts example. |
| examples/resources/cloud_project_database_m3db_namespace/example_1.tf | Remove M3DB namespace example. |
| examples/resources/cloud_project_database_m3db_namespace/example_2.tf | Remove M3DB namespace timeouts example. |
| examples/resources/cloud_project_database_clickhouse_user/example_1.tf | Minor formatting fix in ClickHouse user example. |
| examples/resources/cloud_project_database_clickhouse_user/example_2.tf | Minor formatting fix in ClickHouse user example. |
| examples/resources/cloud_project_database/example_1.tf | Remove deprecated engine examples and reformat remaining examples. |
| examples/data-sources/cloud_project_database_m3db_user/example_1.tf | Remove M3DB user data source example. |
| examples/data-sources/cloud_project_database_m3db_namespaces/example_1.tf | Remove M3DB namespaces data source example. |
| examples/data-sources/cloud_project_database_m3db_namespace/example_1.tf | Remove M3DB namespace data source example. |
| docs/resources/cloud_project_database_user.md | Remove Cassandra mention from generic database user resource docs. |
| docs/resources/cloud_project_database_redis_user.md | Remove Redis user resource docs page. |
| docs/resources/cloud_project_database_prometheus.md | Remove Cassandra/Redis from Prometheus resource docs page. |
| docs/resources/cloud_project_database_m3db_user.md | Remove M3DB user resource docs page. |
| docs/resources/cloud_project_database_m3db_namespace.md | Remove M3DB namespace resource docs page. |
| docs/resources/cloud_project_database_integration.md | Remove M3-related integration types from docs page. |
| docs/resources/cloud_project_database_clickhouse_user.md | Minor doc formatting fix for ClickHouse user resource page. |
| docs/resources/cloud_project_database.md | Update plan/backup_time docs after engine removals. |
| docs/index.md | Update acceptance-test env var docs (ClickHouse, removals). |
| docs/data-sources/cloud_project_database_valkey_user.md | Fix service_name attribute description. |
| docs/data-sources/cloud_project_database_user.md | Remove Cassandra mention from generic user data source docs. |
| docs/data-sources/cloud_project_database_redis_user.md | Remove Redis user data source docs page. |
| docs/data-sources/cloud_project_database_prometheus.md | Remove Cassandra/Redis from Prometheus data source docs page. |
| docs/data-sources/cloud_project_database_postgresql_user.md | Fix service_name attribute description. |
| docs/data-sources/cloud_project_database_opensearch_user.md | Fix service_name attribute description. |
| docs/data-sources/cloud_project_database_opensearch_pattern.md | Fix service_name attribute description. |
| docs/data-sources/cloud_project_database_mongodb_user.md | Fix service_name attribute description. |
| docs/data-sources/cloud_project_database_m3db_user.md | Remove M3DB user data source docs page. |
| docs/data-sources/cloud_project_database_m3db_namespaces.md | Remove M3DB namespaces data source docs page. |
| docs/data-sources/cloud_project_database_m3db_namespace.md | Remove M3DB namespace data source docs page. |
| docs/data-sources/cloud_project_database_database.md | Fix service_name attribute description. |
| docs/data-sources/cloud_project_database_clickhouse_user.md | Formatting alignment in ClickHouse user data source docs page. |
| docs/data-sources/cloud_project_database_certificates.md | Remove Cassandra from certificates data source engines list. |
Comments suppressed due to low confidence (5)
docs/data-sources/cloud_project_database_user.md:33
ovh_cloud_project_database_userdata source validation includesclickhouse, but the documentation’s supported engine list omits it. Please addclickhouseto the list (or align validation/docs if ClickHouse shouldn’t be supported here).
* `engine` - (Required) The engine of the database cluster you want user information. To get a full list of available engine visit : [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). Available engines:
* `kafka`
* `kafkaConnect`
* `mysql`
* `grafana`
ovh/resource_cloud_project_database.go:12
- The import block now includes both the standard library
slicesandgolang.org/x/exp/slices(same package name). This will not compile due to a duplicate import name. Drop one of them (prefer stdlibslicessince go.mod targets Go 1.24), or alias one of the imports if both are required.
templates/resources/cloud_project_database_user.md.tmpl:18 - The provider schema now allows
engine = "clickhouse"forovh_cloud_project_database_user, but this documentation still only lists kafka/kafkaConnect/mysql/grafana. Please addclickhouseto the supported engines list here (and in the argument list below) so docs match the actual validation.
docs/resources/cloud_project_database_user.md:14 - The resource schema validation now accepts
engine = "clickhouse"forovh_cloud_project_database_user, but the docs don’t list ClickHouse as a supported engine. Please update the supported engine lists in this doc to includeclickhouse(or remove ClickHouse from validation if it’s not actually supported).
With this resource you can create a user and map "avnadmin" for the following database engine:
* `kafka`
* `kafkaConnect`
* `mysql`
* `grafana`
templates/data-sources/cloud_project_database_user.md.tmpl:26
- The data source code now validates
engineagainst a list that includesclickhouse, but this doc still lists only kafka/kafkaConnect/mysql/grafana. Please update the documented engine list to includeclickhouseso the docs match actual validation.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 121 out of 127 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (2)
docs/resources/cloud_project_database_user.md:15
- The provider now validates
engine = "clickhouse"forovh_cloud_project_database_user, but this documentation page doesn’t listclickhouseamong supported/available engines. Please update the engine lists so docs match actual provider behavior.
With this resource you can create a user and map "avnadmin" for the following database engine:
* `kafka`
* `kafkaConnect`
* `mysql`
* `grafana`
templates/resources/cloud_project_database_user.md.tmpl:19
- ClickHouse is now a valid engine for this resource in the provider code, but this template’s engine lists don’t mention
clickhouse. Please addclickhouseto the supported/available engine lists here to keep generated docs accurate.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 121 out of 127 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
templates/resources/cloud_project_database_user.md.tmpl:18
- The documentation template for
ovh_cloud_project_database_userdoesn’t listclickhouseas a supported engine, but the provider code now validatesengineagainst a list that includesclickhouse. Please addclickhouseto this engine list (and the earlier “map avnadmin” engine list, if applicable) to keep docs consistent with the resource behavior.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 121 out of 127 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 121 out of 127 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| var engines = []string{"clickhouse", "grafana", "kafka", "kafkaConnect", "kafkaMirrorMaker", "mongodb", "mysql", "opensearch", "postgresql", "valkey"} | ||
|
|
||
| // enginesWithoutBackupTime is the list of engines | ||
| // for which "backup_time" is not customizable | ||
| var enginesWithoutBackupTime = []string{"m3db", "grafana", "kafka", "kafkaconnect", "kafkamirrormaker", "opensearch", "m3aggregator"} | ||
| var enginesWithoutBackupTime = []string{"grafana", "kafka", "kafkaconnect", "kafkamirrormaker", "opensearch"} |
There was a problem hiding this comment.
kafkaConnectand kafkaMirrorMaker have different cases in engines and enginesWithoutBackupTime slices: this is probably not wanted
Signed-off-by: Ludwig Patte <ludwig.patte@ovhcloud.com>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [ovh](https://search.opentofu.org/provider/ovh/ovh) ([source](https://github.com/ovh/terraform-provider-ovh)) | required_provider | minor | `~> 2.16.0` → `~> 2.17.0` | --- ### Release Notes <details> <summary>ovh/terraform-provider-ovh (ovh)</summary> ### [`v2.17.0`](https://github.com/ovh/terraform-provider-ovh/blob/HEAD/CHANGELOG.md#2170-July-15-2026) [Compare Source](ovh/terraform-provider-ovh@v2.16.1...v2.17.0) ⚙️ General: - Bump `golang.org/x/crypto` from 0.51.0 to 0.52.0 ([#​1372](ovh/terraform-provider-ovh#1372)) 🧹 Cleaning: The deprecated `cassandra`, `m3db`, `m3aggregator` and `redis` database engines are no longer supported. The `ovh_cloud_project_database_ip_restriction` resource (deprecated since [#​600](ovh/terraform-provider-ovh#600) in favor of declaring IP restrictions directly on `ovh_cloud_project_database`) is also removed. - `r/ovh_cloud_project_database`: The `engine` attribute is now validated client-side against the list of supported engines (`clickhouse`, `grafana`, `kafka`, `kafkaConnect`, `kafkaMirrorMaker`, `mongodb`, `mysql`, `opensearch`, `postgresql`, `valkey`); the deprecated `cassandra`, `m3db`, `m3aggregator` and `redis` engines are no longer accepted ([#​1239](ovh/terraform-provider-ovh#1239)) - Resources removed: `ovh_cloud_project_database_m3db_namespace`, `ovh_cloud_project_database_m3db_user`, `ovh_cloud_project_database_redis_user`, `ovh_cloud_project_database_ip_restriction` ([#​1239](ovh/terraform-provider-ovh#1239)) - Datasources removed: `ovh_cloud_project_database_m3db_namespace`, `ovh_cloud_project_database_m3db_namespaces`, `ovh_cloud_project_database_m3db_user`, `ovh_cloud_project_database_redis_user`, `ovh_cloud_project_database_ip_restrictions` ([#​1239](ovh/terraform-provider-ovh#1239)) 💪 Improvements: - `r/ovh_cloud_floating_ip`, `d/ovh_cloud_floating_ip`, `d/ovh_cloud_floating_ips`, `d/ovh_cloud_additional_ip`, `d/ovh_cloud_additional_ips`, `d/ovh_cloud_ext_net_ip`, `d/ovh_cloud_ext_net_ips`, `d/ovh_cloud_public_ips`: Support `OVH_CLOUD_PROJECT_SERVICE` env var as fallback for `service_name` ([#​1380](ovh/terraform-provider-ovh#1380)) 🐜 Bug fixes: - `r/ovh_cloud_project_database`: Use the correct camelCase engine names (`kafkaConnect`, `kafkaMirrorMaker`) when determining which engines do not support `backup_time` ([#​1239](ovh/terraform-provider-ovh#1239)) - `r/ovh_cloud_project_file_storage_share_network`: Fix the API endpoint path used for share networks (`sharenetwork` → `shareNetwork`) ([#​1376](ovh/terraform-provider-ovh#1376)) ❤️ Thanks for your contributions ❤️ </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjEuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI2MS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Reviewed-on: https://git.foxden.network/FoxDen/core/pulls/117
Description
Type of change
Please delete options that are not relevant.
Checklist:
go mod vendorif I added or modifygo.modfile