Funk-lab/k8s/apps/guacamole/deployment.yaml
alkatrazz 080441ef41 feat(portal): accès Internet direct — kaya.freeboxos.fr:9080
Choix simplicité (2026-07-07) : exposition directe du portail plutôt que
le VPN (WireGuard reste déployé mais dormant, sans redirection Freebox).

- gateway : DNAT 9080/tcp → Traefik (192.168.10.200:80) + rate-limit
  30 connexions neuves/min sur le trafic Internet (LAN non concerné)
- IngressRoute guacamole : host kaya.freeboxos.fr accepté
- Guacamole : formulaire local en premier ("*, openid") — l'accès externe
  passe par des comptes locaux, Authentik n'est pas exposé (SSO = LAN)
- doc : section « Accès externe » dans admin/k8s/auth-portal.md

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:08:44 +02:00

87 lines
3.1 KiB
YAML

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 » à créer dans l'UI Authentik) ---
# Endpoints navigateur : via l'IngressRoute ; JWKS : appel serveur→serveur,
# on passe par le Service interne pour ne pas dépendre du DNS lab.local des pods
- name: OPENID_AUTHORIZATION_ENDPOINT
value: "http://auth.lab.local/application/o/authorize/"
- name: OPENID_JWKS_ENDPOINT
value: "http://authentik.auth.svc.cluster.local:9000/application/o/guacamole/jwks/"
- name: OPENID_ISSUER
value: "http://auth.lab.local/application/o/guacamole/"
- name: OPENID_CLIENT_ID
value: "guacamole"
- name: OPENID_REDIRECT_URI
value: "http://portail.lab.local/"
- name: OPENID_USERNAME_CLAIM_TYPE
value: "preferred_username"
- name: OPENID_SCOPE
value: "openid profile email"
# Formulaire local en premier : requis pour l'accès Internet
# (kaya.freeboxos.fr:9080 — comptes locaux Guacamole, Authentik n'étant
# pas exposé). Le lien « OpenID » reste dispo pour le SSO depuis le LAN.
- 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