last 2
This commit is contained in:
parent
fbe94e225c
commit
c9cd360fd3
6 changed files with 94 additions and 0 deletions
5
charts/forgejo-proxy/Chart.yaml
Normal file
5
charts/forgejo-proxy/Chart.yaml
Normal 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
|
||||||
23
charts/forgejo-proxy/templates/ingress.yaml
Normal file
23
charts/forgejo-proxy/templates/ingress.yaml
Normal 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
|
||||||
9
charts/forgejo-proxy/templates/serverstransport.yaml
Normal file
9
charts/forgejo-proxy/templates/serverstransport.yaml
Normal 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
|
||||||
30
charts/forgejo-proxy/templates/service.yaml
Normal file
30
charts/forgejo-proxy/templates/service.yaml
Normal 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
|
||||||
6
charts/forgejo-proxy/values.yaml
Normal file
6
charts/forgejo-proxy/values.yaml
Normal 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
21
main.tf
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue