KSSIMI CI & DIUN
Mise à jour des conteneurs personnalisés

MàJ de mes conteneurs: Watchtower
Tous les conteneurs, y compris les conteneurs personnalisés, sont déployés à l’aide du registre Docker Hub ou du registre privé kssimi (lui même sous forme de conteneur docker).
De cette manière, j’ai la possibilité d’utiliser le service Watchtower (conteneur docker). Il permet de mettre à jour automatiquement les conteneurs avec la version la plus récente disponible sur les registres lorsqu’une nouvelle image est disponible sur celui-ci.
DIUN
Diun est un service qui déclenche des actions lorsque une nouvelle image est disponible sur un registre public ou privé. Il permet une mutitude de types d’actions tel que le lancement d’un script, le signal REST API (que j’utilise), l’envoi d’un mail, etc…
Pour mettre à jour les conteneurs personnalisés, j’ai mis en place un programme KSSIMI-CI utilisant les notifications DIUN pour déclencher mes automatisations de builds.
KSSIMI-CI
Écrit en Go pour plus de simplicité, les builds sont déclenchés par un signal REST API. Les actions à effectuer se font via SSH sur une machine virtuelle prévu pour cette tâche. Les logs sont enregistres dans un fichier de log par mois et un mail est envoyé à l’administrateur (aka moi).

L’histoire
J’ai commencé à développer ce programme car aucun autre n’était disponible pour mettre en place un système de build automatisé tout en étant léger et facilement utilisable (en tout cas pour moi).
Le but étant de ne pas avoir une base de code énorme et d’utiliser toutes les briques solides disponibles et “open source”.
KSSIMI-CI est donc composé d’un seul fichier Go qui contient l’ensemble du code de 305 lignes.
Les dépendances
Seulement deux dépendances utilisées, hors dépendances “standard”:
- github.com/joho/godotenv
- golang.org/x/crypto/ssh