christianlempa-boilerplates/terraform/templates/kubernetes-automation-example/civo.tf

78 lines
1.6 KiB
Terraform
Raw Normal View History

2022-04-01 09:25:19 +02:00
# Kubernetes Cluster
data "civo_size" "xsmall" {
# TODO: (optional): change the values according to your desired instance image sizing
# ---
filter {
key = "name"
values = ["g4s.kube.xsmall"]
match_by = "re"
}
}
resource "civo_kubernetes_cluster" "k8s_demo_1" {
name = "k8s_demo_1"
applications = ""
num_target_nodes = 2
target_nodes_size = element(data.civo_size.xsmall.sizes, 0).name
firewall_id = civo_firewall.fw_demo_1.id
}
resource "civo_firewall" "fw_demo_1" {
name = "fw_demo_1"
create_default_rules = false
}
resource "civo_firewall_rule" "kubernetes_http" {
firewall_id = civo_firewall.fw_demo_1.id
protocol = "tcp"
start_port = "80"
end_port = "80"
cidr = ["0.0.0.0/0"]
direction = "ingress"
action = "allow"
label = "kubernetes_http"
}
resource "civo_firewall_rule" "kubernetes_https" {
firewall_id = civo_firewall.fw_demo_1.id
protocol = "tcp"
start_port = "443"
end_port = "443"
cidr = ["0.0.0.0/0"]
direction = "ingress"
action = "allow"
label = "kubernetes_https"
}
resource "civo_firewall_rule" "kubernetes_api" {
firewall_id = civo_firewall.fw_demo_1.id
protocol = "tcp"
start_port = "6443"
end_port = "6443"
cidr = ["0.0.0.0/0"]
direction = "ingress"
action = "allow"
label = "kubernetes_api"
}
resource "time_sleep" "wait_for_kubernetes" {
depends_on = [
civo_kubernetes_cluster.k8s_demo_1
]
create_duration = "20s"
}
data "civo_loadbalancer" "traefik_lb" {
depends_on = [
helm_release.traefik
]
name = "k8s_demo_1-traefik-traefik"
}