import React from 'react'; import { CollapsibleSection, LabeledValue, LabeledValueList, ShowUserData } from '@spinnaker/core'; import type { IAmazonServerGroupDetailsSectionProps } from './IAmazonServerGroupDetailsSectionProps'; import { MultipleInstanceTypesSubSection } from './MultipleInstanceTypesSubSection'; import { getBaseImageName } from '../utils'; export const LaunchTemplateDetailsSection = ({ serverGroup }: IAmazonServerGroupDetailsSectionProps) => { const { image } = serverGroup; const baseImage = getBaseImageName(image?.description); if (!serverGroup.launchTemplate && !serverGroup.mixedInstancesPolicy) { return null; } const isMip = serverGroup.mixedInstancesPolicy ? true : false; const launchTemplate = isMip ? serverGroup.mixedInstancesPolicy.launchTemplates[0] : serverGroup.launchTemplate; const { launchTemplateData } = launchTemplate; const maxSpotPrice = isMip ? serverGroup.mixedInstancesPolicy.instancesDistribution.spotMaxPrice : launchTemplateData?.instanceMarketOptions?.spotOptions?.maxPrice; const creditSpecification = launchTemplateData?.creditSpecification?.cpuCredits; const launchTemplateOverrides = isMip ? serverGroup.mixedInstancesPolicy.launchTemplateOverridesForInstanceType : null; return ( {image?.imageLocation && } {baseImage && } {launchTemplateOverrides && launchTemplateOverrides.length > 0 ? ( ) : ( )} {creditSpecification && } {launchTemplateData.monitoring && ( )} {maxSpotPrice && } {launchTemplateData.keyName && } {launchTemplateData.kernelId && } {launchTemplateData.ramDiskId && } {launchTemplateData.userData && ( } /> )} ); };