1.0.0 • Published 6 months ago

@mybus/infrastructure v1.0.0

Weekly downloads
-
License
SEE LICENCE IN .....
Repository
-
Last release
6 months ago

libs/infrastructure

Description

Cette lib met a disposition une CLI pour gérer un environnement, en particulier à l'initialisation d'un environnement.

Elle a pour vocation d'être utilisé pour les environnements à la demande ainsi que pour faciliter la mise en place de l'environnement de développement.

Elle gère l'initialisation global de :

  • l'user et le vhost dans rabbit MQ

Elle gère l'initialisation par app de :

  • la DB postgres
  • le client Keycloak
  • le secret de l'app
  • le .env local pour cette app

Architecture Vault

Dans vault, il y a un dossier par environnement. Dans ce dossier on retrouve:

  • config-root: les accès root pour cet environnement, accès restreint
  • config-generated: les accès pour cet environnement (généré dynamiquement)
  • config: les accès pour cet environnement (écrit manuellement et spécifique a l'app)

Il y a ensuite des dossier pour l'arborescence des services. Dans chaque service on retrouve:

  • generated: les accès spécifique pour ce service (généré dynamiquement)
  • config: les variables d'environnement complètes pour ce service. Ce fichier est généré automatiquement à partir du template et en prenant les valeurs dans le config global, le config-generated global et le generated de l'app en cours

Pour le développement local, il existe un environnement spécial local. Cet environnement est similaire aux autres environnements et a le même fonctionnement.

Dossier infrastructure

Chaque app possède un dossier infrastructure. Ce dossier est composé de:

  • postgres.yaml: le fichier de configuration de la DB (notamment les extensions)
  • helm.yaml: le fichier de déploiment kube
  • vault.template.yaml: le template des variables d'environnement

Le vault.template.yaml est maitre des variables d'environnement présentes pour ce service. C'est à partir de ce fichier que on peut générer la config de ce service dans vault qui sera ensuite utilisé lors des déploiments.