Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Créer et utiliser des buckets S3
Ce guide pratique vous montre comment créer et utiliser des buckets S3 pour le stockage de fichiers sur 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 au moins un DeploymentTarget créé
- Avoir accès au dépôt GitOps de votre workspace
Qu'est-ce qu'un bucket S3 ?
Un bucket S3 est un espace de stockage compatible avec le protocole S3 d'Amazon Web Services. Il permet de stocker des fichiers et des objets de manière durable et évolutive. Sur Atlas, les buckets ont un lifecycle indépendant des applications et doivent être créés au préalable.
Création d'un bucket S3
1. Cloner le dépôt GitOps de votre workspace
1 2 |
|
2. Créer un fichier YAML pour le bucket
Créez un nouveau fichier YAML dans le dossier resources
du dépôt. Nommez-le de manière significative, par exemple mon-bucket.yaml
.
1 2 |
|
3. Définir la configuration du bucket
Ouvrez le fichier mon-bucket.yaml
dans votre éditeur préféré et ajoutez la configuration suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Assurez-vous de remplacer :
- mon-bucket
par un nom significatif pour votre bucket
- mon-app-bucket-unique-name
par un nom unique pour votre bucket (ce nom doit être globalement unique)
- mon-app-dev
par le nom de votre DeploymentTarget
- dev
par le nom de la zone appropriée
4. Pousser les changements vers le dépôt
1 2 3 |
|
5. Vérifier la création du bucket
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et créera le bucket. 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 bucket a été créé avec succès
Paramètres de configuration
Paramètres principaux
Paramètre | Description | Valeur par défaut | Requis |
---|---|---|---|
name |
Nom du bucket. Ce champ est immuable et ne peut pas être modifié ultérieurement. | - | Oui |
acl |
L'ACL (Access Control List) pour le bucket. | - | Oui |
versioned |
Indique si ce bucket est versionné. Une fois activé, le versioning ne peut pas être désactivé. | false |
Non |
forceDestroy |
Si la suppression de cette ressource supprimera le bucket associé et toutes les données qu'il contient. Comme prévu, c'est un champ dangereux, à utiliser avec prudence. | false |
Non |
tags |
Tags supplémentaires à mettre sur le bucket. | {} |
Non |
zoneRef.name |
Référence à une Zone qui hébergera le Bucket. | - | Oui |
secretDeliveryTargets |
Liste des cibles auxquelles livrer le secret. | - | Oui |
Options d'ACL
L'ACL (Access Control List) définit les permissions d'accès au bucket. Les valeurs possibles sont :
private
: Accès privé (recommandé pour la plupart des cas)public-read
: Lecture publiquepublic-read-write
: Lecture et écriture publiquesaws-exec-read
: Lecture pour AWSauthenticated-read
: Lecture pour les utilisateurs authentifiéslog-delivery-write
: Écriture pour la livraison de logs
Format et accès aux informations de connexion
Les informations de connexion au bucket sont automatiquement livrées au DeploymentTarget spécifié dans secretDeliveryTargets
. Le secret est livré dans le format JSON suivant :
1 2 3 4 5 |
|
L'endpoint S3 est toujours s3.gra.io.cloud.ovh.net
.
Vous pouvez accéder à ces informations de deux façons :
Via Vault
- Accédez à Vault via l'interface Atlas
- Naviguez vers le chemin correspondant à votre DeploymentTarget
- Vous y trouverez les informations de connexion au bucket
Via les secrets Kubernetes
Les informations de connexion sont également disponibles sous forme de secrets Kubernetes dans le namespace de votre DeploymentTarget. Vous pouvez y accéder dans votre application en montant le secret ou en utilisant les variables d'environnement.
Exemple d'utilisation dans un déploiement Kubernetes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
Utilisation du bucket dans votre application
Exemple d'utilisation avec TypeScript
Voici un exemple simple d'utilisation du bucket S3 avec TypeScript et la bibliothèque AWS SDK :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
Modification d'un bucket
La modification d'un bucket se fait en modifiant le fichier YAML correspondant dans le dépôt du workspace. Cependant, certains champs sont immuables et ne peuvent pas être modifiés après la création.
Champs immuables
spec.parameters.name
: Le nom du bucket ne peut pas être modifié après la création.spec.parameters.versioned
: Une fois activé, le versioning ne peut pas être désactivé.
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 bucket
Ouvrez le fichier resources/mon-bucket.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 bucket
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et mettra à jour le bucket. Vous pouvez vérifier l'état de la mise à jour dans ArgoCD.
Suppression d'un bucket
La suppression d'un bucket se fait en supprimant le fichier YAML correspondant du dépôt du workspace.
Attention : Si le champ forceDestroy
est défini sur true
, la suppression de la ressource entraînera également la suppression du bucket et de toutes les données qu'il contient. Assurez-vous de sauvegarder toutes les données importantes avant de supprimer un bucket.
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 bucket
1 2 3 |
|
3. Vérifier la suppression du bucket
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et supprimera le bucket. Vous pouvez vérifier l'état de la suppression dans ArgoCD.
Bonnes pratiques
Sécurité
- Utilisez toujours l'ACL
private
sauf si vous avez une raison spécifique de rendre le bucket public. - N'activez jamais
forceDestroy
en production, car cela pourrait entraîner une perte de données. - Utilisez des noms de bucket uniques et significatifs.
Organisation des données
- Organisez vos fichiers dans le bucket en utilisant des préfixes (similaires à des dossiers).
- Utilisez des conventions de nommage cohérentes pour vos fichiers.
Versioning
- Activez le versioning si vous avez besoin de conserver l'historique des modifications des fichiers.
- Mettez en place une lifecycle policy pour gérer la durée de vie des objets si nécessaire.
Performance
- Utilisez des noms de fichiers courts et significatifs.
- Évitez d'utiliser des caractères spéciaux dans les noms de fichiers.
- Utilisez des préfixes appropriés pour optimiser les performances.
Résolution des problèmes courants
Le bucket n'est pas créé
- 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
- Vérifiez que le nom du bucket est unique
Erreur d'accès au bucket
- Vérifiez que le bucket a été créé avec succès
- Vérifiez que les secrets ont été correctement livrés au DeploymentTarget
- Vérifiez que votre application utilise les bonnes informations de connexion
- Vérifiez que l'ACL est correctement configurée
Problèmes de performance
- Vérifiez que vous utilisez des préfixes appropriés
- Évitez d'utiliser des caractères spéciaux dans les noms de fichiers
- Utilisez des noms de fichiers courts et significatifs