envoy.yaml esempio di riscrittura http e https

Questo è un primo esempio di lavoro con Envoy. Trovo che la documentazione sia difficile da consultare, quindi cercherò di seguire i miei progressi con post infrequenti sul blog.

Il seguente envoy.yaml funziona per me per la riscrittura http e https a google:

risorse statiche:
   ascoltatori:
   - indirizzo:
       indirizzo_presa:
         indirizzo: 0.0.0.0
         valore della porta: 80
     catene_di_filtri:
     - filtri:
       - nome: envoy.http_connection_manager
         config:
           tipo di codec: auto
           prefisso statico: ingress_http
           route_config:
             nome: local_route
             virtual_hosts:
             - nome: local_service
               domini: ["*"]
               percorsi:
               - match: { prefix: "/" }
                 route: { host_rewrite: www.google.com, cluster: service_google }
           http_filters:
           - nome: envoy.router
   - indirizzo:
       indirizzo_presa:
         indirizzo: 0.0.0.0
         valore_porta: 443
     catene_di_filtri:
     - tls_context:
         common_tls_context:
           tls_certificati:
           - certificate_chain: { filename: "/etc/example-com.crt" }
             private_key: { nome file: "/etc/example-com.key" }
       filtri:
       - nome: envoy.http_connection_manager
         config:
           prefisso statico: ingress_https
           route_config:
             virtual_hosts:
             - nome: default
               domini: ["*"]
               percorsi:
               - match: { prefix: "/" }
                 route: { host_rewrite: www.google.com, cluster: service_foo }
           http_filters:
           - nome: envoy.router
   gruppi:
   - nome: servizio_google
     connect_timeout: 0.25s
     tipo: LOGICAL_DNS
     dns_lookup_family: V4_ONLY
     lb_policy: round_robin
     host: [{ socket_address: { indirizzo: google.com, port_value: 443 }}]
     tls_context: { sni: www.google.com }
   - nome: service_foo
     connect_timeout: 0.25s
     tipo: LOGICAL_DNS
     dns_lookup_family: V4_ONLY
     lb_policy: round_robin
     host: [{ socket_address: { indirizzo: google.com, port_value: 443 }}]
     tls_context: { sni: www.google.com }
admin:
   percorso_log_accesso: "/tmp/envoy.log"
   indirizzo:
     indirizzo_presa:
       indirizzo: 0.0.0.0
       valore_porta: 9901