From 0d84a1284f6cd05da56ddf0ebbab29b4dc9ac2cb Mon Sep 17 00:00:00 2001 From: Jacquin Antoine Date: Fri, 27 Feb 2026 15:41:29 +0100 Subject: [PATCH] docs: update architecture.yml with unified packaging section - Add packaging section describing DEB and RPM builds with fpm - Document Dockerfile.package multi-stage build pipeline - List files, directories, maintainer scripts, and dependencies - Add verification commands for both package types Co-authored-by: Qwen-Coder --- architecture.yml | 84 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 60 insertions(+), 24 deletions(-) diff --git a/architecture.yml b/architecture.yml index e5bc906..a391bb4 100644 --- a/architecture.yml +++ b/architecture.yml @@ -468,38 +468,74 @@ docker: packaging: description: > - logcorrelator doit être distribué en package .rpm pour Rocky Linux (8+), - construit intégralement dans Docker à partir du binaire compilé.[web:96][web:99][web:101] + logcorrelator est distribué sous forme de packages .deb (Debian/Ubuntu) et + .rpm (Rocky Linux/RHEL/CentOS), construits intégralement dans Docker avec fpm. formats: + - deb - rpm target_distros: - - rocky-linux-8+ - - rocky-linux-9+ + deb: + - debian-12+ + - ubuntu-22.04+ + rpm: + - rocky-linux-8+ + - rocky-linux-9+ + - rhel-8+ + - rhel-9+ tool: fpm build_pipeline: - steps: - - name: build_binary_in_docker + dockerfile: Dockerfile.package + stages: + - name: builder description: > - Utiliser l’image builder pour compiler logcorrelator et installer le - binaire dans un répertoire de staging (par ex. /tmp/pkgroot/usr/bin/logcorrelator). - - name: prepare_filesystem_layout + Compilation du binaire Go avec CGO_ENABLED=0 pour un binaire statique. + GOOS=linux GOARCH=amd64. + - name: package_builder description: > - Créer la hiérarchie : - - /usr/bin/logcorrelator - - /etc/logcorrelator/logcorrelator.toml (exemple) - - /etc/systemd/system/logcorrelator.service (unit) - - /var/log/logcorrelator (répertoire de logs) - - name: run_fpm_in_docker + Installation de fpm, rpm, dpkg-dev. Création de l'arborescence + et exécution de fpm pour générer DEB et RPM. + - name: output description: > - Lancer un conteneur fpm (par ex. image ruby:fpm) avec montage de - /tmp/pkgroot, et exécuter fpm -s dir -t rpm pour générer le .rpm - compatible Rocky Linux. - - name: verify_rpm_on_rocky - description: > - Tester l’installation et le démarrage du service dans un conteneur - Rocky Linux 8/9 (docker run --rm -it rockylinux:8), en installant le - .rpm, en activant le service systemd et en vérifiant qu’il démarre - correctement. + Image Alpine minimale contenant les packages dans /packages/deb et /packages/rpm. + files: + binary: + source: dist/logcorrelator + dest: /usr/bin/logcorrelator + mode: "0755" + config: + - source: config.example.conf + dest: /etc/logcorrelator/logcorrelator.conf + mode: "0640" + config_file: true + - source: config.example.conf + dest: /usr/share/logcorrelator/logcorrelator.conf.example + mode: "0640" + directories: + - path: /var/log/logcorrelator + mode: "0755" + - path: /var/run/logcorrelator + mode: "0755" + - path: /etc/logcorrelator + mode: "0750" + maintainer_scripts: + deb: + postinst: packaging/deb/postinst + prerm: packaging/deb/prerm + postrm: packaging/deb/postrm + rpm: + post: packaging/deb/postinst + preun: packaging/deb/prerm + postun: packaging/deb/postrm + dependencies: + deb: + - systemd + rpm: + - systemd + verify: + deb: + command: docker run --rm -v $(pwd)/dist/deb:/packages debian:latest sh -c "apt-get update && apt-get install -y /packages/*.deb" + rpm: + command: docker run --rm -v $(pwd)/dist/rpm:/packages rockylinux:8 sh -c "dnf install -y /packages/*.rpm" non_functional: performance: