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)
}