Compare commits

...

10 Commits

7 changed files with 108 additions and 43 deletions

View File

@@ -10,6 +10,7 @@ resource vultr_kubernetes athens {
label = var.cluster.pools["main"].label label = var.cluster.pools["main"].label
min_nodes = var.cluster.pools["main"].min_nodes min_nodes = var.cluster.pools["main"].min_nodes
max_nodes = var.cluster.pools["main"].max_nodes max_nodes = var.cluster.pools["main"].max_nodes
auto_scaler = true
} }
} }

View File

@@ -28,7 +28,7 @@ resource kubernetes_deployment gitea {
name = "gitea-main" name = "gitea-main"
} }
port { port {
container_port = 22 container_port = 2222
name = "gitea-ssh" name = "gitea-ssh"
} }
volume_mount { volume_mount {
@@ -62,5 +62,10 @@ resource kubernetes_service gitea {
port = 3000 port = 3000
name = "http" name = "http"
} }
port {
target_port = "gitea-ssh"
port = 2222
name = "ssh"
}
} }
} }

View File

@@ -1,3 +1,10 @@
locals {
services = {
code = kubernetes_service.gitea
sanity = kubernetes_service.health
uptime = kubernetes_service.kuma
}
}
resource kubernetes_ingress_v1 health { resource kubernetes_ingress_v1 health {
metadata { metadata {
name = "health-ingress" name = "health-ingress"
@@ -17,49 +24,20 @@ resource kubernetes_ingress_v1 health {
] ]
secret_name = "shockrah" secret_name = "shockrah"
} }
rule { dynamic "rule" {
host = "sanity.shockrah.xyz" for_each = local.services
content {
host = "${rule.key}.shockrah.xyz"
http { http {
path { path {
path = "/" path = "/"
backend { backend {
service { service {
name = kubernetes_service.health.metadata[0].name name = rule.value.metadata[0].name
port {
number = kubernetes_service.health.spec[0].port[0].port
}
}
}
}
}
}
rule {
host = "uptime.shockrah.xyz"
http {
path {
path = "/"
backend {
service {
name = kubernetes_service.kuma.metadata[0].name
port { port {
number = kubernetes_service.kuma.spec[0].port[0].port number = rule.value.spec[0].port[0].port
}
}
}
}
}
}
rule {
host = "code.shockrah.xyz"
http {
path {
path = "/"
backend {
service {
name = kubernetes_service.gitea.metadata[0].name
port {
number = kubernetes_service.gitea.spec[0].port[0].port
} }
}
} }
} }
} }

View File

@@ -14,4 +14,5 @@ resource kubernetes_namespace openobserve {
} }
name = "openobserve" name = "openobserve"
} }
} }

View File

@@ -5,7 +5,7 @@ cluster = {
pools = { pools = {
main = { main = {
node_quantity = 1 node_quantity = 1
plan = "vc2-1c-2gb" plan = "vc2-2c-4gb"
label = "main" label = "main"
min_nodes = 1 min_nodes = 1
max_nodes = 2 max_nodes = 2

View File

@@ -29,4 +29,21 @@ resource kubernetes_persistent_volume_claim_v1 gitea {
} }
} }
} }
}
resource kubernetes_persistent_volume_claim_v1 otterwiki {
metadata {
name = "otterwiki-data"
namespace = var.playground.namespace
}
spec {
volume_mode = "Filesystem"
access_modes = [ "ReadWriteOnce"]
resources {
requests = {
storage = "10Gi"
}
}
}
} }

View File

@@ -0,0 +1,63 @@
resource kubernetes_deployment otterwiki {
metadata {
name = "otterwiki"
namespace = var.playground.namespace
labels = {
"app" = "otterwiki"
}
}
spec {
replicas = 1
selector {
match_labels = {
"app" = "otterwiki"
}
}
template {
metadata {
labels = {
"app" = "otterwiki"
}
}
spec {
container {
name = "otterwiki"
image = "redimp/otterwiki:2"
port {
container_port = 8080
name = "otterwiki-main"
}
volume_mount {
name = "otterwiki-data"
mount_path = "/var/lib/otterwiki"
}
}
volume {
name = "otterwiki-data"
persistent_volume_claim {
claim_name = kubernetes_persistent_volume_claim_v1.otterwiki.metadata[0].name
}
}
}
}
}
}
resource kubernetes_service otterwiki {
metadata {
name = "otterwiki"
namespace = var.playground.namespace
}
spec {
selector = {
"app" = "otterwiki"
}
port {
port = 80
target_port = "otterwiki-main"
protocol = "TCP"
name = "http"
}
}
}