in pkg/common/utils/utils.go [284:315]
func GetNamespaceQuotaFromAnnotation(namespaceObj *v1.Namespace) *si.Resource {
// retrieve resource quota info from annotations
cpuQuota := GetNameSpaceAnnotationValue(namespaceObj, constants.CPUQuota)
memQuota := GetNameSpaceAnnotationValue(namespaceObj, constants.MemQuota)
namespaceQuota := GetNameSpaceAnnotationValue(namespaceObj, constants.NamespaceQuota)
// order of annotation preference
// 1. namespace.quota
// 2. namespace.max.* (Retaining for backwards compatibility. Need to be removed in next major release)
switch {
case namespaceQuota != "":
if cpuQuota != "" || memQuota != "" {
log.Log(log.ShimUtils).Warn("Using namespace.quota instead of namespace.max.* (deprecated) annotation to set cpu and/or memory for namespace though both are available.",
zap.String("namespace", namespaceObj.Name))
}
var namespaceQuotaMap map[string]string
err := json.Unmarshal([]byte(namespaceQuota), &namespaceQuotaMap)
if err != nil {
log.Log(log.ShimUtils).Warn("Unable to process namespace.quota annotation",
zap.String("namespace", namespaceObj.Name),
zap.String("namespace.quota is", namespaceQuota))
return nil
}
return common.GetResource(namespaceQuotaMap)
case cpuQuota != "" || memQuota != "":
log.Log(log.ShimUtils).Warn("Please use namespace.quota instead of namespace.max.* (deprecated) annotation. Using deprecated annotation to set cpu and/or memory for namespace. ",
zap.String("namespace", namespaceObj.Name))
return common.ParseResource(cpuQuota, memQuota)
default:
return nil
}
}