Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Gestion du cycle de vie des ressources
Ce document explique comment les ressources sont créées, mises à jour et supprimées dans la plateforme Atlas, ainsi que les dépendances entre les différentes ressources.
Cycle de vie des ressources
Dans Atlas, les ressources suivent un cycle de vie bien défini, de la création à la suppression, en passant par les mises à jour.
Création des ressources
Les ressources sont créées en ajoutant des fichiers YAML dans les dépôts GitOps appropriés :
- Zones et Organisations : Créées par les administrateurs de la plateforme.
- Workspaces : Créés en ajoutant un fichier YAML dans le dossier
resources/
du dépôt de l'organisation. - DeploymentTargets, Buckets, DatabaseClusters : Créés en ajoutant des fichiers YAML dans le dossier
resources/
du dépôt du workspace. - Ressources Kubernetes : Créées en ajoutant des fichiers YAML dans le dossier
deployment-targets/<nom-du-deployment-target>/
du dépôt du workspace.
Une fois les fichiers YAML ajoutés et poussés vers le dépôt, ArgoCD détecte les changements et crée les ressources correspondantes.
Mise à jour des ressources
Les ressources sont mises à jour en modifiant les fichiers YAML correspondants dans les dépôts GitOps. Cependant, certains champs sont immuables et ne peuvent pas être modifiés après la création de la ressource.
Champs immuables
- Bucket :
spec.parameters.name
: Le nom du bucket ne peut pas être modifié après la création.-
spec.parameters.versioned
: Une fois activé, le versionnement ne peut pas être désactivé. -
DatabaseCluster :
spec.parameters.name
: Le nom du DatabaseCluster ne peut pas être modifié après la création.spec.parameters.implementation
: L'implémentation (cnpg ou managed) ne peut pas être modifiée après la création.
Processus de mise à jour
- Modifiez le fichier YAML correspondant à la ressource que vous souhaitez mettre à jour.
- Poussez les changements vers le dépôt.
- ArgoCD détecte les changements et met à jour la ressource.
Suppression des ressources
Les ressources sont supprimées en supprimant les fichiers YAML correspondants des dépôts GitOps ou en utilisant l'annotation argocd.argoproj.io/sync-options: Delete=true
pour les ressources qui ne doivent plus être synchronisées.
Processus de suppression
- Supprimez le fichier YAML correspondant à la ressource que vous souhaitez supprimer.
- Poussez les changements vers le dépôt.
- ArgoCD détecte les changements et supprime la ressource.
Suppression forcée
Pour les buckets, le champ spec.parameters.forceDestroy
détermine si la suppression de la ressource entraînera également la suppression du bucket et de toutes les données qu'il contient. Par défaut, ce champ est défini sur false
, ce qui signifie que la suppression de la ressource ne supprimera pas le bucket sous-jacent.
Attention : L'activation de forceDestroy
est dangereuse et peut entraîner une perte de données. Utilisez cette option avec prudence.
Dépendances entre ressources
Les ressources dans Atlas ont des dépendances les unes avec les autres. Ces dépendances déterminent l'ordre de création et de suppression des ressources.
Hiérarchie des dépendances
- Zone : Les zones sont indépendantes.
- Organisation : Les organisations sont indépendantes.
- Workspace : Les workspaces dépendent de leur organisation.
- DeploymentTarget : Les DeploymentTargets dépendent de leur workspace et de leur zone.
- Bucket et DatabaseCluster : Ces ressources dépendent de leur workspace et de leur zone, et peuvent avoir des dépendances vers des DeploymentTargets via
secretDeliveryTargets
. - Ressources Kubernetes : Ces ressources dépendent de leur DeploymentTarget.
Gestion des dépendances
Lors de la création, de la mise à jour ou de la suppression de ressources, il est important de respecter ces dépendances :
- Création : Créez d'abord les ressources dont dépendent d'autres ressources.
-
Exemple : Créez d'abord un DeploymentTarget avant de créer un Bucket qui lui livre des secrets.
-
Suppression : Supprimez d'abord les ressources qui dépendent d'autres ressources.
- Exemple : Supprimez d'abord les Buckets qui livrent des secrets à un DeploymentTarget avant de supprimer ce DeploymentTarget.
Références entre ressources
Les ressources peuvent faire référence à d'autres ressources via des champs spécifiques :
- Bucket et DatabaseCluster :
spec.parameters.zoneRef.name
: Référence à une Zone.-
spec.parameters.secretDeliveryTargets[].name
: Référence à un DeploymentTarget. -
DeploymentTarget :
spec.parameters.zoneRef.name
: Référence à une Zone.
Gestion des erreurs
Lorsqu'une erreur se produit lors de la création, de la mise à jour ou de la suppression d'une ressource, ArgoCD affiche l'erreur dans son interface. Voici quelques erreurs courantes et comment les résoudre :
Erreurs de création
- Ressource déjà existante : Assurez-vous que le nom de la ressource est unique.
- Champ requis manquant : Vérifiez que tous les champs requis sont présents dans le fichier YAML.
- Valeur invalide : Vérifiez que les valeurs des champs sont valides.
Erreurs de mise à jour
- Champ immuable : Certains champs ne peuvent pas être modifiés après la création. Vérifiez la documentation pour savoir quels champs sont immuables.
- Dépendance manquante : Assurez-vous que toutes les ressources référencées existent.
Erreurs de suppression
- Ressource en cours d'utilisation : Assurez-vous que la ressource n'est pas utilisée par d'autres ressources avant de la supprimer.
- Suppression forcée requise : Pour certaines ressources, comme les buckets, vous devrez peut-être activer
forceDestroy
pour supprimer la ressource et ses données.
Bonnes pratiques
- Versionnez vos ressources : Utilisez Git pour versionner vos ressources et suivre les changements.
- Utilisez des branches : Pour les changements importants, utilisez des branches et des pull requests pour permettre la revue de code.
- Testez les changements : Testez vos changements dans un environnement de développement avant de les appliquer en production.
- Documentez vos ressources : Ajoutez des commentaires dans vos fichiers YAML pour expliquer le but et les dépendances de chaque ressource.
- Suivez les dépendances : Respectez les dépendances entre les ressources lors de la création, de la mise à jour et de la suppression.
- Sauvegardez vos données : Avant de supprimer des ressources, assurez-vous de sauvegarder toutes les données importantes.
Conclusion
La gestion du cycle de vie des ressources dans Atlas est basée sur l'approche GitOps, où les ressources sont définies dans des fichiers YAML stockés dans des dépôts Git. En comprenant les dépendances entre les ressources et en suivant les bonnes pratiques, vous pouvez gérer efficacement le cycle de vie de vos ressources.