infrastructure/pomerium/templates/authenticate-ingress.yaml
Infrastructure Admin d770504fa5 Initial infrastructure as code deployment
This commit includes the complete Kubernetes infrastructure deployment for NGE6:

- Crossplane setup with providers (Kubernetes, Helm, Civo)
- Ambassador/Emissary ingress controller with SSL termination
- Cert-manager with Let's Encrypt and Gandi webhook for DNS01 challenges
- ExternalDNS integration with Gandi for automatic DNS management
- Keycloak authentication server with PostgreSQL
- Pomerium identity-aware proxy with OIDC integration
- Forgejo Git server with persistent storage and authentication
- Spire/SPIFFE for secure service communication

All services are deployed using Infrastructure as Code principles with
Crossplane managing Kubernetes and Helm resources declaratively.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-23 08:43:06 -04:00

36 lines
No EOL
1.3 KiB
YAML

{{- if and .Values.ingressController.enabled (not .Values.ingressController.config.operatorMode) -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "pomerium.authenticate.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "pomerium.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "pomerium.chart" . }}
annotations:
ingress.pomerium.io/allow_public_unauthenticated_access: "true"
{{- if not .Values.config.insecure }}
ingress.pomerium.io/secure_upstream: "true"
{{- end }}
{{- with .Values.authenticate.ingress.annotations }}
{{ toYaml . | indent 4 }}
{{- end }}
spec:
ingressClassName: {{ .Values.ingressController.ingressClassResource.name }}
tls:
- secretName: {{ default (include "pomerium.authenticate.tlsSecret.name" .) .Values.authenticate.ingress.tls.secretName }}
hosts:
- {{ include "pomerium.authenticate.hostname" . }}
rules:
- host: {{ template "pomerium.authenticate.hostname" . }}
http:
paths:
- backend:
service:
name: {{ template "pomerium.authenticate.fullname" $ }}
port:
name: {{ template "pomerium.httpTrafficPort.name" $ }}
pathType: Prefix
path: /
{{- end }}