Muppy Packages are Muppy's standard system for managing Kubernetes configurations.
A Muppy Package's structure derives from Helm Packages. It is made of the following files:
- chart.yml — which describes the package
- config templates (Muppy handles several config types: Config, Jobs, CRON)
- a values.yml file
- assorted files (licence, readme, …)
Muppy Packages offer the following features:
- Distribution and sharing go through Git repositories (GitLab or GitHub), private or public. Muppy Packages can also be distributed as an archive (.tgz).
- The templates are rendered on the Muppy server and applied as a kubectl config file. The "applied" file is kept in history and available from Muppy.
- Every configuration change and every applied package is journalled (Config Journal).
- Every piece of information Muppy knows about the k8s clusters (provider, Storage Class, load balancer, …) is available as a template variable.
- Muppy implements a Dashboard system to control the deployments and the pods (replica count, resources, autoscaling, …) from the Muppy GUI.
- Debug Mode, which lets you get inside your container with a VSCode!
- Features for High Availability deployments, optionally across several clouds.
- A single Package can deploy different applications through K8s Package Profiles. For example, one SpringBoot Muppy Package can deploy applications that differ in image, resources, URL and upgrade process.
- … to be completed
The Muppy Packages workflow¶
Putting Muppy Packages to work goes through the following steps:
- Find a Package that suits you at https://gitlab.com/muppy-io/k8s-packages, or fork the one closest to your need.
-
In muppy:
- Create a K8s Package and connect it to the repository of the package you chose.
- Synchronise the K8s Package with the repository's content. You can do this as often as you like.
- Create a K8s Package Profile to define the version, the image, the resources, …
- Create a Package Release referencing your Package Profile, to deploy your Application.
- The Package Release is the GUI of a deployed Package: it is where you restart it, change it or upgrade it.
To be documented¶
- Triggering Package Release updates from changes to the env files
- Using qualifiers to select the configuration files automatically from the cluster type (Dev, Test, Production, …)
- …
How Muppy Packages work¶
One of the points of a Muppy Package is to offer an administration GUI for the deployed Applications.
To that end, Muppy treats the values files as Templates, whose variables are generated by the Dashboard.
Info
This is an important difference from Helm charts, where the Values are typed in by the operator.