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>
44 lines
1.4 KiB
YAML
44 lines
1.4 KiB
YAML
apiVersion: apiextensions.crossplane.io/v1
|
|
kind: CompositeResourceDefinition
|
|
metadata:
|
|
name: keycloakidentities.auth.yourdomain.com
|
|
spec:
|
|
group: auth.yourdomain.com
|
|
names:
|
|
kind: KeycloakIdentity
|
|
plural: keycloakidentities
|
|
claimNames:
|
|
kind: KeycloakIdentityClaim
|
|
plural: keycloakidentityclaims
|
|
versions:
|
|
- name: v1alpha1
|
|
served: true
|
|
referenceable: true
|
|
schema:
|
|
openAPIV3Schema:
|
|
type: object
|
|
properties:
|
|
spec:
|
|
type: object
|
|
properties:
|
|
realmName:
|
|
type: string
|
|
description: "Name of the Keycloak realm"
|
|
adminUsername:
|
|
type: string
|
|
description: "Username for the admin user"
|
|
adminEmail:
|
|
type: string
|
|
description: "Email for the admin user"
|
|
adminPassword:
|
|
type: string
|
|
description: "Password for the admin user"
|
|
pomeriumRedirectUri:
|
|
type: string
|
|
description: "OAuth callback URL for Pomerium"
|
|
default: "https://authenticate.yourdomain.com/oauth2/callback"
|
|
required:
|
|
- realmName
|
|
- adminUsername
|
|
- adminEmail
|
|
- adminPassword
|