Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Créer et configurer des Deployment Targets
Ce guide pratique vous montre comment créer et configurer des DeploymentTargets dans la plateforme Atlas.
Prérequis
- Avoir un compte sur la plateforme Atlas
- Être administrateur de workspace ou avoir les droits nécessaires
- Avoir un workspace déjà créé
- Avoir accès au dépôt GitOps de votre workspace
Structure du dépôt de workspace
Le dépôt GitOps de votre workspace est structuré de la manière suivante :
resources/
: Dossier contenant les définitions des ressources workspace (buckets, databaseclusters, deploymenttargets)deployment-targets/<nom-du-deployment-target>/
: Dossiers dédiés à chaque DeploymentTarget, contenant les manifestes Kubernetes à déployer
Note : Dans le dossier
resources/
, seules les ressources appartenant au groupeworkspace.fabrique.social.gouv.fr
(commeDeploymentTarget
) sont autorisées. Les ressources doivent exister dans l'espace de noms approprié du workspace. Il est recommandé d'omettre le champmetadata.namespace
pour utiliser l'espace de noms par défaut.Note : Dans les dossiers
deployment-targets/<nom-du-deployment-target>/
, aucune restriction de groupe n'est actuellement appliquée, permettant aux utilisateurs de déployer leurs applications comme ils le souhaitent. Cependant, il existe des discussions en cours concernant la création de CRD spécifiques aux applications dans un nouveau groupe (par exempleapps.fabrique.social.gouv.fr
) et la restriction à ces seules ressources.Note importante sur l'évolution future : Ce dépôt est conçu comme un détail d'implémentation. À terme, toutes les modifications seront effectuées via le portail utilisateur ou par automatisation. Néanmoins, les utilisateurs peuvent manipuler directement le dépôt sous leur propre responsabilité.
Qu'est-ce qu'un DeploymentTarget ?
Un DeploymentTarget représente un "environnement" où les applications peuvent être déployées. Il correspond généralement à un environnement (feature-branch, dev, preprod, prod) et se matérialise concrètement par un namespace Kubernetes dans la zone spécifiée. Ce namespace isolé fournit un espace dédié pour déployer vos applications et services.
Pour chaque DeploymentTarget, une application GitOps unique est créée pour surveiller le dossier dédié dans le dépôt Workspace associé. Toutes les ressources Kubernetes définies dans ce dossier seront déployées dans le namespace correspondant au DeploymentTarget.
Création d'un DeploymentTarget
1. Cloner le dépôt GitOps de votre workspace
1 2 |
|
2. Créer un fichier YAML pour le DeploymentTarget
Créez un nouveau fichier YAML dans le dossier resources
du dépôt. Nommez-le de manière significative, par exemple mon-app-dev.yaml
.
1 2 |
|
Important : Les ressources doivent être déclarées dans le dossier
resources/
. Seules les ressources appartenant au groupeworkspace.fabrique.social.gouv.fr
(commeDeploymentTarget
) sont autorisées.
3. Définir la configuration du DeploymentTarget
Ouvrez le fichier mon-app-dev.yaml
dans votre éditeur préféré et ajoutez la configuration suivante :
1 2 3 4 5 6 7 8 9 |
|
Assurez-vous de remplacer :
- mon-app-dev
par un nom significatif pour votre environnement de déploiement
- dev
par le nom de la zone appropriée (par exemple, dev
, prod
)
4. Pousser les changements vers le dépôt
1 2 3 |
|
5. Vérifier la création du DeploymentTarget
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et créera le DeploymentTarget. Vous pouvez vérifier l'état de la création dans ArgoCD.
- Accédez à ArgoCD via l'interface Atlas
- Recherchez l'application correspondant à votre workspace
- Vérifiez que le DeploymentTarget a été créé avec succès
Configuration avancée d'un DeploymentTarget
Utilisation de Helm Charts
Vous pouvez spécifier des Helm Charts à déployer avec votre DeploymentTarget. Notez que cette fonctionnalité est expérimentale et peut changer ou être supprimée à l'avenir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Note : Il est recommandé d'utiliser le rendered manifest pattern et de pousser la sortie d'un "helm template" dans le dépôt GitOps plutôt que d'utiliser cette fonctionnalité expérimentale.
Exemple d'utilisation de helm template
1 2 3 4 5 6 7 8 9 10 11 |
|
Déploiement d'applications dans un DeploymentTarget
Une fois le DeploymentTarget créé, vous pouvez déployer des applications en ajoutant des fichiers YAML dans le dossier deployment-targets/<nom-du-deployment-target>/
du dépôt.
1. Créer le dossier pour les manifestes de l'application
1 |
|
2. Ajouter les manifestes Kubernetes
Créez les fichiers YAML nécessaires pour votre application dans le dossier deployment-targets/mon-app-dev
. Par exemple, pour déployer une application web simple :
1 2 3 |
|
Exemple de deployment.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
Exemple de service.yaml
1 2 3 4 5 6 7 8 9 10 11 |
|
Exemple de ingress.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
3. Pousser les changements vers le dépôt
1 2 3 |
|
4. Vérifier le déploiement
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et déploiera votre application. Vous pouvez vérifier l'état du déploiement dans ArgoCD.
Modification d'un DeploymentTarget
La modification d'un DeploymentTarget se fait en modifiant le fichier YAML correspondant dans le dépôt du workspace.
1. Cloner le dépôt GitOps de votre workspace (si ce n'est pas déjà fait)
1 2 |
|
2. Modifier le fichier YAML du DeploymentTarget
Ouvrez le fichier resources/mon-app-dev.yaml
dans votre éditeur préféré et modifiez la configuration selon vos besoins.
3. Pousser les changements vers le dépôt
1 2 3 |
|
4. Vérifier la mise à jour du DeploymentTarget
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et mettra à jour le DeploymentTarget. Vous pouvez vérifier l'état de la mise à jour dans ArgoCD.
Suppression d'un DeploymentTarget
La suppression d'un DeploymentTarget se fait en supprimant le fichier YAML correspondant du dépôt du workspace.
Attention : La suppression d'un DeploymentTarget entraînera également la suppression de toutes les ressources déployées dans cet environnement. Assurez-vous de sauvegarder toutes les données importantes avant de supprimer un DeploymentTarget.
1. Cloner le dépôt GitOps de votre workspace (si ce n'est pas déjà fait)
1 2 |
|
2. Supprimer le fichier YAML du DeploymentTarget
1 2 3 |
|
3. Vérifier la suppression du DeploymentTarget
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et supprimera le DeploymentTarget. Vous pouvez vérifier l'état de la suppression dans ArgoCD.
Livraison de secrets aux DeploymentTargets
Les DeploymentTargets sont utilisés comme cibles pour la livraison des secrets des ressources comme les Buckets et les DatabaseClusters. Lorsque vous créez ces ressources, vous pouvez spécifier les DeploymentTargets auxquels livrer les secrets.
Exemple de configuration d'un Bucket avec livraison de secrets
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Exemple de configuration d'un DatabaseCluster avec livraison de secrets
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
Bonnes pratiques
- Nommage : Utilisez des noms significatifs pour vos DeploymentTargets, qui reflètent l'environnement qu'ils représentent (dev, preprod, prod, etc.).
- Organisation : Organisez vos manifestes de manière logique dans le dossier
deployment-targets/<nom-du-deployment-target>/
. - Versionnement : Utilisez Git pour versionner vos DeploymentTargets et suivre les changements.
- Environnements multiples : Créez des DeploymentTargets distincts pour chaque environnement (dev, preprod, prod) pour isoler les déploiements.
- Helm Charts : Préférez l'utilisation de
helm template
pour générer des manifestes plutôt que d'utiliser la fonctionnalité expérimentale des charts dans les DeploymentTargets.
Résolution des problèmes courants
Le DeploymentTarget n'apparaît pas dans ArgoCD
- Vérifiez que vous avez bien poussé les changements vers le dépôt
- Vérifiez que le fichier YAML est correctement formaté
- Vérifiez que vous avez les droits nécessaires pour créer un DeploymentTarget
Erreur lors de la création du DeploymentTarget
- Vérifiez les logs dans ArgoCD pour identifier l'erreur
- Assurez-vous que la zone référencée existe
- Contactez l'administrateur de la plateforme si le problème persiste
Les applications ne se déploient pas dans le DeploymentTarget
- Vérifiez que le DeploymentTarget a été créé avec succès
- Vérifiez que les manifestes sont correctement formatés
- Vérifiez les logs dans ArgoCD pour identifier l'erreur