Update config proxy-defaults isn't being reflected in sidecar-pods
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 39
Description
When filing a bug, please include the following headings if possible. Any example text in this template can be deleted.
#### Overview of the Issue
Issue: Updating configuration in Proxy-defaults isn't being reflected automatically in sidecar-pods.
I have consul client running on K8S cluster and Consul Server running outside of K8S. Already have an existing proxy-defaults in consul configuration modified it and found the configuration isn't updated in Pod.
A paragraph or two about the issue you're experiencing.
#### Reproduction Steps
Steps to reproduce this issue, eg:
1. Have Consul Server outside of K8S.
2. Install consul-client on K8S with connect enabled.
3. Create consul proxy-default configuration
File : proxy-defaults.json
{
"Kind": "proxy-defaults",
"Name": "global",
"Config": {
"envoy_prometheus_bind_addr": "0.0.0.0:1999"
},
"MeshGateway": {},
"Expose": {},
"CreateIndex": 92272683,
"ModifyIndex": 92272683
}
consul config write proxy-defaults.json(above file)
4. Delete/update the proxy-default configuration.
5. Run kubectl -n apps exec -it -c consul-connect-envoy-sidecar sh
cat consul/connect-inject/envoy-bootstrap.yaml
You will still see the references of Prometheus in envoy.
### Consul info for both Client and Server
**Agent:**
agent:
check_monitors = 0
check_ttls = 0
checks = 12
services = 10
build:
prerelease =
revision = a9322b9c
version = 1.8.3
consul:
acl = disabled
known_servers = 3
server = false
runtime:
arch = amd64
cpu_count = 4
goroutines = 146
max_procs = 4
os = linux
version = go1.14.7
serf_lan:
coordinate_resets = 0
encrypted = true
event_queue = 0
event_time = 62
failed = 0
health_score = 0
intent_queue = 0
left = 0
member_time = 6435
members = 219
query_queue = 0
query_time = 19
**Server:**
Consul v1.8.0
$ consul info
agent:
check_monitors = 2
check_ttls = 0
checks = 4
services = 3
build:
prerelease =
revision = 3111cb8
version = 1.8.0
consul:
acl = disabled
bootstrap = false
known_datacenters = 1
leader = false
leader_addr = XX.XX.XX.XX:8300
server = true
raft:
applied_index = 93606715
commit_index = 93606715
fsm_pending = 0
last_contact = 62.466122ms
last_log_index = 93606715
last_log_term = 135
last_snapshot_index = 93592126
last_snapshot_term = 135
latest_configuration = [{Suffrage:Voter ID:f5525b44-080f-460b-7328-6ff89825a44b Address:XX.XX.XX.XX:8300} {Suffrage:Voter ID:a817ba56-b909-0208-bbb9-1e2a6e1c0143 Address:XX.XX.XX.XX:8300} {Suffrage:Voter ID:8ec6f40d-c8a1-3c38-89a9-0c377047dee7 Address:XX.XX.XX.XX:8300}]
latest_configuration_index = 0
num_peers = 2
protocol_version = 3
protocol_version_max = 3
protocol_version_min = 0
snapshot_version_max = 1
snapshot_version_min = 0
state = Follower
term = 135
runtime:
arch = amd64
cpu_count = 8
goroutines = 1046
max_procs = 8
os = linux
version = go1.14.4
serf_lan:
coordinate_resets = 0
encrypted = true
event_queue = 0
event_time = 62
failed = 9
health_score = 0
intent_queue = 0
left = 0
member_time = 6374
members = 228
query_queue = 0
query_time = 19
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 = 65
members = 3
query_queue = 0
query_time = 1
**K8S**
kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:23:11Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-13T11:13:49Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
image: "consul:1.8.3"
imageEnvoy: "envoyproxy/envoy-alpine:v1.14.2"
imageK8S: "hashicorp/consul-k8s:0.18.1"
Contributor guide
Research direction
Reproduce the issue using proxy-defaults.json, the consul-k8s 0.18.1 setup, and the kubectl exec command that reads envoy-bootstrap.yaml. Trace how proxy-defaults changes reach the sidecar injection or configuration update path, then verify that the generated Envoy bootstrap reflects an updated configuration after the Consul entry changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- infrastructure, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100