terraform {
  backend "s3" {
    bucket                  = "dev-dna-tfstate"
    key                     = "Delphi/Staging/gcp/bigtable_scaler.tfstate"
    region                  = "us-east-1"
    shared_credentials_file = "~/.aws/credentials"
    profile                 = "gdb-delphi-dev"
    dynamodb_table          = "terraform-state-lock-dynamodb"
  }
  required_providers {
    google = {
      source = "hashicorp/google"
    }
    archive = {
      source  = "hashicorp/archive"
      version = "2.2.0"
    }
  }
}

locals {
  region_zones  = formatlist("%s-%s", var.gcp_region_id, ["a", "b", "c", "f"])
  lambda_bucket = "${join("-", reverse(split("-", var.gcp_project_id)))}-lambda-artifacts"
}

provider "google" {
  credentials = file("~/.gcp/gdb-${var.gcp_project_id}.json")
  project     = var.gcp_project_id
  zone        = local.region_zones[0]
}

module "function" {
  source = "../module"

  project_id        = var.gcp_project_id
  instance_id       = var.instance_id
  cluster_id        = var.cluster_id
  cluster_baseline  = var.cluster_baseline
  cluster_max_size  = var.cluster_max_size
  lambda_bucket     = local.lambda_bucket
  scheduler_enabled = var.scheduler_enabled
  scale_schedule    = var.scale_schedule
  baseline_schedule = var.baseline_schedule
  scale_factor      = var.scale_factor
  slack_channel_id  = var.slack_channel_id
  slack_secret      = var.slack_secret
}


