Restructure: servers/legion/ layout, rename repo to infrastructure

This commit is contained in:
Will Anderson
2026-03-23 07:38:42 -05:00
parent 7751eddd73
commit 0b4a236a88
22 changed files with 4 additions and 4 deletions
+183
View File
@@ -0,0 +1,183 @@
# Local Docker Registry — push images locally, no DockerHub
resource "kubernetes_namespace" "registry" {
metadata {
name = "registry"
labels = {
managed-by = "terraform"
tier = "infrastructure"
}
}
}
resource "kubernetes_persistent_volume_claim" "registry_data" {
metadata {
name = "registry-data"
namespace = kubernetes_namespace.registry.metadata[0].name
}
spec {
access_modes = ["ReadWriteOnce"]
resources {
requests = {
storage = "50Gi"
}
}
}
}
resource "kubernetes_deployment" "registry" {
metadata {
name = "registry"
namespace = kubernetes_namespace.registry.metadata[0].name
labels = {
app = "registry"
}
}
spec {
replicas = 1
selector {
match_labels = {
app = "registry"
}
}
template {
metadata {
labels = {
app = "registry"
}
}
spec {
container {
name = "registry"
image = "registry:2"
port {
container_port = 5000
}
volume_mount {
name = "data"
mount_path = "/var/lib/registry"
}
resources {
requests = {
memory = "64Mi"
cpu = "50m"
}
limits = {
memory = "256Mi"
cpu = "200m"
}
}
}
volume {
name = "data"
persistent_volume_claim {
claim_name = kubernetes_persistent_volume_claim.registry_data.metadata[0].name
}
}
}
}
}
}
resource "kubernetes_service" "registry" {
metadata {
name = "registry"
namespace = kubernetes_namespace.registry.metadata[0].name
}
spec {
selector = { app = "registry" }
port {
port = 5000
target_port = 5000
}
type = "ClusterIP"
}
}
# Docker Registry UI — browse images and tags visually
resource "kubernetes_deployment" "registry_ui" {
metadata {
name = "registry-ui"
namespace = kubernetes_namespace.registry.metadata[0].name
labels = { app = "registry-ui" }
}
spec {
replicas = 1
selector {
match_labels = { app = "registry-ui" }
}
template {
metadata {
labels = { app = "registry-ui" }
}
spec {
container {
name = "registry-ui"
image = "joxit/docker-registry-ui:latest"
port {
container_port = 80
}
env {
name = "REGISTRY_TITLE"
value = "Nook Registry"
}
env {
name = "NGINX_PROXY_PASS_URL"
value = "http://registry:5000"
}
env {
name = "SINGLE_REGISTRY"
value = "true"
}
env {
name = "SHOW_CONTENT_DIGEST"
value = "true"
}
env {
name = "DELETE_IMAGES"
value = "true"
}
resources {
requests = {
memory = "32Mi"
cpu = "20m"
}
limits = {
memory = "64Mi"
cpu = "100m"
}
}
}
}
}
}
}
resource "kubernetes_service" "registry_ui" {
metadata {
name = "registry-ui"
namespace = kubernetes_namespace.registry.metadata[0].name
}
spec {
selector = { app = "registry-ui" }
port {
port = 80
target_port = 80
}
type = "ClusterIP"
}
}