Date de publication : 2 septembre 2026
Temps de lecture : 10 min
Automatisez l'infrastructure AWS et la livraison d'applications de bout en bout : OpenTofu provisionne EKS, GitLab CI/CD compile et empaquète, Argo CD déploie via GitOps.

La configuration d'environnements cloud est une opération complexe, qui implique de prendre en compte la mise en réseau, les abonnements, les services et l'ensemble des composants constituant l'infrastructure sous-jacente. Une configuration manuelle est source d'erreurs, manque de cohérence et s'avère difficile à reproduire.
Ce tutoriel explique comment mettre en place un environnement cloud entièrement automatisé en utilisant GitLab comme plateforme opérationnelle centrale. L'intégralité de l'infrastructure cloud est définie sous forme de code (hébergé sur GitLab) et déployée sur AWS avec OpenTofu via des pipelines GitLab CI/CD. Ces pipelines gèrent également le build et le déploiement d'une application web réelle, en appliquant les pratiques GitOps avec Argo CD.
Avant tout, il est important de comprendre pourquoi l'Infrastructure as Code (IaC) et GitOps sont essentiels, et comment GitLab réunit ces pratiques au sein d'une seule et même plateforme.
L'IaC garantit que les environnements sont :
GitOps étend ces principes au cycle de vie des applications. Plutôt que d'appliquer manuellement des modifications aux clusters Kubernetes (ou à d'autres infrastructures), l'état souhaité des applications est défini dans Git. Un opérateur GitOps comme Argo CD veille en permanence à ce que le cluster reflète le contenu du dépôt. Cette approche assure :
GitLab réunit toutes les capacités nécessaires à cette approche :
Avec GitLab, toutes les étapes, du provisionnement de l'infrastructure cloud à la livraison des applications, s'effectuent sur une seule et même plateforme.
Pour suivre ce tutoriel, vous aurez besoin des éléments suivants :
Poursuivez votre lecture pour découvrir comment reproduire cet exemple dans votre propre environnement GitLab. Le code source de cet exemple est disponible dans le groupe de démos publiques SATEC.
La première étape consiste à provisionner l'infrastructure cloud avec OpenTofu (le fork open source de Terraform). Nous pouvons définir de manière déclarative les composants réseau et créer un cluster Amazon EKS.
Pour assurer la reproductibilité et la sécurité de ce processus, nous nous appuyons sur les variables CI/CD de GitLab plutôt que sur des valeurs codées en dur. Ces variables permettent de configurer l'environnement AWS de façon dynamique d'un pipeline à l'autre.
Les variables d'environnement suivantes sont requises et doivent être déclarées sous Paramètres > CI/CD > Variables dans le groupe parent (afin d'être héritées par tous les projets) :
Toutes les variables sont définies comme protégées dans GitLab, et les plus sensibles, comme la clé d'accès secrète AWS, sont également masquées, ce qui garantit qu'elles ne sont exposées que dans des contextes CI/CD sécurisés. La sécurité peut être renforcée davantage en suivant ce tutoriel sur les variables CI/CD. La séparation du code et de la configuration assure la flexibilité du pipeline et son indépendance face aux environnements.
Une fois configuré, le pipeline OpenTofu peut être exécuté automatiquement pour :

Le schéma ci-dessus illustre le fonctionnement du processus de provisionnement de l'infrastructure.
À l'issue de cette étape, l'environnement AWS et le cluster Kubernetes sont entièrement provisionnés et prêts à fonctionner.

La dernière étape de ce processus (post-déploiement) consiste à déclencher un second pipeline GitLab (hébergé dans un dépôt dédié), chargé de déployer automatiquement Argo CD et CertManager dans le nouveau cluster EKS à l'aide du fournisseur Helm.
Une fois l'infrastructure AWS et le cluster EKS provisionnés avec succès, l'étape suivante consiste à configurer les outils Kubernetes nécessaires au fonctionnement de l'environnement : Argo CD, CertManager et Ingress NGINX Controller.
Ce processus est entièrement automatisé via un second pipeline GitLab hébergé dans un dépôt distinct.

L'exécution de ce second pipeline est déclenchée automatiquement depuis le pipeline d'infrastructure, via un job de déclenchement, dès que l'étape de provisionnement OpenTofu s'est achevée avec succès.
Concrètement, le déploiement de ces composants essentiels s'effectue de manière transparente dans le cadre du même workflow de bout en bout, sans aucune étape manuelle. Le déploiement lui-même est géré par OpenTofu via le fournisseur Helm, ce qui permet de gérer les charts Helm de façon déclarative sous forme de code via GitLab.
Voici un workflow simplifié :
Une fois tous les composants Kubernetes essentiels installés (Argo CD, CertManager et Ingress NGINX Controller), la dernière étape du pipeline d'automatisation commence. Cette étape est exécutée automatiquement dès la fin du processus d'installation du chart Helm.
Un troisième pipeline GitLab est déclenché, chargé de déployer une application web de démonstration dans le cluster EKS nouvellement créé via Argo CD.
Le schéma ci-dessous illustre le processus global :

Dans cette étape, GitLab utilise le fichier kubeconfig généré par OpenTofu pour se connecter au cluster et appliquer les manifestes d'application Argo CD qui définissent l'état souhaité de l'application web.
Le pipeline :
Toutes ces actions sont effectuées automatiquement via GitLab CI/CD, sans aucune intervention manuelle.
Une fois les manifestes appliqués, le contrôleur Argo CD les détecte et synchronise l'état de l'application avec le dépôt, déployant ainsi l'application web de démonstration dans le cluster EKS.
Le résultat est un environnement Kubernetes entièrement opérationnel, dans lequel :
Cette approche garantit une automatisation, une traçabilité et une reproductibilité de bout en bout, le tout géré par GitLab.
Avant d'être déployée via Argo CD, l'application doit d'abord être compilée, conteneurisée et publiée dans le registre de conteneurs de GitLab.
Ce processus est géré par un pipeline CI/CD dédié et suit une structure de dépôt GitOps, dans laquelle le code source et les manifestes Kubernetes sont stockés dans des dépôts distincts.

Dans cette configuration, le groupe GitLab est organisé en deux sections principales :
Cette séparation assure un workflow GitOps clair, car le code applicatif et les configurations de déploiement sont indépendants tout en restant synchronisés grâce à l'automatisation.
Le pipeline CI/CD défini dans le dépôt de l'application automatise les tâches suivantes :
Ces opérations sont effectuées automatiquement par un commit avec le nouveau tag d'image ou la création d'une merge request.

Une fois le commit ou la merge request créés, Argo CD détecte automatiquement la modification dans le dépôt de déploiement et synchronise les manifestes mis à jour avec le cluster Kubernetes afin de garantir le déploiement de la nouvelle version de l'application sans aucune intervention manuelle.
Ce tutoriel a montré comment mettre en place un environnement cloud entièrement automatisé avec GitLab comme hub central pour atteindre les objectifs fixés : une infrastructure reproductible, versionnée et automatisée. En combinant OpenTofu pour le provisionnement de l'infrastructure, GitLab CI/CD pour l'orchestration des pipelines et Argo CD pour la livraison d'applications basée sur GitOps, les équipes peuvent gérer l'intégralité du cycle de vie, des ressources cloud aux applications en production, via une plateforme unique.
En tant que partenaire GitLab disposant d'une expertise approfondie en matière d'infrastructure cloud et en pratiques DevSecOps, Clober (groupe SATEC) peut aider les organisations à mettre en œuvre des environnements automatisés similaires, adaptés à leurs besoins spécifiques.
Remarque : cet article de blog est basé sur une démonstration en direct présentée à l'origine lors de l'AWS Summit Madrid 2025 par l'équipe DevSecOps de Clober (groupe SATEC).
Commencez votre essai gratuit
de 30 jours
Aucune carte de crédit requise.
Cet article de blog vous a plu ? Vous avez des questions ou des retours ? Donnez votre avis en créant un nouveau sujet sur le forum de la communauté GitLab.
Faites-nous part de vos commentairesCommencez à développer plus rapidement dès aujourd'hui
Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.