Son contenu (renduChaine) est déjà accessible, par hôte, dans l'onglet « Chaîne » du détail de la vue Inventaire ; la vue ne faisait que le répéter pour tous les hôtes. Retire le bouton, le rendu dessinerArbre et le CSS .arbre-* ; raccourcis clavier ramenés à 1-4. La chaîne reste consultable hôte par hôte. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
116 lines
7.4 KiB
Markdown
116 lines
7.4 KiB
Markdown
# CHANGELOG — Set-OPS
|
|
|
|
## 2026-06-30
|
|
|
|
### Ajouté
|
|
- **Fluidité d'exploitation du GUI** (sans dépendance, stdlib pure) :
|
|
- **Notifications empilées (toasts)** auto-effaçables au lieu d'une bannière unique
|
|
écrasée ; les erreurs restent plus longtemps, les opérations longues mettent à
|
|
jour leur propre toast.
|
|
- **Durée d'exécution** affichée en direct dans la console (Vérifier / Déployer) et
|
|
suivi vivant de « Appliquer le plan ».
|
|
- **Navigation clavier** : `1-5` changent de vue, `j/k` parcourent les hôtes,
|
|
`v`/`d` vérifient/déploient l'hôte sélectionné, `/` cible le filtre, `Ctrl+S`
|
|
sauvegarde la vue éditable courante (ignorés pendant la saisie).
|
|
- **Validation inline** des champs du plan (vue Serveurs) : nom `fonction-NN`,
|
|
mémoire, cœurs, disque — liseré rouge et blocage avant l'envoi.
|
|
- **Garde-fou anti-perte** : confirmation `beforeunload` si des éditions de plan ne
|
|
sont pas sauvegardées.
|
|
- Le bouton **Sauvegarder** de l'en-tête devient contextuel (sauve la vue éditable,
|
|
désactivé en lecture seule) — fin de l'impasse 409 ; suppression du code mort.
|
|
|
|
### Ajouté
|
|
- **Vue Serveurs : champs alimentés par les paramètres globaux.** À `+ Serveur`,
|
|
**Nœud** et **Stockage** deviennent des listes déroulantes (catalogues
|
|
`proxmox_noeuds` / `proxmox_stockages`, vide = défaut global) et **Intégrations**
|
|
une rangée de cases à cocher des rôles `client_*` disponibles (au lieu d'une saisie
|
|
texte). Les catalogues Nœuds / Stockages / Ponts sont de nouveaux intrants
|
|
(classe « Catalogue ») éditables dans le panneau « Intrants de base » et stockés
|
|
dans `group_vars/proxmox.yml` ; l'API expose `integrations_disponibles` (scan de
|
|
`roles/client_*`). Le type `liste` (chaîne virgulée → liste YAML dédoublonnée) est
|
|
ajouté au schéma des intrants.
|
|
|
|
### Supprimé
|
|
- **Vue « Chaîne » du bandeau (redondante).** Son contenu (`renduChaine`) était déjà
|
|
rendu, par hôte, dans l'onglet « Chaîne » du détail de la vue Inventaire ; la vue ne
|
|
faisait que le répéter pour tous les hôtes à la fois, sans réseau/proxmox ni boutons
|
|
d'opération. Retirée (bouton, rendu `dessinerArbre`, CSS `.arbre-*`) ; la chaîne
|
|
reste consultable hôte par hôte. Raccourcis clavier ramenés à 1-4.
|
|
|
|
### Modifié
|
|
- **Vue Inventaire (cartes) : détail converti en inspection lecture seule.** La vue
|
|
affichait « généré depuis le plan (lecture seule) » tout en exposant une surface
|
|
d'édition (+ Hôte, ✕, bascule actif/planifié, ✨ Proposer, champs et cases de
|
|
groupes éditables) qui ne pouvait pas être persistée (l'inventaire est généré ;
|
|
`/api/inventaire` renvoie 409). Ces contrôles orphelins sont retirés : nom, champs
|
|
Réseau/Proxmox et groupes en lecture seule, état affiché en badge. **Vérifier /
|
|
Déployer** et les onglets d'inspection sont conservés. L'édition reste dans les vues
|
|
**Serveurs / Applications / Bases**. Code mort supprimé (`ajouterHote`,
|
|
`supprimerHote`, `definir`, `definirNom`, `definirEtat`, `basculerGroupe`,
|
|
`proposer`, `autoProposer`, `prochainSeqLibre`, `marquerModifie`, état `modifie`).
|
|
- **Référence des paramètres de `make config`** (`docs/config-proxmox.md`).
|
|
Explique un par un les 16 paramètres Proxmox non sensibles + les secrets API
|
|
demandés par l'assistant : sens, valeur par défaut, quoi saisir, et quels champs
|
|
sont des constantes vs des défauts surchargeables par hôte. Renvois ajoutés depuis
|
|
`make help` et `QUICKSTART.md`. Comble un trou : ces invites n'étaient expliquées
|
|
nulle part de façon pérenne (impératif « exploitable sans IA »).
|
|
- **Panneau « Intrants de base » dans le GUI.** Un bouton ⚙ Intrants ouvre une fenêtre
|
|
unique pour saisir les valeurs communes à tout l'écosystème, avec une distinction
|
|
visible entre **constantes** (valeur unique, non surchargeable) et **défauts**
|
|
(valeurs proposées, surchargeables dans les instances). Les secrets ne sont **jamais**
|
|
saisis ni affichés ici (garde-fou `INTRANTS_CLES_INTERDITES` + filtrage par schéma) :
|
|
ils restent dans le Vault Ansible, édités en CLI ; le panneau les liste seulement à
|
|
titre informatif. Un changement de `domaine_interne` (clé de voûte) demande une
|
|
confirmation explicite ; un `domaine_interne` vide est refusé côté serveur. La
|
|
nomenclature reste en lecture seule (modifiable dans le plan). Voir
|
|
`docs/intrants-communs.md` et `docs/intrants-base-gui-conception.md`.
|
|
- **Source unique d'identité partagée.** `domaine_interne` et `chezlepro_timezone`
|
|
vivent désormais dans `inventories/partage/intrants-identite.yml`, référencé par
|
|
symlink depuis chaque environnement (`group_vars/all/10-intrants.yml`) — fin de la
|
|
duplication lab/production.
|
|
- **Info-bulles d'aide sur les champs du GUI.** Survoler la description d'un champ à
|
|
saisir affiche une bulle avec des instructions sommaires.
|
|
|
|
## 2026-06-28
|
|
|
|
### Ajouté
|
|
- **Document de présentation de l'écosystème Chezlepro** (`docs/ecosysteme-chezlepro.md`).
|
|
Description vulgarisée à destination client/partenaire : les piliers de l'écosystème
|
|
souverain, le modèle reproductible (plan → génération → clonage → conformité), et un
|
|
inventaire des **mesures de renforcement** réellement en place (SSH durci, fail2ban,
|
|
sysctl, nftables, AppArmor, auditd, mises à jour automatiques, gestion des secrets,
|
|
garde-fous destructifs, sécurité par l'architecture). Honnête sur le statut
|
|
« défini/validé vs déployé ».
|
|
|
|
### Ajouté
|
|
- **Dimensionnement dérivé des ressources VM.** Les cœurs/RAM/disque d'une VM sont
|
|
désormais **estimés depuis les logiciels hébergés + le socle SE**, au lieu d'hériter
|
|
des specs du golden template (CPU/RAM identiques pour toutes les VM auparavant).
|
|
Chaque rôle déclare son empreinte (`roles/<rôle>/meta/empreinte.yml`) ; le
|
|
générateur somme par hôte (marge + arrondis) et écrit `proxmox_coeurs`/
|
|
`proxmox_memoire`/`proxmox_disque_taille` ; le clonage passe `cores`/`memory` à
|
|
Proxmox (`omit` si absent → aucune régression). Override par hôte possible dans le
|
|
plan (`serveurs.yml`). Voir `docs/dimensionnement-ressources.md`.
|
|
|
|
### Corrigé
|
|
- **`make instancier-appliquer FORCE=1` n'honorait pas `--force`.** La recette Makefile lançait `instancier.py appliquer` sans relayer `FORCE` ; le message « Utilise FORCE=1 » était donc trompeur (un changement de plan intentionnel restait bloqué). La recette passe désormais `$(if $(FORCE),--force)`. Trouvé en dogfooding.
|
|
|
|
## 2026-06-24 — Première publication publique
|
|
|
|
Première mise à disposition publique de **Set-OPS**, moteur Ansible d'écosystèmes
|
|
numériques souverains sur Proxmox — offert à la communauté québécoise par
|
|
l'**Alliance Boréale**, à la Saint-Jean-Baptiste 2026.
|
|
|
|
- **Moteur générique, piloté par un plan déclaratif** : on édite le plan
|
|
(`instance/plan/*.yml`), l'inventaire Ansible se génère, les VM se clonent depuis
|
|
un golden template Debian 13, les rôles s'appliquent par groupes. Tout passe par
|
|
`make`, le GUI local et la documentation.
|
|
- **Piliers d'un écosystème souverain** : socle Debian durci, AC/PKI interne, DNS
|
|
interne, identité (LDAP + SSO), relais courriel, bases de données, observabilité,
|
|
forge.
|
|
- **Catalogue de modèles prêts à déployer** (`exemples/modeles/`) : un hébergeur
|
|
copie un modèle, le renseigne à ses couleurs, et instancie.
|
|
- **Souveraineté jusqu'au bout** : Set-OPS s'exploite entièrement à la main, sans
|
|
aucune IA.
|
|
|
|
Pour démarrer : **`QUICKSTART.md`**.
|