Skip to content

Commit b604d7c

Browse files
mulmurimulmuri
andauthored
feat: migrate GCP (#202)
* chore: update cloudflare provider version * feat: divide core gcp * feat: divide core gcp & manage gcp * chore: cert-manager * chore: istio * feat: divide chore gcp * feat: refactor project structure --------- Co-authored-by: mulmuri <[email protected]>
1 parent 829b9d8 commit b604d7c

51 files changed

Lines changed: 2596 additions & 206 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modules/cloudflare/dns/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
resource "cloudflare_dns_record" "istio-gateway" {
1+
resource "cloudflare_dns_record" "istio-dns" {
22
zone_id = var.zone_id
33
content = var.ip_address
44
name = "*.goboolean.io"

modules/cloudflare/dns/provider.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ terraform {
22
required_providers {
33
cloudflare = {
44
source = "cloudflare/cloudflare"
5-
version = "~> 4.0"
5+
version = "~> 5.0"
66
}
77
}
88
}

modules/gcp/core/gcs.tf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
resource "google_storage_bucket" "terraform_state" {
2+
name = "${var.project_id}-tfstate"
3+
location = var.location
4+
project = var.project_id
5+
6+
versioning {
7+
enabled = true
8+
}
9+
10+
uniform_bucket_level_access = true
11+
12+
public_access_prevention = "enforced"
13+
}

modules/gcp/core/iam.tf

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
resource "google_service_account" "vault_kms_sa" {
2+
project = var.project_id
3+
account_id = "vault-kms-sa"
4+
display_name = "Vault KMS Service Account"
5+
}
6+
7+
resource "google_project_iam_custom_role" "vault_kms_custom_role" {
8+
role_id = "vaultKmsRole"
9+
title = "Vault KMS Custom Role"
10+
description = "Custom role for Vault to use KMS for auto-unseal with minimal permissions"
11+
project = var.project_id
12+
13+
permissions = [
14+
"cloudkms.cryptoKeyVersions.useToEncrypt",
15+
"cloudkms.cryptoKeyVersions.useToDecrypt",
16+
"cloudkms.cryptoKeys.get",
17+
]
18+
}

modules/gcp/core/kms.tf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
resource "google_kms_key_ring" "vault_keyring" {
2+
name = "vault-keyring"
3+
location = var.region
4+
project = var.project_id
5+
}
6+
7+
resource "google_kms_crypto_key" "vault_crypto_key" {
8+
name = "vault-key"
9+
key_ring = google_kms_key_ring.vault_keyring.id
10+
rotation_period = "7776000s" # 90d
11+
12+
depends_on = [google_kms_key_ring.vault_keyring]
13+
}

modules/gcp/core/output.tf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
output "vault_kms_keyring_name" {
2+
value = google_kms_key_ring.vault_keyring.name
3+
sensitive = true
4+
}
5+
6+
output "vault_kms_crypto_key_name" {
7+
value = google_kms_crypto_key.vault_crypto_key.name
8+
sensitive = true
9+
}
10+
11+
output "vault_kms_crypto_key_id" {
12+
value = google_kms_crypto_key.vault_crypto_key.id
13+
sensitive = true
14+
}
15+

modules/gcp/core/service.tf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
locals {
2+
services = toset([
3+
"secretmanager.googleapis.com"
4+
])
5+
}
6+
7+
resource "google_project_service" "services" {
8+
for_each = local.services
9+
10+
project = var.project_id
11+
service = each.key
12+
13+
disable_dependent_services = true
14+
disable_on_destroy = false
15+
}

modules/gcp/core/variables.tf

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
variable "project_id" {
2+
type = string
3+
}
4+
5+
variable "location" {
6+
type = string
7+
}
8+
9+
variable "region" {
10+
type = string
11+
}

modules/gcp/gke/gke.tf

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ resource "google_container_cluster" "primary" {
44
name = "${var.project_id}-gke"
55
location = var.zone
66

7-
release_channel {
8-
channel = "REGULAR"
9-
}
10-
117
workload_identity_config {
128
workload_pool = "${var.project_id}.svc.id.goog"
139
}

modules/gcp/gke/variables.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
variable "gke_num_nodes" {
2-
default = 3
2+
default = 4
33
}
44

55
variable "gke_machine_type" {
@@ -11,5 +11,5 @@ variable "gke_disk_size_gb" {
1111
}
1212

1313
variable "gke_version" {
14-
default = "1.31.4-gke.1372000"
14+
default = "1.31.5-gke.1068000"
1515
}

0 commit comments

Comments
 (0)