func updatePodLabel()

in pkg/admission/util.go [32:66]


func updatePodLabel(pod *v1.Pod, namespace string, generateUniqueAppIds bool) map[string]string {
	result := make(map[string]string)
	for k, v := range pod.Labels {
		result[k] = v
	}

	canonicalAppID := utils.GetPodLabelValue(pod, constants.CanonicalLabelApplicationID)
	sparkAppID := utils.GetPodLabelValue(pod, constants.SparkLabelAppID)
	labelAppID := utils.GetPodLabelValue(pod, constants.LabelApplicationID)
	annotationAppID := utils.GetPodAnnotationValue(pod, constants.AnnotationApplicationID)
	if canonicalAppID == "" && sparkAppID == "" && labelAppID == "" && annotationAppID == "" {
		// if app id not exist, generate one
		// for each namespace, we group unnamed pods to one single app - if GenerateUniqueAppId is not set
		// if GenerateUniqueAppId:
		//		application ID convention: ${NAMESPACE}-${POD_UID}
		// else
		// 		application ID convention: ${AUTO_GEN_PREFIX}-${NAMESPACE}-${AUTO_GEN_SUFFIX}
		generatedID := utils.GenerateApplicationID(namespace, generateUniqueAppIds, string(pod.UID))

		result[constants.CanonicalLabelApplicationID] = generatedID
		// Deprecated: After 1.7.0, admission controller will only add canonical label if application ID was not set
		result[constants.LabelApplicationID] = generatedID
	} else if canonicalAppID != "" {
		// Deprecated: Added in 1.6.0 for backward compatibility, in case the prior shim version can't handle canonical label
		result[constants.LabelApplicationID] = canonicalAppID
	}

	canonicalQueueName := utils.GetPodLabelValue(pod, constants.CanonicalLabelQueueName)
	if canonicalQueueName != "" {
		// Deprecated: Added in 1.6.0 for backward compatibility, in case the prior shim version can't handle canonical label
		result[constants.LabelQueueName] = canonicalQueueName
	}

	return result
}