Commit graph

17 commits

Author SHA1 Message Date
Infrastructure Admin
9fbaf4d99f Add eemoore user with full admin access
- Created eemoore user in Keycloak with admin privileges
- Added to k8s-admins group for cluster admin access
- Added to users group for basic access
- User: eemoore@nge6.com (Eric Moore)

User will have full access to all services via Pomerium authentication.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 16:13:43 -04:00
Infrastructure Admin
a7ae41ee08 Complete GitOps infrastructure setup
Added to kustomization.yaml:
- namespaces.yaml: Centralized namespace management
- auth/: Keycloak authentication system
- keycloak-config.yaml: Identity provider configuration
- sealed-secrets.yaml: Secret encryption system

Fixed namespace conflicts:
- Removed duplicate pomerium-namespace from pomerium.yaml
- Removed duplicate external-dns-namespace from external-dns.yaml
- All namespaces now managed centrally via namespaces.yaml

Now managing 72 Kubernetes resources via GitOps:
 Infrastructure: Crossplane providers, external-dns
 Certificates: cert-manager, Let's Encrypt, Gandi webhook
 Authentication: Keycloak, RBAC configs
 Applications: Forgejo, Pomerium, Vaultwarden
 Security: Sealed secrets, proper RBAC

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 02:43:00 -04:00
Infrastructure Admin
b41e7c2c50 Add cert-manager to GitOps infrastructure
- Includes Gandi webhook for DNS-01 challenges
- ClusterIssuers for Let's Encrypt certificates
- RBAC configurations for cert-manager components

Second batch deployment - cert infrastructure now managed via GitOps.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 02:37:45 -04:00
Infrastructure Admin
e7c5a66bf6 Add core infrastructure to GitOps: providers, external-dns
- providers.yaml: Crossplane provider installations
- provider-configs.yaml: Provider authentication configs
- external-dns.yaml: Automatic DNS record management

Testing batch deployment before adding more components.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 13:00:23 -04:00
Infrastructure Admin
80bccbda8d Fix external-dns configuration for automatic DNS management
- Enable debug logging for troubleshooting
- External-DNS now successfully creates vault.nge6.com → 212.2.241.56
- DNS record creation working via Gandi API
- Requires external-dns.ambassador-service annotation on Ambassador Hosts

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 12:41:47 -04:00
Infrastructure Admin
4af7193ee0 Add external-dns with Ambassador Host support and managed Gandi secret
- Add Crossplane-managed gandi-api-key secret for external-dns
- Configure external-dns to watch Ambassador Host resources
- Add RBAC permissions for getambassador.io resources
- Enable automatic DNS record creation for vault.nge6.com

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 11:13:49 -04:00
Infrastructure Admin
ba3ffa2568 Fix Vaultwarden configuration issues
- Remove invalid SQLite URL format
- Disable SMTP configuration to prevent startup errors
- Vaultwarden now running successfully

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 01:20:04 -04:00
Infrastructure Admin
5154306148 Add Vaultwarden configuration with Crossplane Objects
- Namespace, ConfigMap, PVC, Deployment, Service
- SSL certificate via cert-manager
- Ambassador Host and Mapping with Pomerium integration
- Uses SQLite for data persistence

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 00:05:33 -04:00
Infrastructure Admin
81a2e96de1 Add Vaultwarden to GitOps infrastructure
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 00:05:25 -04:00
Infrastructure Admin
ccbb55cada Simplify GitOps to test with just core files first 2025-09-26 08:59:17 -04:00
Infrastructure Admin
faa488f7a8 Simplify kustomization to avoid namespace conflicts 2025-09-26 08:32:21 -04:00
Infrastructure Admin
dbe4a33db2 Remove duplicate auth-system-namespace definition 2025-09-26 07:53:02 -04:00
Infrastructure Admin
faf8fadad5 Add kustomization.yaml files for subdirectories 2025-09-26 00:22:09 -04:00
Infrastructure Admin
b3647d71dd Fix kustomization.yaml with correct directory paths 2025-09-25 20:57:31 -04:00
Infrastructure Admin
11f3e9309c Add Kustomization config to exclude problematic directories from GitOps 2025-09-25 20:51:52 -04:00
Infrastructure Admin
5fd9934c3a Fix YAML syntax error in gitea secrets 2025-09-25 20:47:59 -04:00
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