diff --git a/ansible/arcodange/factory/inventory/hosts.yml b/ansible/arcodange/factory/inventory/hosts.yml index 56c9a2f..0d59270 100644 --- a/ansible/arcodange/factory/inventory/hosts.yml +++ b/ansible/arcodange/factory/inventory/hosts.yml @@ -8,6 +8,13 @@ raspberries: ansible_host: pi2.home preferred_ip: 192.168.1.202 ansible_ssh_extra_args: '-o StrictHostKeyChecking=no' + # Gitea + Postgres tournent ici en docker compose nu, hors k3s (cf. + # inventory/group_vars/gitea|postgres) : invisibles du scheduler k8s, + # qui croyait donc disposer des 4 cœurs / 7,6 Gi en entier. Réservé + # informatif seulement (pas d'--enforce-node-allocatable ajouté) : ça + # réduit l'Allocatable annoncé par le kubelet, pas d'éviction ajoutée. + kubelet_reserved_args: >- + --kubelet-arg=system-reserved=cpu=2,memory=2Gi pi3: ansible_host: pi3.home preferred_ip: 192.168.1.203 diff --git a/ansible/arcodange/factory/playbooks/system/system_k3s.yml b/ansible/arcodange/factory/playbooks/system/system_k3s.yml index aa08d90..57d55fe 100644 --- a/ansible/arcodange/factory/playbooks/system/system_k3s.yml +++ b/ansible/arcodange/factory/playbooks/system/system_k3s.yml @@ -34,14 +34,23 @@ # ansible.builtin.import_playbook: k3s.orchestration.reset vars: k3s_version: v1.34.3+k3s1 + # ⚠ PAS de guillemets autour de key=value : `--kubelet-arg="k=v"` (avec + # guillemets) fait ressortir un `\=` littéral dans l'ExecStart généré par + # k3s-install.sh — kubelet refuse ensuite de démarrer ("unknown flag: + # --container-log-max-files\"), boucle de redémarrage jusqu'à NotReady. + # Mesuré le 11/08 sur pi2 : latent depuis des mois (le service n'avait pas + # redémarré depuis avril, donc jamais régénéré par la version actuelle du + # script), révélé par le premier restart forcé par ce playbook. La forme + # SANS guillemets (`--kubelet-arg=k=v`) traverse la génération intacte. extra_server_args: >- --docker --disable traefik - --kubelet-arg="container-log-max-files=5" - --kubelet-arg="container-log-max-size=10Mi" + --kubelet-arg=container-log-max-files=5 + --kubelet-arg=container-log-max-size=10Mi extra_agent_args: >- --docker - --kubelet-arg="container-log-max-files=5" - --kubelet-arg="container-log-max-size=10Mi" + --kubelet-arg=container-log-max-files=5 + --kubelet-arg=container-log-max-size=10Mi + {{ kubelet_reserved_args | default('') }} api_endpoint: "{{ hostvars[groups['server'][0]]['ansible_host'] | default(groups['server'][0]) }}" - name: how to reach k3s