Terraform-01
I've started using Terraform to manage Snowflake infrastructure at work.
I'm still a noobie but I've got a workflow that I think makes sense...
Here's the directory setup for a simple project with some databases, schemas, and tables to manage.
terraform-dir ├── .auto.tfvars ├── databases.tf ├── main.tf ├── schemas.tf ├── tables.tf ├── .terraform │ └── providers │ └── registry.terraform.io │ └── chanzuckerberg │ └── snowflake │ ├── 0.25.6 │ │ └── linux_amd64 │ │ ├── LICENSE │ │ ├── README.md │ │ └── terraform-provider-snowflake_v0.25.6 │ └── 0.31.0 │ └── linux_amd64 │ ├── CHANGELOG.md │ ├── LICENSE │ ├── README.md │ └── terraform-provider-snowflake_v0.31.0 ├── .terraform.lock.hcl ├── terraform.tfstate
We start with the main.tf
and I have in here providers and variables
terraform { required_providers { snowflake = { source = "chanzuckerberg/snowflake" version = "0.31.0" } } } provider "snowflake" { // required username = "SNOWFLAKE_USER" account = "URL" password = var.snowflake_password role = "ROLE WITH DBA LIKE PERMISSIONS" } variable "snowflake_password" { type = string sensitive = true } variable "public" { type = map(any) } variable "environment" { type = map(any) } variable "roles" { type = map(any) }