Provisionner l’infrastructure

Cette configuration OpenTofu gère l’infrastructure de QueFaireDeMesObjets sur Scaleway.

OpenTofu & Terragrunt

Nous utilisons OpenTofu, version open-source de Terraform, pour automatiser le provisionning de l’infractructure. Suivre la documentation pour installer OpenTofu.

Terragrunt est utilisé en complément d’OpenTofu pour avoir une configuration DRY. Suivre la documentation pour installer Terragrunt.

La configuration est définie dans le dossier infrastructure

Prérequis

Installer et configurer le client Scaleway en suivant les instructions de Scaleway

Vérifer que vous avez les droits d’administration du projet concerné par cette planificaton d’infrastructure

IaC : Infrastructure as Code

Structure

infrastructure/
├── environments/
│   ├── prod/
│   │   ├── terragrunt.hcl
│   │   ├── terraform.tfvars.example
│   │   └── terraform.tfvars -> non partagé
│   ├── preprod/
│   └── preview/
└── modules/
    ├── database/
    │   ├── main.tf
    │   ├── variables.tf
    │   └── outputs.tf
    └── provider/

Configuration

  1. Copier le fichier environments/<ENV>/terraform.tfvars.example vers terraform.tfvars

  2. Modifier les valeurs dans terraform.tfvars avec vos informations :

    • project_id : ID du projet Scaleway

    • organization_id : ID de l’organisation Scaleway

    • db_password : Mot de passe sécurisé pour la base de données

Exécution

tfstate

⚠️ le state est enregistré sur une répertoire s3 de Scaleway s3://lvao-terraform-state

Par environnement

L’environnement de preview est utilisé pour tester notre projet IaC, on détruit volontairement l’infrastructure créée sur cet environnement une fois que la configuration terraform est testée.

Pour chaque environnement :

  • en Preprod dans le dossier infrastructure/environments/preprod à la racine du projet

  • en Prod dans le dossier infrastructure/environments/prod à la racine du projet

Se placer dans le répertoire infrastructure/environments/<ENV> et exécuter les commandes suivantes

terragrunt init -reconfigure
teragrunt plan
teragrunt apply

Pour chaque commande, l’environnement doit-être précisé