đŠ Kubernetes Installed Packages¶
Muppy facilite le dĂ©ploiement de packages Helm dans les clusters Kubernetes via une interface graphique intuitive. Elle permet aux utilisateurs de gĂ©rer lâensemble de leurs packages directement depuis lâinterface Muppy.
𧩠Muppy Meta Package (m2p)¶
Muppy propose Ă©galement lâutilisation des Muppy Meta Packages (m2p).
Un m2p est un outil qui simplifie le déploiement d'applications complexes sur Kubernetes en regroupant plusieurs conteneurs Docker et leurs configurations dans un seul paquet, appelé metapackage.
Ce metapackage est composĂ© de parts, des sous-composants modulaires reprĂ©sentant des services, leurs dĂ©pendances et paramĂštres. GrĂące Ă cette structure, mĂȘme les utilisateurs ayant peu dâexpĂ©rience avec Kubernetes peuvent dĂ©ployer des applications avancĂ©es de maniĂšre fluide et rapide.
đ§± Composants dâun dĂ©ploiement¶
Le dĂ©ploiement dâun package repose sur les Ă©lĂ©ments suivants :
-
đŠ K8s Package : dĂ©finition du package Ă dĂ©ployer (Helm chart ou fichiers Kubernetes appliquĂ©s avec
kubectl)
â Pour Helm, il inclut les valeurs par dĂ©faut (values.yaml) -
đ§Ÿ K8s Package Profile : dans le cas des metapackages, les profils dĂ©finissent :
- Les parts qui composent le package
- Les ressources (limites, réplicas) par défaut
- Les dashboards pour la configuration
-
Les versions disponibles et les stratégies de montée en version
-
đ Installed Package : une instance dâun K8s Package dĂ©ployĂ©e dans un cluster Kubernetes, avec les paramĂštres dĂ©finis dans un K8s Package Profile
-
đ Config Journal : journal des opĂ©rations Helm effectuĂ©es sur un package (historique des dĂ©ploiements, upgrades, diffs, etc.)
đ Cycle de vie dâun package¶
- đ CrĂ©ation (Ă documenter)
- đ ïž Installation / Modification
- âïž Ădition (Update)
- đ Upgrade (montĂ©e de version)
- â Suppression (Ă documenter)
âïž Modification¶
Deux types de modifications sont possibles :
1. Ădition / Update¶
Modifications gérées directement par Helm :
- Changements dans les values
- Configurations des parts
- Réglages réseaux ou dashboards
Muppy dĂ©tecte automatiquement les Ă©carts entre la configuration actuelle et celle souhaitĂ©e et affiche lâindicateur "Drifted values".
Ces modifications sont appliquées lors du prochain helm upgrade.
Chaque helm upgrade est historisé dans le Config Journal, avec :
- Les valeurs utilisées
- Le diff par rapport à la version précédente
2. đ Package Upgrade¶
Pour les cas oĂč une mise Ă jour impacte les bases de donnĂ©es ou nĂ©cessite lâarrĂȘt de lâapplication, Muppy propose un mĂ©canisme avancĂ© de montĂ©e de version : Package Release Upgrade.
Disponible via :
- đ§ Wizard âPackage Release Upgradeâ
- âïž API CI/CD
Basé sur la gestion de version SEMVER, il permet :
- Dâidentifier les profils de version
- DâexĂ©cuter des scripts de migration
- Dâappliquer les changements en toute sĂ©curitĂ©
đ Profils de version¶
Un profil contient :
- đ§ DĂ©finition des parts
- đ Dashboards associĂ©s
- đ§Ș Script de migration (si nĂ©cessaire)
- đ CritĂšres dâapplication
đ§ââïž Fonctionnement du Package Release Upgrade¶
Contrairement Ă un helm upgrade classique, le wizard dâupgrade de version attend :
- đŻ K8s Profile Ă appliquer
- â»ïž Reload Values (boolĂ©en) : recharge les valeurs par dĂ©faut depuis le profil
- đ§č Reset Values Overload (boolĂ©en) : rĂ©initialise ou fusionne les valeurs personnalisĂ©es
đ Ătapes dĂ©taillĂ©es de lâupgrade¶
Si le profil à déployer est différent de celui actuellement en place, le processus de montée de version suit les étapes suivantes :
-
â Changement de profil
Le nouveau K8s Package Profile est affectĂ© Ă lâinstance. -
âïž ExĂ©cution de
onchange__k8s_package_profile_id()
Cette méthode effectue les actions suivantes :-
Appel Ă
reload_mpy_meta_config_yaml()pour recharger la configuration des parts :- Depuis le profil, ou
- à défaut, depuis le package
-
Mise Ă jour des champs :
default_pathdefault_path_debughealthcheck_pathfqdn_hostname_smart_config_id(si présent dans le nouveau profil)
-
-
đ§© Application des dashboards
Les dashboards dĂ©finis dans le nouveau profil sont mis en place.â ïž PrĂ©servation des valeurs existantes
Les valeurs saisies précédemment dans les dashboards sont préservées par défaut. -
â»ïž Reload Values (si activĂ©)
- Recharge les valeurs du dashboard depuis le profil
- Recharge le contenu du fichier
valuesdepuis le package
-
đ§č Reset Values Overload (si activĂ©)
- Si activé : la section Values Overload est remplacée par les nouvelles valeurs
- Sinon : les nouvelles valeurs sont fusionnées avec les valeurs existantes
-
đ§Ź Calcul des valeurs finales
Le résultat combiné (valeurs par défaut + overloads) est injecté dans Final Values -
đ DĂ©ploiement
Exécution de la commandehelm upgradeavec les Final Values
â Suppression¶
à documenter ultérieurement