Skip to content

Les Muppy Packages sont le système standard de gestion des configs Kubernetes de Muppy.

La structure d'un Muppy Package est dérivée des Helm Packages. Elle est composée des fichiers suivants:

  • chart.yml ; qui décrit le package
  • des config templates (Muppy gère différents type de config: Config, Jobs, CRON)
  • un fichier values.yml
  • divers fichiers (licence, readme,...)

Les Muppy Packages offrent les fonctionnalités suivantes:

  • La distribution et le partage sont réalisés via des repository Git (Gitlab ou Github) privés ou publics. Les Muppy Packages peuvent aussi être distribués sous forme d'archive (.tgz).
  • Les templates sont rendues dans le serveur Muppy et appliquées sous forme de fichier kubectk config. Le fichier "applied" est historisé et disponible via muppy.
  • Toutes les modifications de configuration et les packages appliqués sont journalisés (Config Journal)
  • Toutes les informations relatives aux clusters k8s connues de Muppy (provider, Storage Class, load balancer... sont disponibles comme variable de templates)
  • Muppy implémente un système de Dashboards qui permet de controler les deployments et les pods (nombre de replicas, ressources, autoscaling, ...) depuis le GUI Muppy
  • Le Debug Mode qui permet de rentrer dans son container via un VSCode !
  • Fonctionnalités de gestion des déploiements Haute Disponibité et éventuellement en multi cloud.
  • Un même Package peut être utilisé pour déployer des applications differentes via les K8s Packages Profiles. (Par exemple, un unique Muppy Package SpringBoot permet de déployer des applications différentes en terme d'image, resources, URL et process d'upgrade)
  • ... à compléter

Workflow de mise en oeuvre des Muppy Packages

La mise en oeuvre des Muppy Package passe par les étapes suivantes:

  • Rechercher un Package qui vous convient dans https://gitlab.com/muppy-io/k8s-packages ou forker celui qui est le plus proche de votre besoin.
  • Dans muppy,

    • Créez un K8s Package et le connecter au repository du package que vous avez choisi.
    • Synchronisez le K8s Package avec le contenu du repositiory. Vou pouvez réaliser cette opération aussi souvent que vous le souhaitez.
    • Créez un K8s Package Profile pour définir la version, l'image, les resources, ...
    • Créez un Package Release qui référence votre Package Profile pour déployer votre Application.
    • Le Package Release est le GUI d'un Package Déployé, il vous permet de le redémarrer, le modifier ou l'upgrader.

A documenter

  • Trigger de mise à jour des Packages Release par les modifs des fichiers env
  • Utilisation des qualifiers pour sélectionner automatiquement les fichiers de conf à partir du type de cluster (Dev, Test, Production...)
  • ...

Fonctionnement des Muppy Packages

Un des intérêts des Muppy Package est d'offrir un GUI d'administration des Applications déployées.

Pour cela, Muppy gère les fichiers values comme des Templates dont les variables sont générées par le Dashboard.

Info

C'est une différence importante par rapport aux Helm charts dans lesquelles les Values sont saisies par l'opérateur.