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 } } }