my-homelab-configs/apps/gitea/k8s_gitea.tf

135 lines
2.8 KiB
HCL

resource "kubernetes_namespace" "gitea" {
metadata {
name = "gitea-system"
}
}
resource "null_resource" "install_longhorn" {
depends_on = [null_resource.node_prep]
provisioner "local-exec" {
command = "kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.6.2/deploy/longhorn.yaml"
}
}
resource "kubernetes_persistent_volume_claim" "gitea_pvc" {
depends_on = [null_resource.install_longhorn]
metadata {
name = "gitea-pvc"
namespace = kubernetes_namespace.gitea.metadata[0].name
}
spec {
access_modes = ["ReadWriteOnce"]
storage_class_name = "longhorn"
resources {
requests = {
storage = "10Gi"
}
}
}
}
resource "kubernetes_deployment" "gitea_prod" {
metadata {
name = "gitea-prod"
namespace = kubernetes_namespace.gitea.metadata[0].name
}
spec {
replicas = 1
selector {
match_labels = {
app = "gitea"
}
}
template {
metadata {
labels = {
app = "gitea"
}
}
spec {
container {
name = "gitea"
image = "gitea/gitea:1.21.7"
port {
container_port = 3000
name = "http"
}
port {
container_port = 22
name = "ssh"
}
env {
name = "USER_UID"
value = "1000"
}
env {
name = "USER_GID"
value = "1000"
}
env {
name = "GITEA__database__DB_TYPE"
value = "sqlite3"
}
env {
name = "GITEA__repository__ENABLE_PUSH_MIRROR"
value = "true"
}
env {
name = "GITEA__repository__ENABLE_PUSH_MIRROR"
value = "true"
}
# ADD THIS NEW BLOCK:
env {
name = "GITEA__migrations__ALLOW_LOCALNETWORKS"
value = "true"
}
volume_mount {
mount_path = "/data"
name = "gitea-storage"
}
}
volume {
name = "gitea-storage"
persistent_volume_claim {
claim_name = kubernetes_persistent_volume_claim.gitea_pvc.metadata[0].name
}
}
}
}
}
}
resource "kubernetes_service" "gitea_service" {
metadata {
name = "gitea-service"
namespace = kubernetes_namespace.gitea.metadata[0].name
}
spec {
type = "NodePort"
selector = {
app = "gitea"
}
port {
name = "http"
port = 3000
target_port = 3000
node_port = 30300
}
port {
name = "ssh"
port = 22
target_port = 22
node_port = 32222
}
}
}