@mybus/infrastructure
v1.0.0
Published
## Description
Downloads
2
Readme
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 restreintconfig-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 leconfig
global, leconfig-generated
global et legenerated
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 kubevault.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.