Divisione della configurazione di envoy envoy.yaml in più file (solo Docker)

Sto gestendo quattro diversi porti / casi con Envoy:

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

Per IPv6 e IPv4 la configurazione è la stessa, mentre per http c'è una configurazione diversa che per https.

Per realizzare questo, ho diviso la mia configurazione di envoy in diversi snippet, e li aggiungo insieme durante la costruzione del contenitore.

Ecco come appare il mio nuovo Dockerfile:

DA envoyproxy/envoy:latest
COPIA config /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

la mia cartella di configurazione contiene diversi file che sono combinati in envoy.yaml

Non c'è bisogno di cercare "come includere file nei file yaml". Sorriso

immagine

Ecco, per esempio, il mio envoy_head.yaml:

risorse statiche:
   ascoltatori:

Come potete vedere, è piuttosto semplice

(NB: finisce con un newline, come tutti gli altri file - quando si combinano, questo darà il risultato desiderato).

Non dimenticare di costruire il tuo contenitore, in esecuzione, per esempio:

docker-compose up -build