Skip to content

Commit

Permalink
Auto-inject the IP tag for operator-injected agent
Browse files Browse the repository at this point in the history
Signed-off-by: Ruben Vargas <ruben.vp8510@gmail.com>
  • Loading branch information
rubenvp8510 committed Jan 23, 2020
1 parent c6fe438 commit 61cfa50
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
26 changes: 19 additions & 7 deletions pkg/inject/sidecar.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 {
Expand All @@ -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,
Expand Down
1 change: 1 addition & 0 deletions pkg/inject/sidecar_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"})
Expand Down

0 comments on commit 61cfa50

Please sign in to comment.