about summary refs log tree commit diff
path: root/ops/github/main.tf
blob: 91f58cbc6d6c5fa75c8e058ba9dbd5539477882a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
locals {
  terraform_service_account = "terraform@fcuny-homelab.iam.gserviceaccount.com"
}

provider "google" {
  alias = "impersonation"
  scopes = [
    "https://www.googleapis.com/auth/cloud-platform",
    "https://www.googleapis.com/auth/userinfo.email",
  ]
}

data "google_service_account_access_token" "default" {
  provider               = google.impersonation
  target_service_account = local.terraform_service_account
  scopes                 = ["userinfo-email", "cloud-platform"]
  lifetime               = "1200s"
}

provider "google" {
  project         = "fcuny-homelab"
  region          = "us-west1"
  zone            = "us-west1-c"
  access_token    = data.google_service_account_access_token.default.access_token
  request_timeout = "60s"
}

terraform {
  required_providers {
    github = {
      source  = "integrations/github"
      version = "~> 4.0"
    }
  }

  backend "gcs" {
    bucket                      = "world-tf-state"
    prefix                      = "github/state"
    impersonate_service_account = "terraform@fcuny-homelab.iam.gserviceaccount.com"
  }
}

# Configure the GitHub Provider. The environment variable
# `GITHUB_TOKEN` needs to be set.
provider "github" {
  owner = "fcuny"
}