func buildVolumeClaimV1()

in cost-optimization/gke-shift-left-cost/api/builder_volumeclaim.go [44:66]


func buildVolumeClaimV1(volume *coreV1.PersistentVolumeClaim, conf CostimatorConfig) VolumeClaim {
	conf = populateConfigNotProvided(conf)
	storageClass := storageClassStandard
	if volume.Spec.StorageClassName != (*string)(nil) && *volume.Spec.StorageClassName != "" {
		storageClass = *volume.Spec.StorageClassName
	}
	res := volume.Spec.Resources
	requests := res.Requests.Storage().Value()
	limits := res.Limits.Storage().Value()
	// If Requests is omitted for a container, it defaults to Limits if that is explicitly specified
	if requests == 0 {
		requests = limits
	}
	if limits == 0 {
		limits = requests
	}
	return VolumeClaim{
		APIVersionKindName: buildAPIVersionKindName(volume.APIVersion, VolumeClaimKind, volume.GetNamespace(), volume.GetName()),
		StorageClass:       storageClass,
		Requests:           Resource{Storage: requests},
		Limits:             Resource{Storage: limits},
	}
}