dkl-local-server

Direktil-local-server

Dkl-local-server est le nom du service HTTP en charge de la génération des images et couches (layers) systèmes. Il a besoin d’un fichier config.yaml généré antérieurement par dir2config.

Les sources peuvent être trouvées sur le repository git de Direktil.

Build

La dernière version de dkl-local-server peut être compilée facilement grâce à un compilateur go.

git clone git@novit.tech:direktil/local-server.git
cd local-server/cmd/dkl-local-server
go build

Usage

./dkl-local-server

Les paramètres par défaut importants impliquent que :

  • /var/lib/direktil est le dossier data, c’est à dire là où doit se trouver le fichier config.yaml
  • Le port d’écoute par défaut est 7606

Ils peuvent être changés via les arguments en ligne de commande.

Docker

Docker peut être utilisé pour démarrer un dkl-local-server sans avoir à le compiler soi-même. Voici une ligne de commande utilisant le dossier courant comme dossier de configuration (où doit se trouver le fichier config.yaml).

docker run --rm --net=host --name dls \
        -v /etc/ssl:/etc/ssl:ro \
        -v /etc/ca-certificates:/etc/ca-certificates:ro \
        -v .:/var/lib/direktil \
        -v /dev:/dev \
        --privileged \
        -e http_proxy="$http_proxy" \
        -e https_proxy="$https_proxy" \
        -e HTTP_PROXY="$HTTP_PROXY" \
        -e HTTPS_PROXY="$HTTPS_PROXY" \
        novit.tech/direktil/local-server:latest

Secret-data

Dkl-local-server maintient un fichier secret-data.json qui sera créé dans le dossier data (par défaut /var/lib/direktil) s’il n’est pas trouvé durant un lancement, et qui contient toutes les données sensibles d’une configuration, à savoir :

  • Certificats CA de clusters et leurs clés privées
  • Certificats TLS clients/serveurs et leurs clés privées
  • Clés de ServiceAccount
  • Tokens (admin, bootstrap, keepalived, etc…)

Ce fichier doit, dans l’idéal, être sauvegardé régulièrement et de façon securisée. Sa perte impliquerait la création de nouveaux certificats CA ce qui invaliderait toutes les connexions TLS déjà en place sur d’éventuelles machines en production.