Skip to content

📩 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 :

  1. ✅ Changement de profil
    Le nouveau K8s Package Profile est affectĂ© Ă  l’instance.

  2. ⚙ 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_path
      • default_path_debug
      • healthcheck_path
      • fqdn_hostname_smart_config_id (si prĂ©sent dans le nouveau profil)
  3. đŸ§© 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.

  4. ♻ Reload Values (si activĂ©)

    • Recharge les valeurs du dashboard depuis le profil
    • Recharge le contenu du fichier values depuis le package
  5. đŸ§č 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
  6. 🧬 Calcul des valeurs finales
    Le résultat combiné (valeurs par défaut + overloads) est injecté dans Final Values

  7. 🚀 DĂ©ploiement
    Exécution de la commande helm upgrade avec les Final Values


❌ Suppression¶

À documenter ultĂ©rieurement