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
105 lines
2.4 KiB
HCL
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
|
|
}
|
|
}
|
|
}
|
|
|