This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/docs/applications.yml
Daniel Allaire abd6395a13 Faire de l'application une entite de premiere classe (BD multi-portee)
Une VM peut porter plusieurs applications ; c'est l'application, pas l'hote,
a laquelle une base se lie via son DSN.

- docs/applications.yml : nouveau registre application -> groupe, hote.
- docs/bases-donnees.yml : champ 'portee' (application|groupe|hote, defaut
  groupe). Une application A (groupe G, hote H) recoit les bases ou
  (portee=application ET consommateur=A) OU (portee=groupe ET consommateur=G)
  OU (portee=hote ET consommateur=H). Plusieurs DSN par application.
- inventory_rules.py : charger/valider_applications, applications_de_hote,
  bases_de_application, PORTEES_BD ; valider_bases croise portee=application
  avec le registre des applications.
- CLI : scripts/applications.py + bases_donnees.py --portee ; cibles make
  applications / applications-verifier ; integre a inventaire-verifier.
- GUI : vue Applications (CRUD), portee + consommateur dynamique dans Bases,
  vue Chaine par application (DSN resolus par hote).
- filter_plugins/registres.py : meme regle de resolution exposee a Ansible
  (source unique). Playbooks web_dorsaux/web_frontaux iterent sur les
  applications de l'hote (scaffold ; deploiement applicatif s'y insere).

Services en grappe (keycloak/icingadb/forgejo) restent en portee groupe.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 13:38:30 -04:00

23 lines
985 B
YAML

---
# Registre des applications Set-OPS — l'application est l'entite PIVOT.
#
# Une VM (hote) peut porter PLUSIEURS applications. L'application, pas l'hote,
# est ce a quoi une base de donnees se lie (via son DSN). C'est aussi l'entite
# que l'exposition DNS pourra cibler a terme.
#
# Chaque application :
# <id> : identifiant unique (minuscule, court) ex. boutique
# groupe : groupe operationnel / role dont elle releve ex. serveurs_web_dorsaux
# hote : hote de l'inventaire ou elle s'execute ex. web-dorsal-01
#
# Une base se lie a une application via consommateur=<id> + portee=application
# dans docs/bases-donnees.yml. Une application recoit aussi les bases de portee
# 'groupe' de son groupe (bases partagees).
applications: {}
# boutique:
# groupe: serveurs_web_dorsaux
# hote: web-dorsal-01
# blog:
# groupe: serveurs_web_dorsaux
# hote: web-dorsal-01 # meme VM que boutique : 2 applications sur 1 hote