in internal/pkg/deploy/cloudformation/stack/template_functions.go [135:151]
func getNearestFargateTaskSize(containers []v1alpha1.Container) (*fargateTaskSize, error) {
containersCpuShare := float64(0)
containersMemoryMiB := int64(0)
for _, container := range containers {
containersCpuShare += float64(container.Resources.Cpu.Required.MilliValue()) / float64(1000)
containersMemoryMiB += container.Resources.Memory.Required.MilliValue() / int64(1000) / int64(1000000)
}
for _, taskSize := range getValidFargateTaskSizes() {
if containersCpuShare <= taskSize.cpuShare && containersMemoryMiB <= taskSize.memoryMiB {
return taskSize, nil
}
}
return nil, fmt.Errorf("Could not find valid Fargate task size for the given CPU and memory requirements: %f CPU shares, %d MiB memory", containersCpuShare, containersMemoryMiB)
}