Migrate all app deployments from Terraform to Argo CD

Move gitea, github-runner, neuron, cloudflared, ollama, verdaccio,
devpi, registry, and registry-ui deployments+services to apps/*.yaml
so Argo CD manages the app layer. Terraform retains namespaces, PVCs,
ConfigMaps, Secrets, and Ingresses.

New Secrets in Terraform:
- kubernetes_secret.github_runner_secret (ci/github-runner-secret)
- kubernetes_secret.cloudflared_secret (neuron/cloudflared-secret)

Hardcoded service names in ingress.tf and neuron.tf to remove
dependency on removed kubernetes_service resources.
This commit is contained in:
Will Anderson
2026-03-23 08:15:17 -05:00
parent b2b04c231c
commit afe01d2ad9
13 changed files with 588 additions and 885 deletions
+2 -176
View File
@@ -149,181 +149,7 @@ resource "kubernetes_secret" "gitea_db_secret" {
}
}
resource "kubernetes_deployment" "gitea" {
metadata {
name = "gitea"
namespace = kubernetes_namespace.git.metadata[0].name
labels = { app = "gitea" }
}
spec {
replicas = 1
strategy { type = "Recreate" }
selector {
match_labels = { app = "gitea" }
}
template {
metadata {
labels = { app = "gitea" }
}
spec {
container {
name = "gitea"
image = "gitea/gitea:1.22"
port {
name = "http"
container_port = 3000
}
port {
name = "ssh"
container_port = 22
}
env {
name = "GITEA__database__DB_TYPE"
value = "postgres"
}
env {
name = "GITEA__database__HOST"
value = "postgres-postgresql.platform.svc.cluster.local:5432"
}
env {
name = "GITEA__database__NAME"
value = "gitea"
}
env {
name = "GITEA__database__USER"
value = "gitea"
}
env {
name = "GITEA__database__PASSWD"
value_from {
secret_key_ref {
name = kubernetes_secret.gitea_db_secret.metadata[0].name
key = "password"
}
}
}
env {
name = "GITEA__server__DOMAIN"
value = var.gitea_domain
}
env {
name = "GITEA__server__ROOT_URL"
value = "https://${var.gitea_domain}"
}
env {
name = "GITEA__server__SSH_DOMAIN"
value = var.gitea_domain
}
env {
name = "GITEA__server__SSH_PORT"
value = "30022"
}
env {
name = "GITEA__server__START_SSH_SERVER"
value = "false"
}
env {
name = "GITEA__service__DISABLE_REGISTRATION"
value = "true"
}
env {
name = "GITEA__service__REQUIRE_SIGNIN_VIEW"
value = "true"
}
env {
name = "GITEA__security__INSTALL_LOCK"
value = "true"
}
env {
name = "GITEA__packages__ENABLED"
value = "true"
}
env {
name = "GITEA__webhook__ALLOWED_HOST_LIST"
value = "192.168.0.0/24,10.0.0.0/8"
}
volume_mount {
name = "data"
mount_path = "/data"
}
volume_mount {
name = "custom-css"
mount_path = "/data/gitea/custom/public/assets/css/custom.css"
sub_path = "custom.css"
}
volume_mount {
name = "custom-css"
mount_path = "/data/gitea/custom/templates/custom/header.tmpl"
sub_path = "header.tmpl"
}
resources {
requests = {
memory = "256Mi"
cpu = "100m"
}
limits = {
memory = "512Mi"
cpu = "500m"
}
}
}
volume {
name = "data"
persistent_volume_claim {
claim_name = kubernetes_persistent_volume_claim.gitea_data.metadata[0].name
}
}
volume {
name = "custom-css"
config_map {
name = kubernetes_config_map.gitea_custom_css.metadata[0].name
}
}
}
}
}
depends_on = [helm_release.postgres]
}
resource "kubernetes_service" "gitea" {
metadata {
name = "gitea"
namespace = kubernetes_namespace.git.metadata[0].name
}
spec {
selector = { app = "gitea" }
port {
name = "http"
port = 3000
target_port = 3000
}
port {
name = "ssh"
port = 22
target_port = 22
node_port = 30022
}
type = "NodePort"
}
}
# Deployment + Service managed by Argo CD — see servers/legion/apps/gitea.yaml
resource "kubernetes_ingress_v1" "gitea" {
metadata {
@@ -348,7 +174,7 @@ resource "kubernetes_ingress_v1" "gitea" {
path_type = "Prefix"
backend {
service {
name = kubernetes_service.gitea.metadata[0].name
name = "gitea"
port { number = 3000 }
}
}