in frontend/src/old-pages/Configure/Components.tsx [131:173]
export function useInstanceGroups(): Record<string, InstanceGroup> {
const {t} = useTranslation()
const instanceTypes = useState(['aws', 'instanceTypes']) || []
let groups: {[key: string]: InstanceGroup} = {}
for (let instance of instanceTypes) {
let group = 'General Purpose'
if (instance.InstanceType.startsWith('c6g')) {
group = 'Graviton'
} else if (instance.InstanceType.startsWith('c')) {
group = 'Compute'
} else if (instance.InstanceType.startsWith('hpc')) {
group = 'HPC'
} else if (instance.InstanceType.startsWith('m')) {
group = 'Mixed'
} else if (instance.InstanceType.startsWith('r')) {
group = 'High Memory'
} else if (
instance.InstanceType.startsWith('p') ||
instance.InstanceType.startsWith('g')
) {
group = 'GPU'
}
if (!(group in groups)) groups[group] = []
let tags = [
t('wizard.components.instanceSelect.instanceType.vCpus', {
vCpus: instance.VCpuInfo.DefaultVCpus,
}),
t('wizard.components.instanceSelect.instanceType.memory', {
memory: instance.MemoryInfo.SizeInMiB / 1024,
}),
]
if (Object.keys(instance.GpuInfo).length > 0)
tags.push(`${instance.GpuInfo.Count} x ${instance.GpuInfo.Name}`)
groups[group].push({type: instance.InstanceType, tags: tags})
}
return groups
}