Dividir la configuración envoy.yaml en varios archivos (sólo Docker)

Estoy manejando cuatro puertos / casos diferentes con Envoy:

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

Para IPv6 e IPv4 la configuración es la misma, mientras que para http hay una configuración diferente que para https.

Para realizar esto, he dividido la configuración de mi envoy en varios fragmentos, y los añado juntos durante la construcción del contenedor.

Este es el aspecto de mi nuevo Dockerfile:

FROM envoyproxy/envoy:latest
COPIAR 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

mi carpeta de configuración contiene varios archivos que se combinan en envoy.yaml

No es necesario buscar "cómo incluir archivos en archivos yaml" Sonrisa

imagen

Aquí está, por ejemplo, mi envoy_head.yaml:

static_resources:
   oyentes:

Como puede ver, es bastante sencillo

(Nota: termina con una nueva línea, al igual que todos los demás archivos; al combinarlos, se obtendrá el resultado deseado).

No olvides construir tu contenedor, corriendo, por ejemplo:

docker-compose up -build