feat(hydra): mise en place du stockage des session redis sur la stack hydra, et correction logout sur hydra-oidc #31

Merged
wpetit merged 7 commits from hydra-redis into develop 2023-12-18 11:18:33 +01:00
7 changed files with 35 additions and 5 deletions
Showing only changes of commit 7a802a6d28 - Show all commits

View File

@ -1 +1,8 @@
# Documentation # Documentation
wpetit marked this conversation as resolved Outdated

Plutôt que mettre ces informations directement dans le README racine, serait il envisageable de créer un fichier dédié ? Peut être même un README spécifique au composant redis (voir autre commentaire) ?

Le README de ce composant devrait d'ailleurs intégrer une mention de la dépendance à l'opérateur Redis (vu l'utilisation d'une CRD).

Plutôt que mettre ces informations directement dans le `README` racine, serait il envisageable de créer un fichier dédié ? Peut être même un `README` spécifique au composant `redis` (voir autre commentaire) ? Le README de ce composant devrait d'ailleurs intégrer une mention de la dépendance à l'opérateur Redis (vu l'utilisation d'une CRD).
### Redis
Les applications `hydra-dispatcher`, `hydra-sql` et `hydra-oidc` stockent dorénavant le cache et les sessions utilisateur sur un serveur Redis.
Le DSN du serveur est défini dans leur variable d'environnement respective `REDIS_DSN`.
Les applications peuvent utiliser le mode `sentinel`` de redis
Il est donc nécessaire donc nécessaire de disposer d'un serveur Redis pour utiliser ces applications.

View File

@ -15,7 +15,7 @@ L'exemple est actuellement déployé avec le composant `hydra-saml` uniquement.
2. Déployer les opérateurs nécessaires au déploiement 2. Déployer les opérateurs nécessaires au déploiement
``` ```
kubectl kustomize --enable-helm ./examples/k8s/kind/cluster | kubectl apply -f - kubectl apply -k ./examples/k8s/kind/cluster --server-side
``` ```
3. Déployer l'application 3. Déployer l'application

View File

@ -3,6 +3,7 @@ kind: Kustomization
resources: resources:
- https://github.com/jetstack/cert-manager/releases/download/v1.13.2/cert-manager.yaml - https://github.com/jetstack/cert-manager/releases/download/v1.13.2/cert-manager.yaml
- https://forge.cadoles.com/CadolesKube/c-kustom//base/cloudnative-pg-operator?ref=develop - https://forge.cadoles.com/CadolesKube/c-kustom//base/cloudnative-pg-operator?ref=develop
- https://forge.cadoles.com/CadolesKube/c-kustom//base/redis?ref=develop
- https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml - https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
patchesJson6902: patchesJson6902:
@ -11,4 +12,4 @@ patchesJson6902:
kind: ConfigMap kind: ConfigMap
name: ingress-nginx-controller name: ingress-nginx-controller
namespace: ingress-nginx namespace: ingress-nginx
path: patches/nginx-controller.yaml path: patches/nginx-controller.yaml

View File

@ -4,6 +4,7 @@ kind: Kustomization
resources: resources:
- ../../resources/hydra - ../../resources/hydra
- ../../resources/hydra-dispatcher - ../../resources/hydra-dispatcher
- patches/sso-redis.yaml
labels: labels:
- pairs: - pairs:

View File

@ -0,0 +1,21 @@
apiVersion: databases.spotahome.com/v1
wpetit marked this conversation as resolved Outdated

Je ne comprends pas l'usage d'un patch sur une ressource qui n'existe pas ?

Personnellement je pense que l'usage de Redis devrait plutôt prendre la forme d'un component qui viendrait "patcher" les ressources des autres composants frères et soeurs.

Je ne comprends pas l'usage d'un patch sur une ressource qui n'existe pas ? Personnellement je pense que l'usage de Redis devrait plutôt prendre la forme d'un `component` qui viendrait "patcher" les ressources des autres composants frères et soeurs.
kind: RedisFailover
metadata:
name: sso-redis
spec:
sentinel:
replicas: 3
resources:
requests:
cpu: 100m
limits:
memory: 100Mi
redis:
replicas: 3
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 400m
memory: 500Mi

View File

@ -14,4 +14,4 @@ hydra:
api_method: "%env(string:HYDRA_DISPATCHER_WEBHOOK_API_METHOD)%" api_method: "%env(string:HYDRA_DISPATCHER_WEBHOOK_API_METHOD)%"
firewall: firewall:
additional_properties: "%env(bool:HYDRA_DISPATCHER_FIREWALL_ADDITIONAL_PROPERTIES)%" additional_properties: "%env(bool:HYDRA_DISPATCHER_FIREWALL_ADDITIONAL_PROPERTIES)%"
rules: {} rules: {}

View File

@ -21,7 +21,7 @@ configMapGenerator:
- COOKIE_PATH=/ - COOKIE_PATH=/
- DEFAULT_LOCALE=fr - DEFAULT_LOCALE=fr
- APP_LOCALES=fr,en - APP_LOCALES=fr,en
- REDIS_DSN= redis://redis:6379?&prefix=hydradispatcher&ttl=3600 - REDIS_DSN="redis://rfs-sso-redis:26379?&redis_sentinel=mymaster"
wpetit marked this conversation as resolved Outdated

Cet ligne ne devrait pas être patchée/injectée par le composant Redis ?

Cet ligne ne devrait pas être patchée/injectée par le composant Redis ?
- name: hydra-dispatcher-apps - name: hydra-dispatcher-apps
files: files:
- apps.yaml=./files/hydra/default.yaml - apps.yaml=./files/hydra/default.yaml