envoy.yaml voorbeeld voor http en https herschrijven

Dit is een vroeg voorbeeld van het werken met envoy. Ik vind de documentatie moeilijk om in te duiken, daarom zal ik proberen mijn vorderingen bij te houden door onregelmatige blog posts over de materie.

De volgende envoy.yaml werkt voor mij voor http en https herschrijven naar google:

static_resresources:
   luisteraars:
   - adres:
       socket_address:
         adres: 0.0.0.0
         port_value: 80
     filter_ketens:
     - filters:
       - naam: envoy.http_connection_manager
         config:
           codec_type: auto
           stat_prefix: ingress_http
           route_config:
             naam: local_route
             virtual_hosts:
             - naam: local_service
               domeinen: ["*"]
               routes:
               - match: { prefix: "/" }
                 route: { host_rewrite: www.google.com, cluster: service_google }
           http_filters:
           - naam: envoy.router
   - adres:
       socket_address:
         adres: 0.0.0.0
         port_value: 443
     filter_ketens:
     - tls_context:
         common_tls_context:
           tls_certificaten:
           - certificate_chain: { bestandsnaam: "/etc/example-com.crt" }
             private_key: { bestandsnaam: "/etc/voorbeeld-com.key" }
       filters:
       - naam: envoy.http_connection_manager
         config:
           stat_prefix: ingress_https
           route_config:
             virtual_hosts:
             - naam: standaard
               domeinen: ["*"]
               routes:
               - match: { prefix: "/" }
                 route: { host_rewrite: www.google.com, cluster: service_foo }
           http_filters:
           - naam: envoy.router
   clusters:
   - naam: service_google
     connect_timeout: 0.25s
     type: LOGICAL_DNS
     dns_lookup_family: V4_ONLY
     lb_policy: round_robin
     hosts: [{ socket_address: { address: google.com, port_value: 443 }}]
     tls_context: { sni: www.google.com }
   - naam: service_foo
     connect_timeout: 0.25s
     type: LOGICAL_DNS
     dns_lookup_family: V4_ONLY
     lb_policy: round_robin
     hosts: [{ socket_address: { address: google.com, port_value: 443 }}]
     tls_context: { sni: www.google.com }
admin:
   access_log_path: "/tmp/envoy.log"
   adres:
     socket_address:
       adres: 0.0.0.0
       port_value: 9901