Add terraform
This commit is contained in:
parent
0d635b9a0e
commit
56f1f94694
6 changed files with 173 additions and 1 deletions
37
.gitignore
vendored
37
.gitignore
vendored
|
@ -10,4 +10,39 @@ pkg/
|
||||||
.skaffold-*.yaml
|
.skaffold-*.yaml
|
||||||
.kubernetes-manifests-*/
|
.kubernetes-manifests-*/
|
||||||
.project
|
.project
|
||||||
.eclipse.buildship.core.prefs
|
.eclipse.buildship.core.prefs
|
||||||
|
|
||||||
|
# Local .terraform directories
|
||||||
|
**/.terraform/*
|
||||||
|
|
||||||
|
# .tfstate files
|
||||||
|
*.tfstate
|
||||||
|
*.tfstate.*
|
||||||
|
|
||||||
|
# Crash log files
|
||||||
|
crash.log
|
||||||
|
|
||||||
|
# Exclude all .tfvars files, which are likely to contain sentitive data, such as
|
||||||
|
# password, private keys, and other secrets. These should not be part of version
|
||||||
|
# control as they are data points which are potentially sensitive and subject
|
||||||
|
# to change depending on the environment.
|
||||||
|
#
|
||||||
|
*.tfvars
|
||||||
|
|
||||||
|
# Ignore override files as they are usually used to override resources locally and so
|
||||||
|
# are not checked in
|
||||||
|
override.tf
|
||||||
|
override.tf.json
|
||||||
|
*_override.tf
|
||||||
|
*_override.tf.json
|
||||||
|
|
||||||
|
# Include override files you do wish to add to version control using negated pattern
|
||||||
|
#
|
||||||
|
# !example_override.tf
|
||||||
|
|
||||||
|
# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
|
||||||
|
# example: *tfplan*
|
||||||
|
|
||||||
|
# Ignore CLI configuration files
|
||||||
|
.terraformrc
|
||||||
|
terraform.rc
|
||||||
|
|
31
terraform/dev/gke.tf
Normal file
31
terraform/dev/gke.tf
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
module "gke" {
|
||||||
|
source = "terraform-google-modules/kubernetes-engine/google//modules/private-cluster"
|
||||||
|
project_id = var.project_id
|
||||||
|
|
||||||
|
name = var.gke_name
|
||||||
|
|
||||||
|
regional = false
|
||||||
|
region = var.region
|
||||||
|
zones = [var.zone]
|
||||||
|
|
||||||
|
network = module.vpc.network_name
|
||||||
|
subnetwork = module.vpc.subnets["${var.region}/${var.gke_subnet_name}"].name
|
||||||
|
|
||||||
|
ip_range_pods = "secondary-range-pods"
|
||||||
|
ip_range_services = "secondary-range-services"
|
||||||
|
|
||||||
|
create_service_account = false
|
||||||
|
service_account = null
|
||||||
|
|
||||||
|
enable_private_endpoint = false
|
||||||
|
enable_private_nodes = true
|
||||||
|
|
||||||
|
master_ipv4_cidr_block = var.gke_cidr_range_master
|
||||||
|
|
||||||
|
master_authorized_networks = [
|
||||||
|
{
|
||||||
|
cidr_block = "0.0.0.0/0"
|
||||||
|
display_name = "Public"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
32
terraform/dev/network.tf
Normal file
32
terraform/dev/network.tf
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
module "vpc" {
|
||||||
|
source = "terraform-google-modules/network/google"
|
||||||
|
version = "~> 2.5"
|
||||||
|
|
||||||
|
project_id = var.project_id
|
||||||
|
network_name = var.network_name
|
||||||
|
routing_mode = "GLOBAL"
|
||||||
|
|
||||||
|
subnets = [
|
||||||
|
{
|
||||||
|
subnet_name = var.gke_subnet_name
|
||||||
|
subnet_ip = var.gke_subnet_cidr_range
|
||||||
|
subnet_region = var.region
|
||||||
|
subnet_private_access = "true"
|
||||||
|
subnet_flow_logs = "true"
|
||||||
|
description = "Gke subnet for microservices demo"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
secondary_ranges = {
|
||||||
|
"${var.gke_subnet_name}" = [
|
||||||
|
{
|
||||||
|
range_name = "secondary-range-pods"
|
||||||
|
ip_cidr_range = var.gke_subnet_cidr_range_pod
|
||||||
|
},
|
||||||
|
{
|
||||||
|
range_name = "secondary-range-services"
|
||||||
|
ip_cidr_range = var.gke_subnet_cidr_range_services
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
7
terraform/dev/outputs.tf
Normal file
7
terraform/dev/outputs.tf
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
output "vpc" {
|
||||||
|
value = module.vpc
|
||||||
|
}
|
||||||
|
|
||||||
|
output "gke" {
|
||||||
|
value = module.gke
|
||||||
|
}
|
17
terraform/dev/terraform.tfvars
Normal file
17
terraform/dev/terraform.tfvars
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
## Project
|
||||||
|
project_id = "cloudcover-sandbox"
|
||||||
|
region = "asia-southeast1"
|
||||||
|
zone = "asia-southeast1-a"
|
||||||
|
|
||||||
|
## Network
|
||||||
|
network_name = "microservice-demo"
|
||||||
|
|
||||||
|
## GKE
|
||||||
|
### Subnet
|
||||||
|
gke_subnet_name = "gke-subnet"
|
||||||
|
gke_subnet_cidr_range = "10.10.10.0/24"
|
||||||
|
gke_subnet_cidr_range_pod = "192.168.0.0/22"
|
||||||
|
gke_subnet_cidr_range_services = "192.168.4.0/22"
|
||||||
|
### Config
|
||||||
|
gke_name = "microservices-demo-gke"
|
||||||
|
gke_cidr_range_master = "172.16.0.0/28"
|
50
terraform/dev/variables.tf
Normal file
50
terraform/dev/variables.tf
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
variable "project_id" {
|
||||||
|
description = "Project id"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "region" {
|
||||||
|
description = "Project region"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "zone" {
|
||||||
|
description = "Project zone"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "network_name" {
|
||||||
|
description = "Name of the vpc network"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "gke_subnet_name" {
|
||||||
|
description = "Name of the gke subnet"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "gke_subnet_cidr_range" {
|
||||||
|
description = "Cidr range for gke subnet"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "gke_subnet_cidr_range_pod" {
|
||||||
|
description = "Cidr range for gke subnet pods"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "gke_subnet_cidr_range_services" {
|
||||||
|
description = "Cidr range for gke subnet services"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "gke_cidr_range_master" {
|
||||||
|
description = "Cidr range for gke subnet master ipv4"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "gke_name" {
|
||||||
|
description = "Name for GKE cluster"
|
||||||
|
type = string
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue