Skip to content
This repository was archived by the owner on Mar 29, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Contribution Guidelines

<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
relative linking correctly.
-->

Contributions to this Module are very welcome! We follow a fairly standard [pull request process](
https://help.github.com/articles/about-pull-requests/) for contributions, subject to the following guidelines:

Expand Down
14 changes: 9 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@

# Cloud SQL Modules

<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
relative linking correctly.
-->

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missed links:

  • cloud-sql module reference in the section listing out the "primary modules"
  • Gruntwork Philosophy link
  • Contribution Guidelines link
  • LICENSE link
  • Releases link

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ahh, love the IDEs... I seemed to have some magical IntelliJ filter in my link search. Will fix!

This repo contains modules for running relational databases such as MySQL and PostgreSQL on
[Google Cloud Platform (GCP)](https://cloud.google.com/) using [Cloud SQL](https://cloud.google.com/sql/).

Expand All @@ -25,7 +29,7 @@ This repo has the following folder structure:

The primary module is:

* [cloud-sql](/modules/cloud-sql): Deploy a Cloud SQL [MySQL](https://cloud.google.com/sql/docs/mysql/) or
* [cloud-sql](https://github.com/gruntwork-io/terraform-google-sql/tree/master/modules/cloud-sql): Deploy a Cloud SQL [MySQL](https://cloud.google.com/sql/docs/mysql/) or
[PostgreSQL](https://cloud.google.com/sql/docs/postgres/) database.

* [examples](https://github.com/gruntwork-io/terraform-google-sql/tree/master/examples): This folder contains
Expand Down Expand Up @@ -60,7 +64,7 @@ a version number bump.

## Who maintains this Module?

This Module and its Submodules are maintained by [Gruntwork](http://www.gruntwork.io/). Read the [Gruntwork Philosophy](/GRUNTWORK_PHILOSOPHY.md) document to learn more about how Gruntwork builds production grade infrastructure code. If you are looking for help or
This Module and its Submodules are maintained by [Gruntwork](http://www.gruntwork.io/). Read the [Gruntwork Philosophy](https://github.com/gruntwork-io/terraform-google-sql/blob/master/GRUNTWORK_PHILOSOPHY.md) document to learn more about how Gruntwork builds production grade infrastructure code. If you are looking for help or
commercial support, send an email to
[support@gruntwork.io](mailto:support@gruntwork.io?Subject=Google%20SQL%20Module).

Expand All @@ -75,13 +79,13 @@ Gruntwork can help with:

## How do I contribute to this Module?

Contributions are very welcome! Check out the [Contribution Guidelines](/CONTRIBUTING.md) for instructions.
Contributions are very welcome! Check out the [Contribution Guidelines](https://github.com/gruntwork-io/terraform-google-sql/blob/master/CONTRIBUTING.md) for instructions.


## How is this Module versioned?

This Module follows the principles of [Semantic Versioning](http://semver.org/). You can find each new release, along
with the changelog, in the [Releases Page](../../releases).
with the changelog, in the [Releases Page](https://github.com/gruntwork-io/terraform-google-sql/releases).

During initial development, the major version will be 0 (e.g., `0.x.y`), which indicates the code does not yet have a
stable API. Once we hit `1.0.0`, we will make every effort to maintain a backwards compatible API and use the MAJOR,
Expand All @@ -90,6 +94,6 @@ MINOR, and PATCH versions on each release to indicate any incompatibilities.

## License

Please see [LICENSE](/LICENSE) for how the code in this repo is licensed.
Please see [LICENSE](https://github.com/gruntwork-io/terraform-google-sql/blob/master/LICENSE.txt) for how the code in this repo is licensed.

Copyright &copy; 2019 Gruntwork, Inc.
2 changes: 1 addition & 1 deletion examples/client-certificate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Creating the certificate while there are other operations ongoing will result in
To run this example, you need to:

1. Install [Terraform](https://www.terraform.io/).
1. Open up `vars.tf` and set secrets at the top of the file as environment variables and fill in any other variables in
1. Open up `variables.tf` and set secrets at the top of the file as environment variables and fill in any other variables in
the file that don't have defaults.
1. `terraform init`.
1. `terraform plan`.
Expand Down
4 changes: 2 additions & 2 deletions examples/mysql-private-ip/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MySQL Cloud SQL Private IP Example

This folder contains an example of how to use the [Cloud SQL module](/modules/cloud-sql) to create a [Google Cloud SQL](https://cloud.google.com/sql/)
This folder contains an example of how to use the [Cloud SQL module](https://github.com/gruntwork-io/terraform-google-sql/tree/master/modules/cloud-sql) to create a [Google Cloud SQL](https://cloud.google.com/sql/)
[MySQL](https://cloud.google.com/sql/docs/mysql/) database instance with a [private IP address](https://cloud.google.com/sql/docs/mysql/private-ip).

## How do you run this example?
Expand All @@ -18,4 +18,4 @@ When the templates are applied, Terraform will output the IP address of the inst
and the instance path for [connecting using the Cloud SQL Proxy](https://cloud.google.com/sql/docs/mysql/connect-admin-proxy).

Note that you cannot connect to the private IP instance from outside Google Cloud Platform.
If you want to experiment with connecting from your own workstation, see the [public IP example](../mysql-public-ip)
If you want to experiment with connecting from your own workstation, see the [public IP example](https://github.com/gruntwork-io/terraform-google-sql/tree/master/examples/mysql-public-ip)
2 changes: 1 addition & 1 deletion examples/mysql-public-ip/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# MySQL Cloud SQL Public IP Example

This folder contains an example of how to use the [Cloud SQL module](/modules/cloud-sql) to create a [Google Cloud SQL](https://cloud.google.com/sql/)
This folder contains an example of how to use the [Cloud SQL module](https://github.com/gruntwork-io/terraform-google-sql/tree/master/modules/cloud-sql) to create a [Google Cloud SQL](https://cloud.google.com/sql/)
[MySQL](https://cloud.google.com/sql/docs/mysql/) database instance with a [public IP address](https://cloud.google.com/sql/docs/mysql/connect-external-app#appaccessIP).

## How do you run this example?
Expand Down
6 changes: 5 additions & 1 deletion examples/mysql-replicas/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# MySQL Cloud SQL HA Example

This folder contains an example of how to use the [Cloud SQL module](/modules/cloud-sql) to create a [High Availability](https://cloud.google.com/sql/docs/mysql/configure-ha) [Google Cloud SQL](https://cloud.google.com/sql/)
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
relative linking correctly.
-->

This folder contains an example of how to use the [Cloud SQL module](https://github.com/gruntwork-io/terraform-google-sql/tree/master/modules/cloud-sql) to create a [High Availability](https://cloud.google.com/sql/docs/mysql/configure-ha) [Google Cloud SQL](https://cloud.google.com/sql/)
[MySQL](https://cloud.google.com/sql/docs/mysql/) database cluster with a [public IP](https://cloud.google.com/sql/docs/mysql/connect-external-app#appaccessIP) and failover and [read replicas](https://cloud.google.com/sql/docs/mysql/replication/).

## How do you run this example?
Expand Down
8 changes: 6 additions & 2 deletions examples/postgres-private-ip/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# PostgreSQL Cloud SQL Private IP Example

This folder contains an example of how to use the [Cloud SQL module](/modules/cloud-sql) to create a [Google Cloud SQL](https://cloud.google.com/sql/)
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
relative linking correctly.
-->

This folder contains an example of how to use the [Cloud SQL module](https://github.com/gruntwork-io/terraform-google-sql/tree/master/modules/cloud-sql) to create a [Google Cloud SQL](https://cloud.google.com/sql/)
[PostgreSQL](https://cloud.google.com/sql/docs/postgres/) database instance with a [private IP address](https://cloud.google.com/sql/docs/postgres/private-ip).

## How do you run this example?
Expand All @@ -18,4 +22,4 @@ When the templates are applied, Terraform will output the IP address of the inst
and the instance path for [connecting using the Cloud SQL Proxy](https://cloud.google.com/sql/docs/postgres/sql-proxy).

Note that you cannot connect to the private IP instance from outside Google Cloud Platform.
If you want to experiment with connecting from your own workstation, see the [public IP example](../postgres-public-ip)
If you want to experiment with connecting from your own workstation, see the [public IP example](https://github.com/gruntwork-io/terraform-google-sql/tree/master/examples/postgres-public-ip)
6 changes: 5 additions & 1 deletion examples/postgres-public-ip/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# PostgreSQL Cloud SQL Public IP Example

This folder contains an example of how to use the [Cloud SQL module](/modules/cloud-sql) to create a [Google Cloud SQL](https://cloud.google.com/sql/)
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
relative linking correctly.
-->

This folder contains an example of how to use the [Cloud SQL module](https://github.com/gruntwork-io/terraform-google-sql/tree/master/modules/cloud-sql) to create a [Google Cloud SQL](https://cloud.google.com/sql/)
[PostgreSQL](https://cloud.google.com/sql/docs/postgres/) database instance with a [public IP address](https://cloud.google.com/sql/docs/postgres/connect-external-app#appaccessIP).

## How do you run this example?
Expand Down
6 changes: 5 additions & 1 deletion examples/postgres-replicas/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# PostgreSQL Cloud SQL HA Example

This folder contains an example of how to use the [Cloud SQL module](/modules/cloud-sql) to create a [High Availability](https://cloud.google.com/sql/docs/postgres/high-availability) [Google Cloud SQL](https://cloud.google.com/sql/)
<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
relative linking correctly.
-->

This folder contains an example of how to use the [Cloud SQL module](https://github.com/gruntwork-io/terraform-google-sql/tree/master/modules/cloud-sql) to create a [High Availability](https://cloud.google.com/sql/docs/postgres/high-availability) [Google Cloud SQL](https://cloud.google.com/sql/)
[PostgreSQL](https://cloud.google.com/sql/docs/postgres/) database cluster with a [public IP address](https://cloud.google.com/sql/docs/postgres/connect-external-app#appaccessIP) and a [read replica](https://cloud.google.com/sql/docs/postgres/replication/).

## How do you run this example?
Expand Down
10 changes: 7 additions & 3 deletions modules/cloud-sql/README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
# Cloud SQL Module

<!-- NOTE: We use absolute linking here instead of relative linking, because the terraform registry does not support
relative linking correctly.
-->

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missed links:

  • examples folder link
  • variables.tf link
  • outputs.tf link

This module creates a [Google Cloud SQL](https://cloud.google.com/sql/) cluster.
The cluster is managed by Google, automating backups, replication, patches, and updates.

This module helps you run [MySQL](https://cloud.google.com/sql/docs/mysql/) and [PostgreSQL](https://cloud.google.com/sql/docs/postgres/) databases in [Google Cloud](https://cloud.google.com/).

## How do you use this module?

See the [examples](/examples) folder for an example.
See the [examples](https://github.com/gruntwork-io/terraform-google-sql/tree/master/examples) folder for an example.

## How do you configure this module?

This module allows you to configure a number of parameters, such as high availability, backup windows, maintenance window and replicas.
For a list of all available variables and their descriptions, see [variables.tf](./variables.tf).
For a list of all available variables and their descriptions, see [variables.tf](https://github.com/gruntwork-io/terraform-google-sql/blob/master/modules/cloud-sql/variables.tf).

## How do you connect to the database?

Expand Down Expand Up @@ -92,7 +96,7 @@ See https://github.com/terraform-providers/terraform-provider-google/issues/2446

Retrieving and outputting distinct values from list of maps is not possible with resources using `count` prior to `terraform 0.12`.
Instead we have to output the values JSON encoded - for example `read_replica_server_ca_certs`. For full details of the outputs and
their format, see [outputs.tf](./outputs.tf).
their format, see [outputs.tf](https://github.com/gruntwork-io/terraform-google-sql/blob/master/modules/cloud-sql/outputs.tf).

See https://github.com/hashicorp/terraform/issues/17048

Expand Down