Files
factory/doc/adr/02_main_components.md

77 lines
2.7 KiB
Markdown

# [Bases](./README.md)
## Main Components
### Setup Volume, NFS, K8S Provisioner
- [`ansible-playbook -i ansible/arcodange/factory/inventory/ ansible/arcodange/factory/playbooks/02_setup.yml --tags='all,never'`](/ansible/arcodange/factory/playbooks/02_setup.yml)
> [!IMPORTANT]
> Une partie du playbook est invoqué par le précédent [playbook system](/ansible/arcodange/factory/playbooks/01_system.yml) 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`](/ansible/arcodange/factory/playbooks/setup/roles/deploy_postgresql/tasks/create_db_and_user.yml) 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](/ansible/arcodange/factory/playbooks/setup/roles/deploy_gitea/templates/app.ini.j2) n'est pas utilisé. (voir [inventaire](/ansible/arcodange/factory/inventory/group_vars/hard_disk/gitea.yml))
> il faudrait peut-être utiliser [community.general.ini_file](https://docs.ansible.com/ansible/latest/collections/community/general/ini_file_module.html)
## Annexes
### Ordre d'execution des playbooks
```mermaid
%%{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 ? )
```