Division de la configuration envoy.yaml en plusieurs fichiers (Docker uniquement)

Je m'occupe de quatre ports / cas différents avec Envoy :

  • IPv6 http
  • IPv4 http
  • IPv6 https
  • IPv4 https

Pour IPv6 et IPv4 la configuration est la même, alors que pour http il y a une configuration différente de celle pour https.

Pour réaliser ceci, j'ai divisé ma configuration d'Envoy en plusieurs snippets, et je les ajoute ensemble pendant la construction du conteneur.

Voici à quoi ressemble mon nouveau fichier Docker :

FROM envoyproxy/envoy:latest
COPIE de la configuration /tmp/config
RUN cat /tmp/config/envoy_head.yaml /tmp/config/http_head_one.yaml /tmp/config/http_body.yaml /tmp/config/http_head_two.yaml /tmp/config/http_body.yaml /tmp/config/https_head_one.yaml /tmp/config/https_body.yaml /tmp/config/https_head_two.yaml /tmp/config/https_body.yaml /tmp/config/envoy_tail.yaml > /etc/envoy/envoy.yaml

mon dossier de configuration contient plusieurs fichiers qui sont combinés dans envoy.yaml

Pas besoin de chercher "comment inclure des fichiers dans les fichiers yaml". Sourire

image

Voici, par exemple, mon envoy_head.yaml :

ressources_statiques :
   des auditeurs :

Comme vous pouvez le voir, c'est assez simple

(NB : il se termine par un saut de ligne, comme tous les autres fichiers - en le combinant, cela donnera le résultat souhaité).

N'oubliez pas de construire votre conteneur, en l'exécutant, par exemple :

docker-compose up -build