This commit is contained in:
root 2026-11-13 22:31:06 +01:00
parent fbe94e225c
commit c9cd360fd3
6 changed files with 94 additions and 0 deletions

View file

@ -0,0 +1,5 @@
apiVersion: v2
name: forgejo-proxy
description: Traefik-Route forgejo.boday-it.ch -> Forgejo auf BITCLAW01 (ausserhalb des Clusters)
type: application
version: 0.1.0

View file

@ -0,0 +1,23 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: forgejo
annotations:
cert-manager.io/cluster-issuer: {{ .Values.clusterIssuer | quote }}
spec:
ingressClassName: traefik
tls:
- secretName: forgejo-tls
hosts:
- {{ .Values.host | quote }}
rules:
- host: {{ .Values.host | quote }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: forgejo-external
port:
name: https

View file

@ -0,0 +1,9 @@
# Interner Hop Traefik -> nginx auf BITCLAW01 nutzt das selbstsignierte Zertifikat (CN registry.local).
# Nach aussen liefert Traefik das gültige Let's-Encrypt-Zertifikat aus.
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
name: forgejo-transport
spec:
serverName: {{ .Values.backend.serverName | quote }}
insecureSkipVerify: true

View file

@ -0,0 +1,30 @@
# Service ohne Selector: zeigt auf einen Host ausserhalb des Clusters (EndpointSlice unten)
apiVersion: v1
kind: Service
metadata:
name: forgejo-external
annotations:
traefik.ingress.kubernetes.io/service.serversscheme: https
traefik.ingress.kubernetes.io/service.serverstransport: {{ .Release.Namespace }}-forgejo-transport@kubernetescrd
spec:
ports:
- name: https
port: 443
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: forgejo-external-1
labels:
kubernetes.io/service-name: forgejo-external
addressType: IPv4
ports:
- name: https
port: {{ .Values.backend.port }}
protocol: TCP
endpoints:
- addresses:
- {{ .Values.backend.ip | quote }}
conditions:
ready: true

View file

@ -0,0 +1,6 @@
host: forgejo.boday-it.ch
clusterIssuer: letsencrypt-prod
backend:
ip: 172.25.65.20 # BITCLAW01
port: 3005 # nginx (HTTPS) vor Forgejo; von den Talos-Nodes aus bereits freigegeben
serverName: registry.local

21
main.tf
View file

@ -195,6 +195,27 @@ resource "helm_release" "traefik" {
})] })]
} }
# --- Forgejo (läuft als Docker auf BITCLAW01) über Traefik veröffentlichen ---
variable "forgejo_host" {
type = string
default = "forgejo.boday-it.ch"
}
resource "helm_release" "forgejo_proxy" {
name = "forgejo-proxy"
chart = "${path.module}/charts/forgejo-proxy"
namespace = "forgejo"
create_namespace = true
set {
name = "host"
value = var.forgejo_host
}
depends_on = [helm_release.traefik, helm_release.cluster_issuer]
}
output "traefik_lb_ip" { output "traefik_lb_ip" {
value = var.traefik_lb_ip value = var.traefik_lb_ip
} }