func getResourceAttributesEnv()

in pkg/sidecar/attributes.go [29:83]


func getResourceAttributesEnv(ns corev1.Namespace, podReferences podReferences) []corev1.EnvVar {

	var envvars []corev1.EnvVar

	attributes := map[attribute.Key]string{
		semconv.K8SPodNameKey:       fmt.Sprintf("$(%s)", constants.EnvPodName),
		semconv.K8SPodUIDKey:        fmt.Sprintf("$(%s)", constants.EnvPodUID),
		semconv.K8SNodeNameKey:      fmt.Sprintf("$(%s)", constants.EnvNodeName),
		semconv.K8SNamespaceNameKey: ns.Name,
	}

	if podReferences.deployment != nil {
		attributes[semconv.K8SDeploymentUIDKey] = string(podReferences.deployment.UID)
		attributes[semconv.K8SDeploymentNameKey] = string(podReferences.deployment.Name)
	}

	if podReferences.replicaset != nil {
		attributes[semconv.K8SReplicaSetUIDKey] = string(podReferences.replicaset.UID)
		attributes[semconv.K8SReplicaSetNameKey] = string(podReferences.replicaset.Name)
	}

	envvars = append(envvars, corev1.EnvVar{
		Name: constants.EnvPodName,
		ValueFrom: &corev1.EnvVarSource{
			FieldRef: &corev1.ObjectFieldSelector{
				FieldPath: "metadata.name",
			},
		},
	})

	envvars = append(envvars, corev1.EnvVar{
		Name: constants.EnvPodUID,
		ValueFrom: &corev1.EnvVarSource{
			FieldRef: &corev1.ObjectFieldSelector{
				FieldPath: "metadata.uid",
			},
		},
	})

	envvars = append(envvars, corev1.EnvVar{
		Name: constants.EnvNodeName,
		ValueFrom: &corev1.EnvVarSource{
			FieldRef: &corev1.ObjectFieldSelector{
				FieldPath: "spec.nodeName",
			},
		},
	})

	envvars = append(envvars, corev1.EnvVar{
		Name:  resourceAttributesEnvName,
		Value: mapToValue(attributes),
	})

	return envvars
}