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.
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