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>
40 lines
No EOL
1.2 KiB
YAML
40 lines
No EOL
1.2 KiB
YAML
apiVersion: kubernetes.crossplane.io/v1alpha2
|
|
kind: Object
|
|
metadata:
|
|
name: acme-challenge-ingress
|
|
namespace: crossplane-system
|
|
spec:
|
|
providerConfigRef:
|
|
name: kubernetes-provider
|
|
forProvider:
|
|
manifest:
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: acme-challenge
|
|
namespace: pomerium
|
|
annotations:
|
|
kubernetes.io/ingress.class: ambassador
|
|
nginx.ingress.kubernetes.io/rewrite-target: /
|
|
spec:
|
|
rules:
|
|
- host: authenticate.nge6.com
|
|
http:
|
|
paths:
|
|
- path: /.well-known/acme-challenge
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: cm-acme-http-solver-2cljl
|
|
port:
|
|
number: 8089
|
|
- host: keycloak.nge6.com
|
|
http:
|
|
paths:
|
|
- path: /.well-known/acme-challenge
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: cm-acme-http-solver-f2t87
|
|
port:
|
|
number: 8089 |