Files
factory/ansible/arcodange/factory
arcodange f250817641 fix(pi2) — Gitea et Postgres avaient zéro plafond, plus maintenant
pi2 tournait à load average ~45 (4 cœurs) pendant qu'un push docker
timeoutait vers le registre. Gitea et Postgres tournent en docker compose
nu, hors k3s — invisibles du scheduler ET sans limite (`docker inspect`
mesurait NanoCPUs=0, Memory=0 pour les deux), donc rien ne les empêchait
de se battre à armes égales avec tout le reste du nœud.

Postgres → 1 CPU / 1024M, Gitea → 1.5 CPU / 1536M (Compose v2 honore
`deploy.resources.limits` hors swarm). Valeurs dérivées d'une mesure au
repos (Postgres 3-5 %, Gitea 12 % CPU) avec de la marge pour les pics —
un filet, pas un dimensionnement pour la charge normale.

Appliqué et vérifié en direct sur pi2 : les deux conteneurs ont recréé
avec les nouvelles limites (`docker inspect` confirme), PostGIS survit
au recreate de Postgres (déjà géré par ce playbook), Gitea sert web (200)
et registre (401 attendu, anonyme) normalement après coup.

Le levier complémentaire (kubelet --system-reserved/--kube-reserved sur
pi2, pour que le SCHEDULER k8s sache que cette place est déjà prise) n'est
pas dans cette PR — plus gros, touche system_k3s.yml pour tout le cluster.
2026-08-11 16:25:20 +02:00
..
2024-08-16 13:53:03 +02:00
2024-07-05 16:16:11 +02:00
2024-07-05 16:16:11 +02:00
2024-12-15 22:13:03 +01:00

Ansible Collection - arcodange.factory

Documentation for the collection.

MY_TOKEN= #<my token (see https://www.duckdns.org/domains)>
kubectl create secret generic traefik-duckdns-token --from-literal="DUCKDNS_TOKEN=$MY_TOKEN" -n kube-system
%%{init: { 'logLevel': 'debug', 'theme': 'dark' } }%%
timeline
    title Playbook Execution Sequence
    section 01_system
        rpi
            : set hostname
        dns
            : install pi-hole
        ssl
            : step-ca
            : fetch root certificate
            : build docker image with CA
        prepare_disks
            : list partitions
            : format disk
            : mount disk
        system_docker
            : install docker
            : configure docker storage
            : restart docker
        longhorn
            : deploy longhorn
        k3s
            : prepare inventory
            : install k3s collection
            : install socat
            : deploy k3s cluster
            : configure kubeconfig
            : configure traefik
            : configure cert-manager
    section 02_setup
        backup_nfs
            : create RWX volume
            : create recurring job
            : deploy NFS
            : mount NFS
        postgres
            : create database
            : create user
        gitea
            : deploy gitea
            : create admin user
            : create organization
    section 03_cicd
        cicd : CI/CD
        gitea_token
            : generate token
        deploy_docker_compose
            : deploy gitea action
        argocd
            : generate token
            : deploy argocd
    section 04_tools
        Hashicorp Vault
            : gitea_token
            : hashicorp_vault
        Crowdsec
            : crowdsec
    section 05_backup
        Gitea Backup
            : gitea
        K3s PVC Backup
            : k3s_pvc
        Postgres Backup
            : create backup script
            : create restore script