Ce projet consiste à utiliser Helm pour gérer les déploiements sur un cluster Kubernetes et à intégrer ArgoCD pour le déploiement continu. Nous avons créé des Helm Charts pour déployer une application MERN composée de MongoDB, d'un serveur Node.js, et d'un client React. L'outil ArgoCD est utilisé pour automatiser le déploiement continu à partir d'un dépôt Git hébergeant les charts Helm.
L'architecture du projet est basée sur trois composants principaux, chacun déployé à l'aide de Helm Charts et géré via ArgoCD :
- MongoDB : Base de données NoSQL utilisée par l'application.
- Serveur MERN : API Node.js qui sert de backend pour l'application.
- Client MERN : Interface React consommant les services du serveur
mern-charts/
│ ├── mongodb/
│ │ ├── Chart.yaml
│ │ ├── values.yaml
│ │ ├── templates/
│ │ │ ├── deployment.yaml
│ │ │ ├── service.yaml
│ │ │ └── pvc.yaml
│ ├── server/
│ │ ├── Chart.yaml
│ │ ├── values.yaml
│ │ ├── templates/
│ │ │ ├── deployment.yaml
│ │ │ ├── service.yaml
│ │ │ └── ingress.yaml
│ ├── client/
│ │ ├── Chart.yaml
│ │ ├── values.yaml
│ │ ├── templates/
│ │ │ ├── deployment.yaml
│ │ │ ├── service.yaml
│ │ │ └── ingress.yaml
- Télécharger le binaire Helm : - lien : https://github.com/helm/helm/releases - Vérification de l'installation de Helm avec la commande :
helm version
-
Création des Helm Charts pour l’application MERN
- Création de trois charts Helm séparés pour MongoDB, le serveur, et le client.
- Modification des fichiers values.yaml pour configurer chaque composant selon les besoins.
-
Hébergement des Charts Helm dans un Dépôt Git
cd ../ git init git add mern-charts/ git commit-m "Ajout des charts Helm" git remote add origin [URL_DU_DEPOT_GIT] git branch-M main git push-u origin main
-
Installation d’ArgoCD et Accès à l’Interface
//Créez un namespace dédié pour ArgoCD
- kubectl create namespace argocd
- kubectl get namespaces
// Installation d’ArgoCD
- kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
// Vérifiez que les pods d’ArgoCD
- kubectl get pods -n argocd
- Modifiez le mot de passe:
- CliquezsurSettings(icône en forme d’engrenage) puis sur Repositories.
- Cliquez sur Connect Repo using HTTPS ou Connect Repo using SSH,selon votre configuration.
- Si votre dépôt est privé, vous devrez fournir des informations d’authentification (clé SSH ou token d’accès personnel).
- Création de l'application mern-app dans ArgoCD, incluant la configuration des paramètres Helm, comme le nom de l’application, le dépôt Git, et le namespace de destination.
-
Mise à Jour Continue avec ArgoCD
- Modification des charts Helm ou des fichiers de configuration et mise à jour du dépôt Git.
- ArgoCD détecte les modifications et met à jour l'application automatiquement sans intervention manuelle.
-
Accès à l'Application Déployée
- Ouvrir l'Éditeur de texte avec des privilèges administratifs.
- Accéder au fichier hosts
- Modifier le fichier hosts : 127.0.0.1 mern-app.local
-
Nettoyage des Ressources
- kubectl delete -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
- kubectl delete namespace argocd
- kubectl get namespaces