Funk-lab/ansible/roles/postgresql
ALI YESILKAYA 224c06041e
feat(forgejo): Git self-host en miroir de GitHub (git.funklab.online, SSO Authentik) (#96)
- k8s/apps/forgejo : deployment (image forgejo:11, config par env), service, PVC nfs,
  IngressRoute interne (git.lab.local) + publique (git.funklab.online + middlewares
  security-headers/ratelimit), Application ArgoCD (ns ai, recurse)
- base PostgreSQL `forgejo` sur storage-01 (rôle postgresql)
- vault : vault_pg_forgejo_password + vault_forgejo_oauth_client_secret
- doc admin/k8s/forgejo.md (archi, OIDC, création du miroir, pièges) + index + CLAUDE.md

GitHub reste la source de vérité (pull-mirror lecture seule) — ArgoCD inchangé.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 23:20:33 +02:00
..
defaults feat(forgejo): Git self-host en miroir de GitHub (git.funklab.online, SSO Authentik) (#96) 2026-07-07 23:20:33 +02:00
handlers feat: initial commit — Ansible roles storage-01/gpu-01 opérationnels 2026-05-12 17:17:03 +02:00
tasks fix(k8s/open-webui): memory 1Gi→2Gi (OOMKill HuggingFace download au boot) 2026-05-29 15:42:54 +02:00
templates feat: initial commit — Ansible roles storage-01/gpu-01 opérationnels 2026-05-12 17:17:03 +02:00
README.md docs(ansible): README par rôle (19) + gaps IaC découverts à l'audit 2026-06-10 15:21:24 +02:00

postgresql

PostgreSQL 16 sur storage-01 — persistance de Hermes, LiteLLM, n8n, Open WebUI (et Grafana).

Ce que fait le rôle

  • Repo PGDG + désactivation du module AppStream
  • PGDATA déplacé vers /srv/data/postgres (override systemd)
  • Init du cluster si absent, pg_hba.conf, listen_addresses, port, shared_buffers
  • Crée bases + users + privilèges (dont GRANT ON SCHEMA public requis en PG 15+)

Variables principales

Variable Défaut
postgresql_version 16
postgresql_data_dir /srv/data/postgres
postgresql_listen_addresses localhost, 192.168.10.1 (pods k8s via LAN)
postgresql_databases / postgresql_users hermes, litellm, openwebui, n8n

Mots de passe dans le vault : vault_pg_hermes_password, vault_pg_litellm_password, vault_pg_openwebui_password, vault_pg_n8n_password.

Caveat

  • Les tasks de Grant utilisent no_log — en cas d'échec, relancer avec -vvv après avoir temporairement retiré no_log
  • Les pods k8s (n8n, openwebui, grafana) se connectent via 192.168.10.1:5432 — port ouvert dans nftables (rôle gateway)