Manage Naterialize resources with the Materialize provider
The Materialize provider allows you to create several resource types in your
region. Resources correspond to Materialize objects and are configured
with the resource
block in your Terraform configuration file.
Create Materialize cluster
For example, to create a new cluster, you would use the materialize_cluster
resource:
resource "materialize_cluster" "example_cluster" {
name = "cluster"
}
You can find reference documentation for all the resources available in the Materialize provider in the Terraform registry.
Retrieve Materialize data sources
The Materialize provider supports several data source types to retrieve
information about your existing Materialize resources. Data sources can return
information about objects defined outside of Terraform and can be used as
variables in your configuration with the data
block.
For example, to return information about your current clusters, you would use the
materialize_cluster
data source:
data "materialize_cluster" "all" {}
This data source returns all cluster names and IDs which you can use as variables for new resources.
Import Materialize objects into Terraform state
Terraform allows you to import infrastructure into your current Terraform state
file. Importing objects allows you to keep track of infrastructure created
outside of the Terraform workflow. The terraform import
command lets you
specify objects you want Terraform to manage and reduces potential configuration
drift. Importing objects allows you to keep related infrastructure in a
Terraform state file and let Terraform manage the configuration.
For instance, if you created a cluster in Materialize and wanted to manage that resource with Terraform, you would add create resource block for the resource you want to import in your Terraform configuration:
resource "materialize_cluster.<cluster_name> {
name = <cluster_name>
}
Next, you would use the terraform import
command with the cluster name and ID
to associate the object with the resource block:
terraform import materialize_cluster.<cluster_name> <CLUSTER_ID>
Terraform will then manage the cluster and you can use Terraform as the source of truth for your Materialize object.