From 61cfa5065f77fdd38559a6763252b9ce52432919 Mon Sep 17 00:00:00 2001 From: Ruben Vargas Date: Wed, 22 Jan 2020 12:23:11 -0600 Subject: [PATCH] Auto-inject the IP tag for operator-injected agent Signed-off-by: Ruben Vargas --- pkg/inject/sidecar.go | 26 +++++++++++++++++++------- pkg/inject/sidecar_test.go | 1 + 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/pkg/inject/sidecar.go b/pkg/inject/sidecar.go index a300da887b..7e72d28042 100644 --- a/pkg/inject/sidecar.go +++ b/pkg/inject/sidecar.go @@ -34,6 +34,7 @@ const ( envVarServiceName = "JAEGER_SERVICE_NAME" envVarPropagation = "JAEGER_PROPAGATION" envVarPodName = "POD_NAME" + envVarHostIP = "HOST_IP" ) // Sidecar adds a new container to the deployment, connecting to the given jaeger instance @@ -132,11 +133,12 @@ func container(jaeger *v1.Jaeger, dep *appsv1.Deployment) corev1.Container { jgBinaryTrft := util.GetPort("--processor.jaeger-binary.server-host-port=", args, 6832) if len(util.FindItem("--jaeger.tags=", args)) == 0 { - agentTags := fmt.Sprintf("%s=%s,%s=%s,%s=%s,%s=%s", + agentTags := fmt.Sprintf("%s=%s,%s=%s,%s=%s,%s=%s,%s=%s", "cluster", "undefined", // this value isn't currently available "deployment.name", dep.Name, "pod.namespace", dep.Namespace, "pod.name", fmt.Sprintf("${%s:}", envVarPodName), + "ip", fmt.Sprintf("${%s:}", envVarHostIP), ) if len(dep.Spec.Template.Spec.Containers) == 1 { @@ -158,14 +160,24 @@ func container(jaeger *v1.Jaeger, dep *appsv1.Deployment) corev1.Container { Image: util.ImageName(jaeger.Spec.Agent.Image, "jaeger-agent-image"), Name: "jaeger-agent", Args: args, - Env: []corev1.EnvVar{{ - Name: envVarPodName, - ValueFrom: &corev1.EnvVarSource{ - FieldRef: &corev1.ObjectFieldSelector{ - FieldPath: "metadata.name", + Env: []corev1.EnvVar{ + { + Name: envVarPodName, + ValueFrom: &corev1.EnvVarSource{ + FieldRef: &corev1.ObjectFieldSelector{ + FieldPath: "metadata.name", + }, }, }, - }}, + { + Name: envVarHostIP, + ValueFrom: &corev1.EnvVarSource{ + FieldRef: &corev1.ObjectFieldSelector{ + FieldPath: "status.hostIP", + }, + }, + }, + }, Ports: []corev1.ContainerPort{ { ContainerPort: zkCompactTrft, diff --git a/pkg/inject/sidecar_test.go b/pkg/inject/sidecar_test.go index 14f913b911..6981277640 100644 --- a/pkg/inject/sidecar_test.go +++ b/pkg/inject/sidecar_test.go @@ -58,6 +58,7 @@ func TestInjectSidecarWithEnvVars(t *testing.T) { assert.Len(t, dep.Spec.Template.Spec.Containers, 2) assert.Contains(t, dep.Spec.Template.Spec.Containers[1].Image, "jaeger-agent") containsEnvVarNamed(t, dep.Spec.Template.Spec.Containers[1].Env, envVarPodName) + containsEnvVarNamed(t, dep.Spec.Template.Spec.Containers[1].Env, envVarHostIP) assert.Len(t, dep.Spec.Template.Spec.Containers[0].Env, 2) assert.Contains(t, dep.Spec.Template.Spec.Containers[0].Env, corev1.EnvVar{Name: envVarPropagation, Value: "jaeger,b3"})