mirror of https://github.com/hashicorp/consul
Browse Source
* Add support for envoy readiness flags - add flags 'envoy-ready-bind-port` and `envoy-ready-bind-addr` on consul connect envoy to create a ready listener on that address.pull/14669/merge
Ashwin Venkatesh
2 years ago
committed by
GitHub
5 changed files with 349 additions and 1 deletions
@ -0,0 +1,3 @@
|
||||
```release-note:feature |
||||
connect: add flags `envoy-ready-bind-port` and `envoy-ready-bind-address` to the `consul connect envoy` command that allows configuration of readiness probe on proxy for any service kind. |
||||
``` |
@ -0,0 +1,299 @@
|
||||
{ |
||||
"admin": { |
||||
"access_log_path": "/dev/null", |
||||
"address": { |
||||
"socket_address": { |
||||
"address": "127.0.0.1", |
||||
"port_value": 19000 |
||||
} |
||||
} |
||||
}, |
||||
"node": { |
||||
"cluster": "test", |
||||
"id": "test-proxy", |
||||
"metadata": { |
||||
"namespace": "default", |
||||
"partition": "default" |
||||
} |
||||
}, |
||||
"layered_runtime": { |
||||
"layers": [ |
||||
{ |
||||
"name": "base", |
||||
"static_layer": { |
||||
"re2.max_program_size.error_level": 1048576 |
||||
} |
||||
} |
||||
] |
||||
}, |
||||
"static_resources": { |
||||
"clusters": [ |
||||
{ |
||||
"name": "local_agent", |
||||
"ignore_health_on_host_removal": false, |
||||
"connect_timeout": "1s", |
||||
"type": "STATIC", |
||||
"http2_protocol_options": {}, |
||||
"loadAssignment": { |
||||
"clusterName": "local_agent", |
||||
"endpoints": [ |
||||
{ |
||||
"lbEndpoints": [ |
||||
{ |
||||
"endpoint": { |
||||
"address": { |
||||
"socket_address": { |
||||
"address": "127.0.0.1", |
||||
"port_value": 8502 |
||||
} |
||||
} |
||||
} |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
}, |
||||
{ |
||||
"name": "self_admin", |
||||
"ignore_health_on_host_removal": false, |
||||
"connect_timeout": "5s", |
||||
"type": "STATIC", |
||||
"http_protocol_options": {}, |
||||
"loadAssignment": { |
||||
"clusterName": "self_admin", |
||||
"endpoints": [ |
||||
{ |
||||
"lbEndpoints": [ |
||||
{ |
||||
"endpoint": { |
||||
"address": { |
||||
"socket_address": { |
||||
"address": "127.0.0.1", |
||||
"port_value": 19000 |
||||
} |
||||
} |
||||
} |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
} |
||||
], |
||||
"listeners": [ |
||||
{ |
||||
"name": "envoy_ready_listener", |
||||
"address": { |
||||
"socket_address": { |
||||
"address": "127.0.0.1", |
||||
"port_value": 21000 |
||||
} |
||||
}, |
||||
"filter_chains": [ |
||||
{ |
||||
"filters": [ |
||||
{ |
||||
"name": "envoy.filters.network.http_connection_manager", |
||||
"typedConfig": { |
||||
"@type": "type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager", |
||||
"stat_prefix": "envoy_ready", |
||||
"codec_type": "HTTP1", |
||||
"route_config": { |
||||
"name": "self_admin_route", |
||||
"virtual_hosts": [ |
||||
{ |
||||
"name": "self_admin", |
||||
"domains": [ |
||||
"*" |
||||
], |
||||
"routes": [ |
||||
{ |
||||
"match": { |
||||
"path": "/ready" |
||||
}, |
||||
"route": { |
||||
"cluster": "self_admin", |
||||
"prefix_rewrite": "/ready" |
||||
} |
||||
}, |
||||
{ |
||||
"match": { |
||||
"prefix": "/" |
||||
}, |
||||
"direct_response": { |
||||
"status": 404 |
||||
} |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
"http_filters": [ |
||||
{ |
||||
"name": "envoy.filters.http.router", |
||||
"typedConfig": { |
||||
"@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router" |
||||
} |
||||
} |
||||
] |
||||
} |
||||
} |
||||
] |
||||
} |
||||
] |
||||
} |
||||
] |
||||
}, |
||||
"stats_config": { |
||||
"stats_tags": [ |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?((?:([^.]+)~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.custom_hash" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?((?:[^.]+~)?(?:([^.]+)\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.service_subset" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?((?:[^.]+~)?(?:[^.]+\\.)?([^.]+)\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.service" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.([^.]+)\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.namespace" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:([^.]+)\\.)?[^.]+\\.internal[^.]*\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.partition" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?([^.]+)\\.internal[^.]*\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.datacenter" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.([^.]+\\.(?:[^.]+\\.)?([^.]+)\\.external\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.peer" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.([^.]+)\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.routing_type" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.([^.]+)\\.consul\\.)", |
||||
"tag_name": "consul.destination.trust_domain" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?(((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+)\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.destination.target" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(?:passthrough~)?(((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+)\\.consul\\.)", |
||||
"tag_name": "consul.destination.full_target" |
||||
}, |
||||
{ |
||||
"regex": "^(?:tcp|http)\\.upstream(?:_peered)?\\.(([^.]+)(?:\\.[^.]+)?(?:\\.[^.]+)?\\.[^.]+\\.)", |
||||
"tag_name": "consul.upstream.service" |
||||
}, |
||||
{ |
||||
"regex": "^(?:tcp|http)\\.upstream\\.([^.]+(?:\\.[^.]+)?(?:\\.[^.]+)?\\.([^.]+)\\.)", |
||||
"tag_name": "consul.upstream.datacenter" |
||||
}, |
||||
{ |
||||
"regex": "^(?:tcp|http)\\.upstream_peered\\.([^.]+(?:\\.[^.]+)?\\.([^.]+)\\.)", |
||||
"tag_name": "consul.upstream.peer" |
||||
}, |
||||
{ |
||||
"regex": "^(?:tcp|http)\\.upstream(?:_peered)?\\.([^.]+(?:\\.([^.]+))?(?:\\.[^.]+)?\\.[^.]+\\.)", |
||||
"tag_name": "consul.upstream.namespace" |
||||
}, |
||||
{ |
||||
"regex": "^(?:tcp|http)\\.upstream\\.([^.]+(?:\\.[^.]+)?(?:\\.([^.]+))?\\.[^.]+\\.)", |
||||
"tag_name": "consul.upstream.partition" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.((?:([^.]+)~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.custom_hash" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.((?:[^.]+~)?(?:([^.]+)\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.service_subset" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?([^.]+)\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.service" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.([^.]+)\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.namespace" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?([^.]+)\\.internal[^.]*\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.datacenter" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.([^.]+)\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.routing_type" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.([^.]+)\\.consul\\.)", |
||||
"tag_name": "consul.trust_domain" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+)\\.[^.]+\\.[^.]+\\.consul\\.)", |
||||
"tag_name": "consul.target" |
||||
}, |
||||
{ |
||||
"regex": "^cluster\\.(((?:[^.]+~)?(?:[^.]+\\.)?[^.]+\\.[^.]+\\.(?:[^.]+\\.)?[^.]+\\.[^.]+\\.[^.]+)\\.consul\\.)", |
||||
"tag_name": "consul.full_target" |
||||
}, |
||||
{ |
||||
"tag_name": "local_cluster", |
||||
"fixed_value": "test" |
||||
}, |
||||
{ |
||||
"tag_name": "consul.source.service", |
||||
"fixed_value": "test" |
||||
}, |
||||
{ |
||||
"tag_name": "consul.source.namespace", |
||||
"fixed_value": "default" |
||||
}, |
||||
{ |
||||
"tag_name": "consul.source.partition", |
||||
"fixed_value": "default" |
||||
}, |
||||
{ |
||||
"tag_name": "consul.source.datacenter", |
||||
"fixed_value": "dc1" |
||||
} |
||||
], |
||||
"use_all_default_tags": true |
||||
}, |
||||
"dynamic_resources": { |
||||
"lds_config": { |
||||
"ads": {}, |
||||
"resource_api_version": "V3" |
||||
}, |
||||
"cds_config": { |
||||
"ads": {}, |
||||
"resource_api_version": "V3" |
||||
}, |
||||
"ads_config": { |
||||
"api_type": "DELTA_GRPC", |
||||
"transport_api_version": "V3", |
||||
"grpc_services": { |
||||
"initial_metadata": [ |
||||
{ |
||||
"key": "x-consul-token", |
||||
"value": "" |
||||
} |
||||
], |
||||
"envoy_grpc": { |
||||
"cluster_name": "local_agent" |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue