Opsplitsen van envoy envoy.yaml configuratie in meerdere bestanden (alleen Docker)

Ik behandel vier verschillende poorten/zaken met Envoy:

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

Voor IPv6 en IPv4 is de configuratie dezelfde, terwijl er voor http een andere configuratie is dan voor https.

Om dit te realiseren, heb ik mijn envoy configuratie opgesplitst in verschillende snippets, en voeg ze samen tijdens het bouwen van de container.

Hier is hoe mijn nieuwe Dockerfile eruit ziet:

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

mijn config map bevat verschillende bestanden die gecombineerd zijn in envoy.yaml

Niet nodig om te zoeken naar "hoe bestanden op te nemen in yaml-bestanden" Glimlach

afbeelding

Hier is, bijvoorbeeld, mijn envoy_head.yaml:

static_resresources:
   luisteraars:

Zoals u kunt zien, is het vrij eenvoudig

(NB: het eindigt met een nieuwe regel, net als alle andere bestanden - bij het combineren zal dit het gewenste resultaat opleveren).

Vergeet niet om je container te bouwen, lopende, bijvoorbeeld:

docker-compose up -build