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"
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