1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-19 21:39:40 +02:00
portainer/app/react/kubernetes/applications/components/ApplicationSummarySection/ApplicationSummarySection.tsx
Ali abf517de28
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
refactor(app): migrate app summary section [EE-6239] (#10910)
2024-01-05 15:42:36 +13:00

73 lines
1.9 KiB
TypeScript

import { FormSection } from '@@/form-components/FormSection';
import { TextTip } from '@@/Tip/TextTip';
import { ApplicationFormValues } from '../../types';
import { getAppResourceSummaries, getArticle } from './utils';
import { Summary } from './types';
type Props = {
formValues: ApplicationFormValues;
oldFormValues: ApplicationFormValues;
};
export function ApplicationSummarySection({
formValues,
oldFormValues,
}: Props) {
// extract cpu and memory requests & limits for pod
const limits = {
cpu: formValues.CpuLimit,
memory: formValues.MemoryLimit,
};
const appResourceSummaries = getAppResourceSummaries(
formValues,
oldFormValues
);
if (!appResourceSummaries || appResourceSummaries?.length === 0) {
return null;
}
return (
<FormSection title="Summary" isFoldable defaultFolded={false}>
<TextTip color="blue">
Portainer will execute the following Kubernetes actions.
</TextTip>
<ul className="w-full small text-muted ml-5">
{appResourceSummaries.map((summary) => (
<SummaryItem key={JSON.stringify(summary)} summary={summary} />
))}
{!!limits.memory && (
<li>
Set the memory resources limits and requests to{' '}
<code>{limits.memory}M</code>
</li>
)}
{!!limits.cpu && (
<li>
Set the CPU resources limits and requests to{' '}
<code>{limits.cpu}</code>
</li>
)}
</ul>
</FormSection>
);
}
function SummaryItem({ summary }: { summary: Summary }) {
return (
<li>
{`${summary.action} ${getArticle(summary.kind, summary.action)} `}
<span className="bold">{summary.kind}</span>
{' named '}
<code>{summary.name}</code>
{!!summary.type && (
<span>
{' of type '}
<code>{summary.type}</code>
</span>
)}
</li>
);
}