Skip to content

minabl/Helm-ArgoCD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

Rapport : Déploiement d’Applications avec Helm Charts et ArgoCD

Introduction

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.

Architecture du Projet

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  

Étapes Réalisées

  1. 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
  1. 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.
  2. 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
    
  3. 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
  
  
Capture d'écran de l'application React
5. Configuration d’ArgoCD pour le Déploiement via Git
  • Modifiez le mot de passe:
Capture d'écran de l'application React
- 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.
    Capture d'écran de l'application React
  1. 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.
  2. 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
  3. 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 


Images du Projet

Capture d'écran de l'application React Capture d'écran de l'application React Capture d'écran de l'application React Capture d'écran de l'application React Capture d'écran de l'application React

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages