apiVersion: apps/v1 kind: Deployment metadata: name: guacamole namespace: auth spec: replicas: 1 selector: matchLabels: app: guacamole template: metadata: labels: app: guacamole spec: containers: - name: guacamole image: guacamole/guacamole:1.6.0 ports: - containerPort: 8080 env: - name: GUACD_HOSTNAME value: "guacd" - name: GUACD_PORT value: "4822" # Base sur storage-01 (schéma posé par le Job guacamole-initdb) - name: POSTGRESQL_HOSTNAME value: "192.168.10.1" - name: POSTGRESQL_DATABASE value: "guacamole" - name: POSTGRESQL_USERNAME value: "guacamole" - name: POSTGRESQL_PASSWORD valueFrom: secretKeyRef: name: guacamole-secret key: pg-password # Les comptes venant d'Authentik sont créés automatiquement dans la base # (sinon un utilisateur OIDC arrive sans aucune connexion assignable) - name: POSTGRESQL_AUTO_CREATE_ACCOUNTS value: "true" # Servir sur / plutôt que /guacamole - name: WEBAPP_CONTEXT value: "ROOT" # --- SSO OIDC → Authentik (app « guacamole » dans l'UI Authentik) --- # URL canonique = domaine HTTPS (auth./portail.funklab.online), LAN inclus # (split-horizon dnsmasq). JWKS : appel serveur→serveur via le Service interne. - name: OPENID_AUTHORIZATION_ENDPOINT value: "https://auth.funklab.online/application/o/authorize/" - name: OPENID_JWKS_ENDPOINT value: "http://authentik.auth.svc.cluster.local:9000/application/o/guacamole/jwks/" - name: OPENID_ISSUER value: "https://auth.funklab.online/application/o/guacamole/" - name: OPENID_CLIENT_ID value: "guacamole" - name: OPENID_REDIRECT_URI value: "https://portail.funklab.online/" - name: OPENID_USERNAME_CLAIM_TYPE value: "preferred_username" - name: OPENID_SCOPE value: "openid profile email" # SSO direct : Authentik est le hub utilisateurs (page « My applications », # exposée en :9081) — arriver sur Guacamole = redirection immédiate vers lui. # guacadmin inaccessible : l'admin passe par le compte SSO « Administer # system » (Alkatrazz). Dépannage sans Authentik : "*, openid" + re-sync. - name: EXTENSION_PRIORITY value: "openid, *" - name: TZ value: "Europe/Paris" resources: requests: cpu: 200m memory: 512Mi limits: cpu: 1000m memory: 1Gi readinessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 30 periodSeconds: 15 livenessProbe: httpGet: path: / port: 8080 initialDelaySeconds: 60 periodSeconds: 30