.. | ||
docker-compose.yml | ||
README.md | ||
traefik.toml |
Traefik
Ce dossier contient les ressources nécessaires pour lancer Traefik, un reverse proxy adapté pour Docker. C'est la pièce la plus importante de l'infrastructure, puisque l'ensemble des communications HTTP(S) passent d'abord par Traefik, et il est aussi utilisé pour générer des certificats pour les services TCP.
Ce service doit être lancé sur l'ensemble des machines de l'infrastructure.
Configuration
La configuration a lieu dans le fichier traefik.toml. Notez que toute modification dans ce fichier impactera l'ensemble des machines, puisque le même fichier est utilisé pour l'ensemble des machines.
À des fins de tests, il peut être modifié localement sur les machines, mais doit toujours rester synchronisé avec ce dépôt à long terme.
Pour la génération des certificats, Traefik utilise Let's Encrypt. Il n'y a aucune configuration à faire de ce côté. Attention, le nombre de certificats générables est limité à 50 par semaine.
Si on lance plein de conteneurs de tests, on utilisera temporairement l'environnement de qualification de Let's Encrypt, en ajoutant la directive caServer = "https://acme-staging-v02.api.letsencrypt.org/directory"
sous la section [acme]
.
Lancement
Assurez-vous que le dossier /DATA/docker/traefik/certs
existe.
C'est dans ce dossier que seront conservés tous les certificats générés par Traefik.
Mise à jour
Il suffit de mettre à jour le tag de l'image dans Compose. Attention, Traefik v2 introduit énormément de changements et nous ne sommes pas certains de la manière d'effectuer la migration.
Aussi, Traefik v1.6 est utilisé pour tenterd d'éviter un bug introduit dans la 1.7, qui rend certains services redémarrés inaccessibles (voir cette discussion).
Avant toute mise à jour, il faudra discuter avec l'équipe technique et modifier ce README le cas échéant.
Todo
Voir si on peut passer Traefik en "host" au niveau du réseau pour qu'il ait accès à tous les réseaux : https://kanban.picasoft.net/b/7fCn765LCNGraBhxA/team-technique-picasoft/kjvc3iw2pFvszCTcR
Actuellement, Traefik est dans le réseau docker_default
sur toutes les machines, et les conteneurs souhaitant être accessibles via Traefik doivent être explicitement dans ce réseau.
Ceci induit une complexité supplémentaire au niveau des fichiers Compose.
Il serait peut être bon de permettre à Traefik d'accéder à tous les réseaux et de supprimer énormément de directives "inutiles" dans les Compose.