Skip to content

Instantly share code, notes, and snippets.

View Jojoooo1's full-sized avatar

Jonathan Jojoooo1

  • Currently open to work
  • Sao paulo
View GitHub Profile
@Jojoooo1
Jojoooo1 / dns-provider.tf
Created November 1, 2023 20:07
dns terraform provider
terraform {
required_version = ">= 1.5.7"
backend "gcs" {
bucket = "<your-bucket-name>"
prefix = "terraform/state/dns"
}
required_providers {
google = {
@Jojoooo1
Jojoooo1 / dev-project-services-tf-provider.tf
Created October 31, 2023 21:05
Development project services terraform provider
terraform {
required_version = ">= 1.5.7"
backend "gcs" {
bucket = "<your-bucket-name>"
prefix = "terraform/state/projects/development/services"
}
required_providers {
google = {
@Jojoooo1
Jojoooo1 / fw-tf-provider.tf
Last active November 1, 2023 13:15
Firewall terraform provider.
terraform {
required_version = ">= 1.5.7"
backend "gcs" {
bucket = "<your-bucket-name>"
prefix = "terraform/state/firewall"
}
required_providers {
google = {
@Jojoooo1
Jojoooo1 / fw-rules-infra-shared-vpc.tf
Created October 31, 2023 19:45
Firewall rules infra for shared VPC
resource "google_compute_firewall" "deny_all_egress" {
project = var.project_id
name = "deny-all-egress"
network = local.network
description = "By default deny all egress traffic (managed by terraform)"
deny {
protocol = "all"
}
@Jojoooo1
Jojoooo1 / private-services-access-shared-vpc.tf
Created October 31, 2023 19:17
Google private services access for shared VPC
resource "google_compute_global_address" "gcp_private_service_access_address" {
project = var.project_id
name = "${local.vpc_name}-peering-gcp-private-service-access"
network = module.vpc.network_self_link
purpose = "VPC_PEERING"
address_type = "INTERNAL"
address = "10.100.0.0"
@Jojoooo1
Jojoooo1 / cloud-nat-shared-vpc.tf
Last active October 31, 2023 21:45
Cloud NAT for shared VPC
resource "google_compute_router" "vpc_router" {
project = var.project_id
name = "${local.vpc_name}-${var.region}-nat-router"
region = var.region
network = module.vpc.network_self_link
}
resource "google_compute_address" "vpc_nat_ip" {
project = var.project_id
@Jojoooo1
Jojoooo1 / shared-vpc.tf
Last active November 6, 2023 13:05
shared VPC
module "vpc" {
source = "terraform-google-modules/network/google"
version = "8.0"
project_id = var.project_id
network_name = local.vpc_name
shared_vpc_host = "true"
delete_default_internet_gateway_routes = "true"
routing_mode = "GLOBAL"
@Jojoooo1
Jojoooo1 / shared-vpc-provider.tf
Last active October 31, 2023 20:42
shared vpc terraform provider
terraform {
required_version = ">= 1.5.7"
backend "gcs" {
bucket = "<your-bucket-name>"
prefix = "terraform/state/network/shared-vpc"
}
required_providers {
google = {
@Jojoooo1
Jojoooo1 / service-dev-project.tf
Last active November 7, 2023 14:00
Service dev terraform project
module "service_dev_project" {
source = "terraform-google-modules/project-factory/google"
version = "14.4"
random_project_id = true
random_project_id_length = 4
name = "service-dev"
org_id = var.org_id
billing_account = var.billing_id
@Jojoooo1
Jojoooo1 / shared-host-dev-project.tf
Last active November 6, 2023 20:05
Shared host dev project
module "shared_host_dev_project" {
source = "terraform-google-modules/project-factory/google"
version = "14.4"
random_project_id = true
random_project_id_length = 4
name = "shared-host-dev"
org_id = var.org_id
billing_account = var.billing_id