update README

This commit is contained in:
Kirby 2023-07-19 16:56:26 +02:00
parent 7ffefb1159
commit 4219a7d001

View File

@ -3,30 +3,30 @@
## Description ## Description
Un démon simple écrit en Go qui prend une requête PURGE en entrée et la transmet à plusieurs serveurs varnish. Un démon simple écrit en Go qui prend une requête PURGE en entrée et la transmet à plusieurs serveurs varnish.
## Installation ## Configuration
* Compiler le programme Arguments de lancement :
``` * -l (--log) : emplacement du fichier de log. (Default : /app/http-broadcaster.log)
cd app/ * -e (--envfile) : emplacement du fichier de variables d'environnement. (Default : /vault/secrets/.env)
go get ./... * --metrics : active l'exposition des métriques prometheus sur /metrics. (Default : false)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o ../build/http-broadcaster main.go
``` ### Variables d'environement
* Déposer la liste des serveurs varnish à côté du binaire, avec ce format :
``` La liste de serveurs Varnish peut être fournie directement dans un fichier d'env :
http://10.13.32.1:6081,http://10.13.32.2:6081 * VARNISH_SERVERS: list of varnish backend servers. Ex "http://10.13.32.1:6081,http://10.13.32.2:6081"
``` * CLIENT_LIST : list of IPs in CIDR format (0.0.0.0/32) of authorized client to do purge/ban requests.
## Fonctionnalites ## Fonctionnalites
* Génère la liste des serveurs Varnish en lisant le fichier "varnish" présent à côté du binaire. * Génère la liste des serveurs Varnish à partir des variables d'environnement.
* Ecoute sur le port 6081. * Ecoute sur le port 6081.
* Healthcheck disponible sur l'uri /healthcheck pour vérifier son bon fonctionnement. Renvoie un code HTTP 200 et le message "OK". * Healthcheck disponible sur l'uri /healthcheck pour vérifier son bon fonctionnement. Renvoie un code HTTP 200 et le message "OK".
* Traite toutes les requêtes entrantes comme l'url à purger dans varnish. Par exemple un appel sur http://10.13.101.11:6081/hello/test entrainera une purge de l'uri "/hello/test" sur les serveurs Varnish. * Metriques Prometheus disponible (désactivée par défaut).
* Traite les requêtes entrantes en récupérant 3 éléments et en les intégrant à la requête transmise aux serveurs Varnish :
- La méthode (PURGE ou BAN par exemple)
- L'url : / pour BAN, /codes/api/greffes/0101 par exemple pour PURGE.
- Le header X-Cache-Tags : dans le cas d'un BAN ce header contient une valeur.
## Usage ## Usage
Les interactions se font via le protocol HTTP. Les applications où les utilisateurs envoient une requête de méthode PURGE vers le démon. Les interactions se font via le protocol HTTP. Les applications où les utilisateurs envoient une requête de méthode PURGE vers le démon.
Une fois le traitement d'une requête effectuée, le démon renvoie 200 si tout est ok, 405 dans le cas contraire. Une fois le traitement d'une requête effectuée, le démon renvoie 200 si tout est ok, 405 dans le cas contraire.
## Roadmap
* Aller chercher la liste des varnish dans vault.
* Ajouter une forme d'authentification.
* Ajouter d'autres possibilités que l'envoi à Varnish.