Terraform module for deploying Materialize on Google Cloud Platform (GCP) with all required infrastructure components.
This module sets up:
- GKE cluster for Materialize workloads
- Cloud SQL PostgreSQL instance for metadata storage
- Cloud Storage bucket for persistence
- Required networking and security configurations
- Service accounts with proper IAM permissions
Warning This is provided on a best-effort basis and Materialize cannot offer support for this module.
The module has been tested with:
- GKE version 1.28
- PostgreSQL 15
- Materialize Operator v0.1.0
Name | Version |
---|---|
terraform | >= 1.0 |
>= 6.0 | |
helm | ~> 2.0 |
kubernetes | ~> 2.0 |
Name | Version |
---|---|
6.16.0 |
Name | Source | Version |
---|---|---|
database | ./modules/database | n/a |
gke | ./modules/gke | n/a |
operator | github.com/MaterializeInc/terraform-helm-materialize | v0.1.0 |
storage | ./modules/storage | n/a |
Name | Type |
---|---|
google_client_config.current | data source |
google_client_config.default | data source |
Name | Description | Type | Default | Required |
---|---|---|---|---|
database_config | Cloud SQL configuration | object({ |
n/a | yes |
gke_config | GKE cluster configuration | object({ |
{ |
no |
helm_values | Values to pass to the Helm chart | any |
{} |
no |
install_materialize_operator | Whether to install the Materialize operator | bool |
false |
no |
labels | Labels to apply to all resources | map(string) |
{} |
no |
materialize_instances | Configuration for Materialize instances | list(object({ |
[] |
no |
namespace | Kubernetes namespace for Materialize | string |
"materialize" |
no |
network_config | Network configuration for the GKE cluster | object({ |
{ |
no |
operator_namespace | Namespace for the Materialize operator | string |
"materialize" |
no |
operator_version | Version of the Materialize operator to install | string |
"v25.1.0-beta.1" |
no |
orchestratord_version | Version of the Materialize orchestrator to install | string |
"v0.130.1" |
no |
prefix | Prefix to be used for resource names | string |
"materialize" |
no |
project_id | The ID of the project where resources will be created | string |
n/a | yes |
region | The region where resources will be created | string |
"us-central1" |
no |
Name | Description |
---|---|
connection_strings | Formatted connection strings for Materialize |
database | Cloud SQL instance details |
gke_cluster | GKE cluster details |
operator | Materialize operator details |
service_accounts | Service account details |
storage | GCS bucket details |