Skip to content

Amméliorer le fichier lcaac.yaml (voir mail de Thomas - Orange) #55

@sebdebros

Description

@sebdebros

Sébastien, Peva,

Comme convenu un résumé des problèmes que l’on rencontre avec notre mode de déploiement de LCAaC.

Une fois de plus, je pense que la solution actuelle de parser tous les fichiers .lca d’un dossier racine est très satisfaisante dans la grande majorité des cas.

Déploiement Ecotrace :

Dans notre cas, nous séparons tous les projets utilisant LCAaC du code LCAaC afin d’avoir d’une part un repository partagé de projets LCAaC et de l’autre un ensemble d’applications qui peuvent l’utiliser (en mode CLI, en API …).

Techniquement, le déploiement se fait en Helm Chart via des ConfigMaps qui sont des versions à plat (sans sous-dossier) de chaque projet LCAaC :

project_name/

├── lcaac.yaml

├── main.lca

└── data/

└── inventory/     

            └── inv.csv

└── lca_module/

└── process.lca

Devient après déploiement de la ConfigMap dans un pod :

project_name/

├── lcaac.yaml

├── main.lca

└── data.inventory.inv.csv

└── lca_module.process.lca

├── ../project_name-2025-09-01

├── lcaac.yaml

├── main.lca

└── data.inventory.inv.csv

└── lca_module.process.lca

Les imports sont reconstruits dans les différents fichiers pour supporter la mise à plat.

Cette approche est la plus simple et souple pour nos besoins de déploiement sur du K8S mais nous sommes obligés de rajouter un pré-traitement qui copie tout le projet dans un dossier temporaire (en omettant le dossier ../project_name-2025-09-01).

Limitations du lcaac.yaml :

Le problème le plus important dans notre cas et peut-être le moins spécifique est le fichier lcaac.yaml qui ne permet pas de décrire un projet se trouvant dans un dossier séparé (les symlinks sont KO aussi et non portables de toute façon). Dans notre cas, nous voulons monter les ConfigMaps sur des volumes en lecture seule auquel cas, l’idéal serait d’avoir un fichier lcaac.yaml local à l’application qui permet de pointer d’une part sur un dossier R/W pour générer notre inventaire (fichiers CSV) et d’autre part la racine d’un projet LCAaC en R plutôt en tant que librairie partagée (fichiers LCA).

Nous avions songé à un autre mode de déploiement avec un volume en lecture seule partagé entre les pods qui contiendrait uniquement les projets LCA qui servirait de référentiel mais nous retombons sur les même limitations.

Limitations ConfigMap :

Le problème est lié aux mécanisme de rollback OpenShift avec le dossier ../project_name-2025-09-01 (dans lequel il y a des fichiers .lca qui font planter le LCAaC pour des double déclarations).

Ici c’est clairement plus lié à notre mode de déploiement mais le fait que LCAaC parcourt tous les sous-dossiers nous oblige à copier/coller le dossier pour pouvoir l’utiliser.

En l’état, notre déploiement fonctionne et ça répond à notre besoin mais si vous avez des suggestions, nous sommes preneurs.

Cordialement,

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions