Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Référence API
DeploymentTarget
Un DeploymentTarget représente un "environnement" où les applications peuvent être déployées. Les DeploymentTargets appartiennent à une Zone, qui est créée au préalable par les administrateurs d'Atlas.
Description
DeploymentTarget est le schéma pour l'API DeploymentTarget. Pour chaque DeploymentTarget, une application GitOps unique est créée pour surveiller le dossier dédié dans le dépôt Workspace associé.
Spécification
Champ | Type | Description | Requis | Défaut |
---|---|---|---|---|
spec.parameters.name |
string | Nom du DeploymentTarget | Oui | - |
spec.parameters.zoneRef.name |
string | Référence à une Zone qui hébergera le DeploymentTarget. | Oui | - |
spec.parameters.charts |
array | Un tableau de charts à déployer avec le DeploymentTarget. Attention : ce champ est encore expérimental et peut changer ou être supprimé à l'avenir. Pour l'instant, il est plutôt recommandé d'utiliser le rendered manifest pattern et de pousser la sortie d'un "helm template" dans le dépôt GitOps. | Non | [] |
spec.parameters.charts[].repoURL |
string | URL où le chart est hébergé. | Oui (si charts est utilisé) | - |
spec.parameters.charts[].chart |
string | Nom du Helm Chart. | Oui (si charts est utilisé) | - |
spec.parameters.charts[].releaseName |
string | Nom de la release du chart. | Non | - |
spec.parameters.charts[].version |
string | Version du chart. | Oui (si charts est utilisé) | - |
spec.parameters.charts[].values |
object | Objet non structuré pour les valeurs du chart. | Non | {} |
spec.parameters.charts[].valueFiles |
array | Références aux fichiers contenant les valeurs du chart. | Non | [] |
Exemple
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 |
|
Notes importantes
- Pour chaque DeploymentTarget, une application GitOps unique est créée pour surveiller le dossier dédié dans le dépôt Workspace associé.
- Les ressources Kubernetes standard peuvent être déployées en ajoutant des fichiers YAML dans le dossier
deployment-targets/<nom du deployment-target>
du dépôt GitOps du workspace. - Le champ
charts
est expérimental et peut changer ou être supprimé à l'avenir. Il est recommandé d'utiliser le rendered manifest pattern et de pousser la sortie d'un "helm template" dans le dépôt GitOps. - Les DeploymentTargets sont utilisés comme cibles pour la livraison des secrets des ressources comme les Buckets et les DatabaseClusters.
Bucket
Un Bucket est un espace de stockage compatible S3. Les buckets ont un lifecycle indépendant des applications et doivent être créés au préalable.
Description
Bucket est le schéma pour l'API Bucket. Un bucket compatible S3 permet de stocker des fichiers et des objets. Les buckets ont un lifecycle indépendant des applications et doivent être créés au préalable.
Spécification
Champ | Type | Description | Requis | Défaut |
---|---|---|---|---|
spec.parameters.name |
string | Nom du bucket. Ce champ est immuable et ne peut pas être modifié ultérieurement. | Oui | - |
spec.parameters.versioned |
boolean | Indique si ce bucket est versionné. Une fois activé, le versioning ne peut pas être désactivé. | Non | false |
spec.parameters.acl |
string | L'ACL (Access Control List) pour le bucket. Valeurs possibles: private , public-read , public-read-write , aws-exec-read , authenticated-read , log-delivery-write |
Oui | - |
spec.parameters.forceDestroy |
boolean | Permet de détruire le bucket même s'il n'est pas vide. Comme prévu, c'est un champ dangereux, à utiliser avec prudence. | Non | false |
spec.parameters.tags |
object | Tags supplémentaires à mettre sur le bucket. | Non | {} |
spec.parameters.zoneRef.name |
string | Référence à une Zone qui hébergera le Bucket. | Oui | - |
spec.parameters.secretDeliveryTargets |
array | Liste des cibles auxquelles livrer le secret. Dans cette version, vous ne pouvez livrer des secrets qu'aux DeploymentTargets. | Oui | - |
Exemple
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 |
|
Notes importantes
- Le nom du bucket doit être unique.
- Une fois le versioning activé, il ne peut pas être désactivé.
- Les secrets d'accès au bucket sont automatiquement livrés aux DeploymentTargets spécifiés dans
secretDeliveryTargets
. - L'option
forceDestroy
est dangereuse car elle peut entraîner la perte de données. Utilisez-la avec prudence.
Format des secrets livrés
Les secrets d'accès au bucket sont livrés aux DeploymentTargets spécifiés dans le format JSON suivant :
1 2 3 4 5 |
|
L'endpoint S3 est toujours s3.gra.io.cloud.ovh.net
.
DatabaseCluster
Un DatabaseCluster est un conteneur PostgreSQL pour une ou plusieurs bases de données. Plusieurs moteurs existent, notamment OVH (cluster de base de données managé, pour une utilisation en production) et CNPG (déploiement dans le cluster, non adapté à une utilisation en production).
Description
DatabaseCluster est le schéma pour l'API DatabaseCluster. Les lifecycles des DatabaseCluster sont indépendants du lifecycle des applications et doivent être créés au préalable. Une fois créé, une base de données doit être créée en référençant ce DatabaseCluster.
Spécification
Champ | Type | Description | Requis | Défaut |
---|---|---|---|---|
spec.parameters.name |
string | Nom du DatabaseCluster à créer. Ce champ est immuable et ne peut pas être modifié ultérieurement. | Oui | - |
spec.parameters.implementation |
string | Implémentation du moteur à utiliser. Ce champ est immuable et ne peut pas être modifié ultérieurement. Valeurs possibles: cnpg , managed |
Oui | - |
spec.parameters.replicas |
integer | Nombre de réplicas pour le DatabaseCluster. Pour la haute disponibilité, les utilisations en production doivent toujours définir cette valeur à plus de 1. | Non | 1 |
spec.parameters.ovh.plan |
string | Plan à utiliser pour le cluster de base de données managé (uniquement utilisé lorsque le champ implementation est "managed"). | Non | essential |
spec.parameters.ovh.flavor |
string | Flavor à utiliser pour les instances de VM de support (uniquement utilisé lorsque le champ implementation est "managed"). | Non | db1-4 |
spec.parameters.ovh.authorized_ips |
array | Un tableau d'adresses IP autorisées à se connecter au cluster (uniquement utilisé lorsque le champ implementation est "managed"). | Non | [] |
spec.parameters.cnpg.resources.requests.cpu |
string | Requests de CPU (uniquement utilisé lorsque le champ implementation est "cnpg"). | Non | - |
spec.parameters.cnpg.resources.requests.memory |
string | Requests de mémoire (uniquement utilisé lorsque le champ implementation est "cnpg"). | Non | - |
spec.parameters.cnpg.resources.limits.cpu |
string | Limits de CPU (uniquement utilisé lorsque le champ implementation est "cnpg"). | Non | - |
spec.parameters.cnpg.resources.limits.memory |
string | Limits de mémoire (uniquement utilisé lorsque le champ implementation est "cnpg"). | Non | - |
spec.parameters.version |
string | Version de PostgreSQL | Non | 15 |
spec.parameters.diskSize |
integer | Taille pour le stockage de la base de données, en GiB. | Non | 80 |
spec.parameters.zoneRef.name |
string | Référence à une Zone qui hébergera le DatabaseCluster. | Oui | - |
spec.parameters.secretDeliveryTargets |
array | Liste des cibles auxquelles livrer le secret. Dans cette version, vous ne pouvez livrer des secrets qu'aux DeploymentTargets. | Oui | - |
Exemple
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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
|
Notes importantes
- Le nom du DatabaseCluster doit être unique.
- L'implémentation (
cnpg
oumanaged
) est immuable et ne peut pas être modifiée après la création. - Pour les environnements de production, il est recommandé d'utiliser l'implémentation
managed
et de définirreplicas
à une valeur supérieure à 1 pour la haute disponibilité. - L'implémentation
cnpg
n'est pas recommandée pour les environnements de production. - Les secrets d'accès à la base de données sont automatiquement livrés aux DeploymentTargets spécifiés dans
secretDeliveryTargets
.
Format des secrets livrés
Les secrets d'accès à la base de données sont livrés aux DeploymentTargets spécifiés dans le format JSON suivant :
1 2 3 4 5 6 7 8 9 |
|
Workspace
Un Workspace est un conteneur pour un projet logiciel, avec son propre contrôle d'accès et des ressources spécifiques au workspace.
Description
Workspace est le schéma pour l'API Workspace. Un Workspace est créé par les administrateurs d'organisation et permet de regrouper les ressources liées à un projet spécifique.
Spécification
Champ | Type | Description | Requis | Défaut |
---|---|---|---|---|
spec.parameters.name |
string | Nom du workspace. | Oui | - |
Statut
Le statut d'un Workspace contient des informations importantes pour les utilisateurs d'Atlas :
Champ | Type | Description |
---|---|---|
status.outputs.grafana.orgId |
string | L'ID de l'organisation Grafana. |
status.outputs.organization.name |
string | Nom de l'organisation propriétaire de ce workspace. |
status.outputs.github.url |
string | URL de clonage SSH du dépôt GitHub. |
status.outputs.github.name |
string | Nom du dépôt GitHub. |
status.outputs.namespace |
string | Namespace Kubernetes dans le plan de contrôle créé par le workspace. |
Exemple
1 2 3 4 5 6 7 |
|
Notes importantes
- Un Workspace est créé dans le dépôt GitOps de l'organisation en ajoutant un fichier YAML dans le dossier 'resources'.
- Chaque Workspace dispose de son propre dépôt GitOps pour définir des ressources (buckets, databaseclusters, deploymenttargets).
- Les administrateurs de workspace peuvent créer des ressources dans le workspace, mais ne peuvent pas modifier les ressources définies à l'échelle de l'organisation et de la plateforme.
- Le statut du Workspace contient des informations importantes comme l'URL du dépôt GitHub, l'ID de l'organisation Grafana, et le namespace Kubernetes.