{"id":21081580,"url":"https://github.com/particuleio/terraform-scaleway-database","last_synced_at":"2025-05-16T08:33:06.806Z","repository":{"id":38234999,"uuid":"416754757","full_name":"particuleio/terraform-scaleway-database","owner":"particuleio","description":"Terraform module to create and configure Scaleway Databases. Create RDB instances with managed databases, user creation and ACLs support.","archived":false,"fork":false,"pushed_at":"2025-03-11T20:08:06.000Z","size":104,"stargazers_count":5,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-03T22:51:14.900Z","etag":null,"topics":["cloud","database","iac","infrastructure-as-code","mysql","postgresql","scaleway","scaleway-rdb","sql","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/particuleio/database/scaleway/","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/particuleio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-13T13:28:07.000Z","updated_at":"2025-01-20T01:54:13.000Z","dependencies_parsed_at":"2023-02-17T00:31:37.714Z","dependency_job_id":"48c53cee-4b00-41b4-a62e-626822d545ab","html_url":"https://github.com/particuleio/terraform-scaleway-database","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/particuleio%2Fterraform-scaleway-database","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/particuleio%2Fterraform-scaleway-database/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/particuleio%2Fterraform-scaleway-database/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/particuleio%2Fterraform-scaleway-database/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/particuleio","download_url":"https://codeload.github.com/particuleio/terraform-scaleway-database/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254496415,"owners_count":22080706,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","database","iac","infrastructure-as-code","mysql","postgresql","scaleway","scaleway-rdb","sql","terraform","terraform-module"],"created_at":"2024-11-19T20:09:39.066Z","updated_at":"2025-05-16T08:33:01.799Z","avatar_url":"https://github.com/particuleio.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-scaleway-database\n\n[![terraform-scaleway-database](https://github.com/particuleio/terraform-scaleway-database/actions/workflows/terraform.yml/badge.svg?branch=main)](https://github.com/particuleio/terraform-scaleway-database/actions/workflows/terraform.yml)\n\nTerraform module to create Databases using Scaleway's [Managed Databases][scw-db].\n\nCreate and configure the following:\n- Managed RDB Instances\n- Database Users\n- Database ACLs\n- Managed Databases\n\n[scw-db]: https://www.scaleway.com/en/database/\n\n## Usage\n\nThe module takes a `map` of objects for each database to configure.\n\n```hcl\n# example with a single RDB instance configured with 2 managed databases\nmodule \"database\" {\n  source  = \"particuleio/database/scaleway\"\n  version = \"1.2.0\"  # use latest version\n\n  databases = {\n    main = {\n      node_type      = \"DB-DEV-S\"\n      engine         = \"PostgreSQL-11\"\n\n      dbs = [\"default\", \"core\"]\n    }\n  }\n}\n```\n\nThe `locals.tf` defines default values that are merged and overriden\nby each `database` definition in the `databases` `map`.\n\n### Examples\n\nMultiple examples are available in the [`./examples`](./examples) directory.\n\n- [A simple database setup](./examples/simple/)\n- [Multiple database creation with users](./examples/users/)\n- [Database creation with ACL support](./examples/acls/)\n- [RDB instance with multiple databases](./examples/databases/)\n\nBelow is an advanced usage of this module.\n\n```hcl\nmodule \"database\" {\n  source  = \"particuleio/database/scaleway\"\n  version = \"1.2.0\"  # use latest version\n\n  databases = {\n    main = {\n      name      = \"database-with-multiple-dbs\"\n      node_type = \"DB-DEV-S\"\n      engine    = \"PostgreSQL-11\"\n\n      dbs = [\"default\", \"admin\", \"internal\"]\n\n      acls = [\n        {\n          ip          = \"1.2.3.4/32\"\n          description = \"Specific ACL 1\"\n        },\n        {\n          ip          = \"192.168.1.20/28\"\n          description = \"Specific ACL 2\"\n        },\n      ]\n\n      users = [\n        {\n          username        = \"application\"\n          password_length = 16\n          is_admin        = false\n        },\n        {\n          username        = \"administrator\"\n          password_length = 24\n          is_admin        = true\n        },\n      ]\n    }\n    metrics = {  # second RDB instance definition\n      name      = \"simple-database\"\n      node_type = \"DB-DEV-S\"\n      engine    = \"PostgreSQL-11\"\n    }\n  }\n}\n```\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.13 |\n| \u003ca name=\"requirement_scaleway\"\u003e\u003c/a\u003e [scaleway](#requirement\\_scaleway) | ~\u003e 2.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | n/a |\n| \u003ca name=\"provider_scaleway\"\u003e\u003c/a\u003e [scaleway](#provider\\_scaleway) | ~\u003e 2.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [random_password.this](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [scaleway_rdb_acl.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/rdb_acl) | resource |\n| [scaleway_rdb_database.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/rdb_database) | resource |\n| [scaleway_rdb_instance.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/rdb_instance) | resource |\n| [scaleway_rdb_user.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/rdb_user) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_databases\"\u003e\u003c/a\u003e [databases](#input\\_databases) | The scaleway Database configurations | `map(any)` | n/a | yes |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | Region to be used with the scaleway provider | `string` | `\"fr-par\"` | no |\n| \u003ca name=\"input_zone\"\u003e\u003c/a\u003e [zone](#input\\_zone) | Zone to be used with the scaleway provider | `string` | `\"fr-par-1\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_databases\"\u003e\u003c/a\u003e [databases](#output\\_databases) | A map of each created scaleway\\_rdb\\_instance with each `var.databases` definition as key |\n| \u003ca name=\"output_instances\"\u003e\u003c/a\u003e [instances](#output\\_instances) | A map of each created scaleway\\_rdb\\_instance with each `var.databases` definition as key |\n| \u003ca name=\"output_this\"\u003e\u003c/a\u003e [this](#output\\_this) | A map of the scaleway\\_rdb\\_database (including their users) and scaleway\\_rdb\\_instance resources grouped by databases definitions |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparticuleio%2Fterraform-scaleway-database","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparticuleio%2Fterraform-scaleway-database","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparticuleio%2Fterraform-scaleway-database/lists"}