# Installer les packages d'infrastructures

{% hint style="warning" %}
Uniquement les clusters microk8s installé par Muppy peuvent être directement configuré avec l'assistant d'installation
{% endhint %}

## Introduction

Muppy permet d'installer les packages d'infrastructures nécessaires à un cluster Kubernetes. Il est donc nécessaire d'avoir un cluster Kubernetes opérationnel et géré par Muppy

## Installation

Une fois l'installation de votre cluster microk8s, via Muppy, réalisée, aller dans le menu **K8s** -> **K8s Clusters.**

Cliquer ensuite sur votre cluster Kubernetes. Aller dans **Action ->Install Single Node Infra. Package.**\
Une nouvelle fênetre s'affiche à votre écran&#x20;

<figure><img src="/files/6hTkoRVlIqtaP32kFGQz" alt=""><figcaption></figcaption></figure>

Plusieurs informations sont affichées:

* **Cluster**: Cluster Kubernetes à configurer. Par défaut, le cluster sera celui sur lequel vous voulez lancer l'installation
* **Provider**: Provider du cluster
* **Host**: L'**Host** sur lequel le cluster a été installé
* **Muppy Type**: Le type du cluster installé

### Onglet Configuration

{% hint style="danger" %}
En mode public et avec Tailscale, la CIDR Dynamic Range doit contenir l'adresse IP publique de l'**Host** et les « nœuds de sortie » Tailscale qui seront autorisés à accéder aux tableaux de bord.\
Sans cela, le trafic de Tailscale sera bloqué
{% endhint %}

* **Cluster Security Mode**: Permet de définir si votre cluster Kubernetes est complètement fermé (privé) ou accessible depuis l'extérieur (public)
  * **Privé**: Le cluster Kubernetes ainsi que les applications ne seront accessibles que depuis l'adresse IPV4 privée&#x20;
  * **Public** : Le cluster Kubernetes et les applications pourront être accessible depuis n'importe quel IP. Cette option peut-être utile si vous souhaitez, par exemple, que certaines applications soient accessibles au public et que d'autres soient complètement privée. Si l'option 'public' est choisi alors plusieurs autres paramètres sont à définir
    * **Install TCP LoadBalancer**: Par défaut, Muppy installera un Traefik configuré comme un TCP Router
    * **Allowed CIDR Dynamic Range**: Plage dynamique CIDR qui sera utilisée pour configurer la liste blanche des IPs pour le tableau de bord Kubernetes et Traefik .
    * **Create Default CIDR Dyn. Range**: Muppy va créer un Default CIDR Dynamic Range contenant l'adresse ip publique de l'**Host**
* **Private CIDR**: IPV4 de l'interface privée. L'IPV4 de Tailscale est automatiquement remontée si elle a été défini avec Muppy.
* **Public CIDR**: IPV4 de l'interface publique. Par défaut, Muppy prend l'IPV4 du **Host**
* **Default DNS Domain**: Le domaine DNS qui sera utilisé par défaut. Le domaine sera utilisé pour publier les tableaux de bord (Traefik et Kubernetes). Vous devez utiliser un domaine d'un fournisseur géré par Muppy (Cloudflare, OVH, ...)
* **ACME Registration Email**: L'adresse e-mail qui sera utilisée pour générer les certificats Let's Encrypt&#x20;
* **Default PostgreSQL Cluster**: Le cluster PostgreSQL du cluster Kubernetes&#x20;

{% hint style="danger" %}
Muppy va configurer le cluster PostgreSQL pour accepter les connexions des pods. Mais vous devez redémarrer le cluster PostgreSQL vous-même.
{% endhint %}

### Components to Install

* **Install CertManager**: Par défaut, Muppy installera CertManager
* **Install CertManager Webhook OVH**: Par défaut, Muppy installera le webhook OVH pour CertManager
* **Install Traefik**: Par défaut, Muppy installera Traefik
* **Install Traefik Dashboard Ingress**: Par défaut, Muppy installera le tableau de bord Traefik Ingress
* **HTTP Basic. Auth. Vault**: Muppy protège l'accès à Traefik Dashboard avec HTTP Basic Auth. Pour définir l'utilisateur et le mot de passe, vous devez fournir un objet Vault de type Apache htpasswd. Ce champ est OBLIGATOIRE lorsque Traefik Dashboard Ingress est sélectionné pour l'installation. Par défaut, Muppy sélectionnera n'importe quel objet Vault avec le code : « traefik-dashboard » s'il en existe un. Si aucun Vault n'existe, vous pouvez utiliser « Créer un objet d'authentification de base HTTP ».
* **Install Kubernetes Dashboard**: Par défaut, Muppy installera le tableau de bord Kubernetes
* **Install Kubernetes Dashboard Ingress**:  Par défaut, Muppy installera le tableau de bord Kubernetes Ingress

{% hint style="warning" %}
Par défaut, Muppy configure tous les tableaux de bord (Traefik et Kubernetes) exposés sur l'interface Privée (même sur les clusters Publics). Vous pourrez modifier cela ultérieurement dans la configuration réseau « Instances de package ».
{% endhint %}

### Advanced

* **Certmanager Webhook OVH Values Template Code**: Permet de spécifier un template a utiliser lors de l'installation du webhook OVH.
* **Traefik Values Template Code**: Code du modèle Muppy utilisé pour restituer les valeurs Traefik. Si aucune valeur n'est spécifiée, la valeur par défaut fournie par Muppy sera utilisée.
* **Update Cluster Network Info**: Lorsque cette case est cochée, Muppy mettra à jour l'onglet 'Network'de l'objet 'K8s Cluster' avec le domaine DNS, l'e-mail ACME et le générateur FQDN par défaut.
* **Dry Run**: Cette option permet de lancer l'installation des packages d'infrastructures de façon synchrone. **/!\ Utilisation uniquement pour déboggage**

Une fois la configuration faite, cliquer sur "**Launch**". Muppy lancera alors l'installation des packages d'infrastructure basé sur la configuration que vous avez effectuée.

Patientez quelques minutes puis cliquez sur le menu **K8s -> Installed Packages**. Les packages d'infrastructures souhaités seront présents depuis ce menu.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.muppy.io/guides/kubernetes/installer-les-packages-dinfrastructures.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
