prole/deploy/opentofu/k3s/manifests/knoe/knoe-auth-google-prole-secret.example.yaml
chrisfu cf33342500 feat(prole): bootstrap knoe-auth on k3s; tenant onboarding; cluster stabilisation
knoe-auth (prole.org k3s):
- Fix CNPG manifest drift: remove spec.backup.pluginConfiguration (CNPG 1.28 only),
  switch spec.certificates from serverTLSSecret to serverAltDNSNames
- Apply knoe-auth Round 1 schema + GRANTs manually (postInitSQL had never run on live cluster)
- Fix OIDC signing key generator: base64(DER) not base64(PEM) — OidcTokenService
  does Base64.decode() → PKCS8EncodedKeySpec which requires raw DER bytes
- Add OIDC controllers: authorize, token, userinfo, jwks, discovery
- Add prole Spring profile: cookieDomain, emailDomain, Kerberos config
- Add secret example templates: knoe-db-user, knoe-auth-oidc-signing, knoe-auth-google-prole
- Kong configmap: scope knoe-auth route to /auth prefix only

Tenant onboarding:
- Add etc/onboard_tenant.sh: provision/apply/rotate/status workflow backed by 1Password
  vaults; types: 'enterprise' (own Kerberos + domain) and 'tenant' (hosted, initContainer KDC)
- Provision 'Knoe Tenant - prole.org' vault; apply all 7 k8s secrets to knoe-system
- init_knoe_auth.sh: add explicit GRANT + ALTER DEFAULT PRIVILEGES for knoe role

Cluster stabilisation:
- gitea: roll back 14-day stuck rollout (RWO PVC + maxSurge=100% deadlock);
  patch deployment strategy to Recreate
- supabase: create supabase_admin role, _supabase db, _analytics schema, _realtime schema
  in CNPG — analytics and realtime had never connected since Helm install day 1
- knoe-db barman ObjectStore: add GCS-backed objectstore manifest + scheduled backup

Infrastructure:
- gandalf host_vars: k3s registry config
- pi host_vars: clean up stale entries
- knoe-db schemas: ekosystem.sql, ekosystem_objects.sql
- init_prole_app.sql: prole app DB initialisation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 00:50:37 -07:00

30 lines
1.0 KiB
YAML

apiVersion: v1
kind: Secret
metadata:
name: knoe-auth-google-prole
namespace: knoe-system
labels:
app.kubernetes.io/managed-by: knoe-installer
# Google OAuth2 credentials for the prole.org Workspace login path (Path A).
#
# 1. Create an OAuth 2.0 Client ID at:
# https://console.cloud.google.com/apis/credentials
# Application type: Web application
# Authorized redirect URIs:
# https://api.prole.org/auth/auth/callback/google
# https://api.prole.org/auth/auth/enroll/google-callback
#
# 2. Store real values in OpenBao:
# bao kv put knoe/oauth2/google-prole-org \
# client_id="<CLIENT_ID>" client_secret="<CLIENT_SECRET>"
#
# 3. Create the secret from OpenBao:
# kubectl create secret generic knoe-auth-google-prole \
# --namespace knoe-system \
# --from-literal=client_id="$(bao kv get -field=client_id knoe/oauth2/google-prole-org)" \
# --from-literal=client_secret="$(bao kv get -field=client_secret knoe/oauth2/google-prole-org)"
type: Opaque
stringData:
client_id: ""
client_secret: ""