Files
factory/doc/adr/02_main_components.md

2.7 KiB

Bases

Main Components

Setup Volume, NFS, K8S Provisioner

Important

Une partie du playbook est invoqué par le précédent playbook system responsasble du Provisioner K8S.
Le NFS est également requis pour le Persistent Volume Claim (PVC) utiliser pour les certificats SSL de Traefik.

Setup Postgres

Le container possède sa propre partition et ne tourne pas dans le cluster K3S (pour plus de simplicité).

Note

Le role deploy_postgresql du playbook setup utilise la variable applications_databases: une liste de { db_name: str; db_user: str; db_password: str} à créer.

Setup Gitea

Le container possède sa propre partition et ne tourne pas dans le cluster K3S (pour plus de simplicité). On déploiera un gitea action runner sur d'autres machines pour que l'instance principale gitea gèrent mieux les cas de famine de ressources potentiellement causés par ce dernier.

Setup mail alert

TODO

Warning

le template app.ini.j2 n'est pas utilisé. (voir inventaire)
il faudrait peut-être utiliser community.general.ini_file

Annexes

Ordre d'execution des playbooks

%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%%
timeline
title ordre d'execution des playbooks
section Setup DNS, OS, ...
    configuration manuelle
        : installer OS, réserver IP statique, configurer SSH,VNC
        : formater et créer des partitions avec gparted
section Docker & K3S
    system
        : install Docker
        : install K3S working with docker
        : configure Traefik

section Volume, NFS
    setup hard_disk
        : monter les partitions
        : installer NFS
    system
        : déployer provisionner NFS
    
section postgres
    setup
        : postgres
section gitea
    setup
        : gitea
section gitea action runner
    setup
        : gitea action runner
section argo cd
    argo_cd
        : argo cd
section hello world app
    setup git repository
        : terraform
    setup CI
    deploy
        : dev : list exposed deployments with label and port as a landpage
        : expose (as ngrock ? direct ? port ? )