- .sops.yaml with 3 age keys (admin, dev, prod) - infra/gitea/values/*.enc.yaml — per-env encrypted Helm values - infra/kargo/values/*.enc.yaml — per-env encrypted Kargo admin secrets - kargo/credentials/*.enc.yaml — per-env encrypted git credentials (ksops) - infra/kargo-credentials/ — ArgoCD app for deploying Kargo creds via ksops - All repoURLs point to deploy-app-kargo-private Structure from deploy-app-kargo (reference), adapted for SOPS workflow
58 lines
1.2 KiB
YAML
58 lines
1.2 KiB
YAML
# HTTP → HTTPS redirect
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: redirect-https
|
|
namespace: kube-system
|
|
spec:
|
|
redirectScheme:
|
|
scheme: https
|
|
permanent: true
|
|
---
|
|
# Forward X-Forwarded-Proto header for backends behind TLS termination
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: sslheader
|
|
namespace: kube-system
|
|
spec:
|
|
headers:
|
|
customRequestHeaders:
|
|
X-Forwarded-Proto: "https"
|
|
---
|
|
# Gitea: buffer large requests (git push) + timeout for CI builds
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: gitea-buffer-timeout
|
|
namespace: gitea
|
|
spec:
|
|
buffering:
|
|
maxRequestBodyBytes: 0
|
|
maxResponseBodyBytes: 0
|
|
memRequestBodyBytes: 20971520
|
|
memResponseBodyBytes: 20971520
|
|
retryExpression: "IsNetworkError()"
|
|
---
|
|
# ArgoCD: X-Forwarded-Proto for TLS termination
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: argocd-tls-middleware
|
|
namespace: argocd
|
|
spec:
|
|
headers:
|
|
customRequestHeaders:
|
|
X-Forwarded-Proto: "https"
|
|
---
|
|
# Kargo: X-Forwarded-Proto for TLS termination
|
|
apiVersion: traefik.io/v1alpha1
|
|
kind: Middleware
|
|
metadata:
|
|
name: kargo-tls-middleware
|
|
namespace: kargo
|
|
spec:
|
|
headers:
|
|
customRequestHeaders:
|
|
X-Forwarded-Proto: "https"
|