Configure tracing address as the downward API ref to status.hostIP #426
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #425
Description of changes
Some of the tracing providers support running agents as daemonsets (e.g. DataDog). If the agent is running on node locally and bound to the node local IP address, the tracing agent IP address will be different for every Envoy. AppMesh controller takes a global endpoint that is supposed to be same for every Envoy (either a service endpoint or a localhost for sidecar tracing agents). This works well for agents running at cluster level or as sidecars. However, anything running as a daemonset will not be able to receive traces.
This change adds support to use the k8s downward API to reference the pod
status.hostIP
. For daemonsets running on host network namespace,status.hostIP
Envoy will be able to send traces to them.Also, removed the fragile approach of text/template rendering of the Envoy container spec string JSON we were using and moved into the sidecar builder using proper container type.
Usage/example
e.g. Enable DataDog tracing and point Envoy sidecars to their node local DataDog daemonsets running on host network namespace. You will need to set the following flags and values at controller init:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.