terraform-gcp-k8s/k8s-master/main.tf
Jonny Ervine 88b85b2c84 new file: ansible/inv-gcp.yml
new file:   ansible/inventory/gce.ini
	new file:   ansible/inventory/gce.py
	new file:   ansible/master-node-create.yaml
	new file:   ansible/secrets.py
	new file:   ansible/test-inv
	new file:   ansible/test.yaml
	new file:   ansible/work-kube-config.yaml
	new file:   ansible/worker-config.yaml
	new file:   ansible/yum-config-manager.yaml
	new file:   gcp-lb/main.tf
	new file:   gcp-lb/outputs.tf
	new file:   gcp-lb/provider.tf
	new file:   gcp-lb/variables.tf
	new file:   k8s-master/firewall.tf
	new file:   k8s-master/main.tf
	new file:   k8s-master/network.tf
	new file:   k8s-master/outputs.tf
	new file:   k8s-master/provider.tf
	new file:   k8s-master/scripts/get-metadata-gce.sh
	new file:   k8s-master/scripts/id_ecdsa
	new file:   k8s-master/scripts/id_ecdsa.pub
	new file:   k8s-master/scripts/startup.sh
	new file:   k8s-master/variables.tf
	new file:   k8s-workers/firewall.tf
	new file:   k8s-workers/main.tf
	new file:   k8s-workers/outputs.tf
	new file:   k8s-workers/provider.tf
	new file:   k8s-workers/scripts/get-metadata-gce.sh
	new file:   k8s-workers/scripts/id_ecdsa
	new file:   k8s-workers/scripts/id_ecdsa.pub
	new file:   k8s-workers/scripts/startup.sh
	new file:   k8s-workers/variables.tf
	new file:   main.tf
	new file:   provider.tf
	new file:   variables.tf
	new file:   versions.tf
Initial commit
2020-02-19 08:24:39 +00:00

105 lines
2.4 KiB
HCL

resource "google_compute_instance" "k8s-master" {
count = 1
name = "k8s-master-${count.index + 1}"
## for a setup having multiple instances of the same type, you can do
## the following, there would be 2 instances of the same configuration
## provisioned
# count = 2
# name = "${var.instance-name}-${count.index}"
machine_type = var.vm_type["3point75gig"]
zone = var.region
tags = [
"${var.network}-firewall-ssh",
"${var.network}-firewall-icmp",
"${var.network}-firewall-k8s-apiserver",
"${var.network}-firewall-k8s-etcd-api",
"${var.network}-firewall-k8s-kubelet-api",
"${var.network}-firewall-k8s-kube-scheduler",
"${var.network}-firewall-k8s-kube-controller",
]
labels = {
k8s-role = "master"
first-master = "true"
}
boot_disk {
auto_delete = "true"
initialize_params {
image = var.os["centos7"]
type = "pd-standard"
}
}
metadata = {
hostname = "k8s-master.ervine.org"
startup-script = <<SCRIPT
${file("${path.module}/scripts/get-metadata-gce.sh")}
${file("${path.module}/scripts/startup.sh")}
SCRIPT
}
network_interface {
subnetwork = google_compute_subnetwork.k8s-network_subnetwork.name
access_config {
// Ephemeral IP
}
}
}
resource "google_compute_instance" "k8s-worker" {
count = 2
name = "k8s-worker-${count.index + 1}"
## for a setup having multiple instances of the same type, you can do
## the following, there would be 2 instances of the same configuration
## provisioned
# count = 2
# name = "${var.instance-name}-${count.index}"
machine_type = var.vm_type["1point7gig"]
zone = var.region
tags = [
"${var.network}-firewall-ssh",
"${var.network}-firewall-icmp",
"${var.network}-firewall-http",
"${var.network}-firewall-https",
"${var.network}-firewall-k8s-kubelet-api",
"${var.network}-firewall-k8s-nodeports",
]
labels = {
k8s-role = "worker"
}
boot_disk {
auto_delete = "true"
initialize_params {
image = var.os["centos7"]
type = "pd-standard"
}
}
metadata = {
hostname = "k8s-worker-${count.index + 1}"
startup-script = <<SCRIPT
${file("${path.module}/scripts/get-metadata-gce.sh")}
${file("${path.module}/scripts/startup.sh")}
SCRIPT
}
network_interface {
subnetwork = google_compute_subnetwork.k8s-network_subnetwork.name
access_config {
// Ephemeral IP
}
}
}