cluster

Infrastructure files for Nordgedanken and Midnightthoughts.
git clone git://archive.git.mtrnord.blog/MTRNord/cluster.git
Log | Files | Refs | README

commit fa9428a7bcf235c69ff3eb8da3cb18884ad4d3dc
parent 315257322fec128d9dd8a77e1b4568253216a523
Author: MTRNord <mtrnord1@gmail.com>
Date:   Wed, 19 Mar 2025 19:13:08 +0100

Migrate gerrit

Diffstat:
Mapps/base/authentik/ingress.yaml | 5++---
Mapps/base/envoy-gateway/release.yaml | 14+++++++++++++-
Mapps/base/gerrit/ingress.yaml | 164++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
3 files changed, 106 insertions(+), 77 deletions(-)

diff --git a/apps/base/authentik/ingress.yaml b/apps/base/authentik/ingress.yaml @@ -1,4 +1,3 @@ ---- apiVersion: gateway.networking.k8s.io/v1alpha2 kind: TCPRoute metadata: @@ -13,5 +12,5 @@ spec: sectionName: ldap rules: - backendRefs: - - name: ak-outpost-ldap - port: 389 + - name: ak-outpost-ldap + port: 389 diff --git a/apps/base/envoy-gateway/release.yaml b/apps/base/envoy-gateway/release.yaml @@ -394,6 +394,18 @@ spec: certificateRefs: - kind: Secret name: jenkins.midnightthoughts.space-tls + - name: https-midnightthoughts-gerrit + protocol: HTTPS + hostname: "gerrit.midnightthoughts.space" + port: 443 + allowedRoutes: + namespaces: + from: "All" + tls: + mode: Terminate + certificateRefs: + - kind: Secret + name: gerrit.midnightthoughts.space-tls - name: https-nordgedanken-root protocol: HTTPS hostname: "nordgedanken.dev" @@ -468,7 +480,7 @@ spec: - kind: TCPRoute namespaces: from: All - - name: ssh + - name: gerrit-ssh protocol: TCP port: 29418 allowedRoutes: diff --git a/apps/base/gerrit/ingress.yaml b/apps/base/gerrit/ingress.yaml @@ -1,92 +1,110 @@ -apiVersion: traefik.io/v1alpha1 -kind: Middleware +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute metadata: - name: gerrit-403 + name: gerrit-ingress namespace: gerrit spec: - ipAllowList: - sourceRange: - - 127.0.0.1/32 + parentRefs: + - name: envoy-gateway + namespace: envoy-gateway + hostnames: + - gerrit.midnightthoughts.space + rules: + - backendRefs: + - name: gerrit-replica-service + port: 80 + matches: + - path: + value: /.*/git-upload-pack + type: RegularExpression + timeouts: + request: 240s + backendRequest: 0s + - backendRefs: + - name: gerrit-service + port: 80 + matches: + - path: + value: / + type: PathPrefix + timeouts: + request: 240s + backendRequest: 0s --- -apiVersion: networking.k8s.io/v1 -kind: Ingress +apiVersion: gateway.envoyproxy.io/v1alpha1 +kind: BackendTrafficPolicy metadata: - annotations: - nginx.ingress.kubernetes.io/affinity: cookie - nginx.ingress.kubernetes.io/session-cookie-expires: "3600" - nginx.ingress.kubernetes.io/session-cookie-max-age: "3600" - nginx.ingress.kubernetes.io/session-cookie-name: Gerrit_Session - nginx.ingress.kubernetes.io/session-cookie-path: / - traefik.ingress.kubernetes.io/router.pathmatcher: PathRegexp - labels: - app.kubernetes.io/component: gerrit-ingress - app.kubernetes.io/instance: gerrit-gerrit-network - app.kubernetes.io/part-of: gerrit-gerrit-network - name: gerrit-ingress + name: gerrit-ingress-cookie-policy namespace: gerrit spec: - rules: - - host: gerrit.midnightthoughts.space - http: - paths: - - backend: - service: - name: gerrit-replica-service - port: - name: http - path: /.*/git-upload-pack - pathType: ImplementationSpecific - - backend: - service: - name: gerrit-service - port: - name: http - path: / - pathType: Prefix - tls: - - hosts: - - gerrit.midnightthoughts.space - secretName: gerrit.midnightthoughts.space-tls + targetRefs: + - group: gateway.networking.k8s.io + kind: HTTPRoute + name: gerrit-ingress + loadBalancer: + type: ConsistentHash + consistentHash: + type: Cookie + cookie: + name: Gerrit_Session + ttl: 3600s + attributes: + SameSite: Strict --- -apiVersion: networking.k8s.io/v1 -kind: Ingress +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute metadata: - annotations: - traefik.ingress.kubernetes.io/router.middlewares: gerrit-gerrit-403@kubernetescrd - traefik.ingress.kubernetes.io/router.pathmatcher: PathRegexp - labels: - app.kubernetes.io/component: gerrit-ingress-403 - app.kubernetes.io/instance: gerrit-gerrit-network - app.kubernetes.io/part-of: gerrit-gerrit-network - name: gerrit-ingress-403 + name: gerrit-403 namespace: gerrit spec: + parentRefs: + - name: envoy-gateway + namespace: envoy-gateway + hostnames: + - gerrit.midnightthoughts.space rules: - - host: gerrit.midnightthoughts.space - http: - paths: - - backend: - service: - name: gerrit-replica-service - port: - name: http - path: /(a)?/plugins/high-availability/.* - pathType: ImplementationSpecific - tls: - - hosts: - - gerrit.midnightthoughts.space - secretName: gerrit.midnightthoughts.space-tls + - backendRefs: + - name: gerrit-replica-service + port: 80 + matches: + - path: + value: /(a)?/plugins/high-availability/.* + type: RegularExpression + timeouts: + request: 240s + backendRequest: 0s +--- +apiVersion: gateway.envoyproxy.io/v1alpha1 +kind: SecurityPolicy +metadata: + name: gerrit-403 + namespace: gerrit +spec: + targetRefs: + - group: gateway.networking.k8s.io + kind: HTTPRoute + name: gerrit-403 + authorization: + defaultAction: Deny + rules: + - action: Allow + principal: + clientCIDRs: + - 127.0.0.1/32 --- -apiVersion: traefik.io/v1alpha1 -kind: IngressRouteTCP +apiVersion: gateway.networking.k8s.io/v1alpha2 +kind: TCPRoute metadata: name: gerrit-ssh namespace: gerrit + annotations: + external-dns.alpha.kubernetes.io/hostname: ldap.midnightthoughts.space spec: - entryPoints: - - gerrit-ssh - routes: - - match: HostSNI(`*`) - services: + parentRefs: + - name: envoy-gateway + namespace: envoy-gateway + sectionName: gerrit-ssh + rules: + - backendRefs: - name: gerrit-service port: 29418