hashicorp / consul

Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
https://www.consul.io
Other
28.24k stars 4.41k forks source link

Ingress gateway, proxy defaults and envoy_public_listener_json #9280

Closed pvyaka01 closed 3 years ago

pvyaka01 commented 3 years ago

Overview of the Issue

consul ingress gateway envoy is not including envoy_public_listener_json filter. This is needed for example to specify access logs, to see why an ingress is sometimes gives a 5xx error or specify response headers for distributed tracing (response headers). Without this critical info, it becomes difficult to isolate whether problem is on the gateway side or upstreams. This issue is only with ingress gateway and normal services do show filters specified in envoy_public_listener_json

Thanks for the help!

Reproduction Steps

Steps to reproduce the issue ``` **1. Register ingress:** Kind = "ingress-gateway" Name = "service-ingress" Listeners = [ { Port = 8080 Protocol = "http" Services = [ { Name = "service1", hosts = ["*"] } ] } ] **2. Register proxy-defaults:** Kind = "proxy-defaults" Name = "global" Config { envoy_tracing_json = <

Consul info for both Client and Server

Client info ``` agent: check_monitors = 1 check_ttls = 0 checks = 9 services = 6 build: prerelease = beta2 revision = db08bdc1 version = 1.9.0 consul: acl = disabled known_servers = 1 server = false runtime: arch = amd64 cpu_count = 2 goroutines = 602 max_procs = 2 os = linux version = go1.14.9 serf_lan: coordinate_resets = 0 encrypted = true event_queue = 0 event_time = 10 failed = 0 health_score = 0 intent_queue = 0 left = 0 member_time = 20724 members = 26 query_queue = 0 query_time = 1 ```
Server info ``` agent: check_monitors = 1 check_ttls = 0 checks = 5 services = 4 build: prerelease = beta2 revision = db08bdc1 version = 1.9.0 consul: acl = disabled bootstrap = true known_datacenters = 1 leader = true leader_addr = xxxxx:8300 server = true raft: applied_index = 724960 commit_index = 724960 fsm_pending = 0 last_contact = 0 last_log_index = 724960 last_log_term = 12 last_snapshot_index = 721378 last_snapshot_term = 12 latest_configuration = [{Suffrage:Voter ID:e5bcd96a-9c66-a8f4-bb43-8a722a14d623 Address: xxxxx:8300}] latest_configuration_index = 0 num_peers = 0 protocol_version = 3 protocol_version_max = 3 protocol_version_min = 0 snapshot_version_max = 1 snapshot_version_min = 0 state = Leader term = 12 runtime: arch = amd64 cpu_count = 4 goroutines = 552 max_procs = 4 os = linux version = go1.14.9 serf_lan: coordinate_resets = 0 encrypted = true event_queue = 0 event_time = 10 failed = 0 health_score = 0 intent_queue = 0 left = 0 member_time = 20724 members = 26 query_queue = 0 query_time = 1 serf_wan: coordinate_resets = 0 encrypted = true event_queue = 0 event_time = 1 failed = 0 health_score = 0 intent_queue = 0 left = 0 member_time = 3 members = 1 query_queue = 0 query_time = 1 ```

Operating system and Environment details

Red Hat Enterprise Linux Server release 7.8 (Maipo) Linux xxxxxx 3.10.0-1127.13.1.el7.x86_64 #1 SMP Fri Jun 12 14:34:17 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux

Log Fragments

1. Check config dump: curl http://localhost:19000/config_dump > envoy.json

2. Check envoy configuration Envoy configuration includes what is specified in "envoy_tracing_json" and "envoy_extra_static_clusters_json" but not "envoy_public_listener_json"

pvyaka01 commented 3 years ago

Looks like there are already requests for this. Closing to avoid duplicates