diff --git a/packages/manager/.changeset/pr-11880-upcoming-features-1742329364209.md b/packages/manager/.changeset/pr-11880-upcoming-features-1742329364209.md new file mode 100644 index 00000000000..e7321d52807 --- /dev/null +++ b/packages/manager/.changeset/pr-11880-upcoming-features-1742329364209.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Upcoming Features +--- + +Update LKE-E flows to account for LDE status at LA launch ([#11880](https://github.com/linode/manager/pull/11880)) diff --git a/packages/manager/src/features/Kubernetes/ClusterList/constants.ts b/packages/manager/src/features/Kubernetes/ClusterList/constants.ts index 12c04bc6fae..23fa758e6be 100644 --- a/packages/manager/src/features/Kubernetes/ClusterList/constants.ts +++ b/packages/manager/src/features/Kubernetes/ClusterList/constants.ts @@ -1,5 +1,11 @@ export const ADD_NODE_POOLS_DESCRIPTION = 'Add groups of Linodes to your cluster. You can have a maximum of 100 Linodes per node pool and a maximum of 250 Linodes per cluster.'; +export const ADD_NODE_POOLS_ENTERPRISE_DESCRIPTION = + 'Add groups of Linodes to your cluster. You can have a maximum of 100 Linodes per node pool.'; + export const ADD_NODE_POOLS_ENCRYPTION_DESCRIPTION = 'Node Pool data is encrypted at rest.'; + +export const ADD_NODE_POOLS_NO_ENCRYPTION_DESCRIPTION = + 'Node Pool data is not encrypted at rest for LKE Enterprise clusters.'; diff --git a/packages/manager/src/features/Kubernetes/CreateCluster/NodePoolPanel.tsx b/packages/manager/src/features/Kubernetes/CreateCluster/NodePoolPanel.tsx index c1e3674cfbf..75a723cc67a 100644 --- a/packages/manager/src/features/Kubernetes/CreateCluster/NodePoolPanel.tsx +++ b/packages/manager/src/features/Kubernetes/CreateCluster/NodePoolPanel.tsx @@ -1,15 +1,17 @@ +import { useRegionsQuery } from '@linode/queries'; import { CircleProgress, ErrorState } from '@linode/ui'; import Grid from '@mui/material/Grid2'; import * as React from 'react'; import { useIsAcceleratedPlansEnabled } from 'src/features/components/PlansPanel/utils'; -import { useRegionsQuery } from '@linode/queries'; import { doesRegionSupportFeature } from 'src/utilities/doesRegionSupportFeature'; import { extendType } from 'src/utilities/extendType'; import { ADD_NODE_POOLS_DESCRIPTION, ADD_NODE_POOLS_ENCRYPTION_DESCRIPTION, + ADD_NODE_POOLS_ENTERPRISE_DESCRIPTION, + ADD_NODE_POOLS_NO_ENCRYPTION_DESCRIPTION, } from '../ClusterList/constants'; import { KubernetesPlansPanel } from '../KubernetesPlansPanel/KubernetesPlansPanel'; @@ -100,15 +102,20 @@ const Panel = (props: NodePoolPanelProps) => { 'Disk Encryption' ); + const getPlansPanelCopy = () => { + // TODO - LKE-E: Remove the 'ADD_NODE_POOLS_NO_ENCRYPTION_DESCRIPTION' copy once LDE is enabled on LKE-E. + if (selectedTier === 'enterprise') { + return `${ADD_NODE_POOLS_ENTERPRISE_DESCRIPTION} ${ADD_NODE_POOLS_NO_ENCRYPTION_DESCRIPTION}`; + } + return regionSupportsDiskEncryption + ? `${ADD_NODE_POOLS_DESCRIPTION} ${ADD_NODE_POOLS_ENCRYPTION_DESCRIPTION}` + : ADD_NODE_POOLS_DESCRIPTION; + }; + return ( typeCountMap.get(planId) ?? DEFAULT_PLAN_COUNT } @@ -121,6 +128,7 @@ const Panel = (props: NodePoolPanelProps) => { // No Nanodes in Kubernetes clusters return t.class !== 'nanode'; })} + copy={getPlansPanelCopy()} error={apiError} hasSelectedRegion={hasSelectedRegion} header="Add Node Pools" diff --git a/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeTable.tsx b/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeTable.tsx index f23d2278dfd..d07823d9ae1 100644 --- a/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeTable.tsx +++ b/packages/manager/src/features/Kubernetes/KubernetesClusterDetail/NodePoolsDisplay/NodeTable.tsx @@ -1,3 +1,4 @@ +import { useAllLinodesQuery, useProfile } from '@linode/queries'; import { Box, ErrorState, TooltipIcon, Typography } from '@linode/ui'; import { DateTime, Interval } from 'luxon'; import { enqueueSnackbar } from 'notistack'; @@ -20,7 +21,6 @@ import { TableRow } from 'src/components/TableRow'; import { TableSortCell } from 'src/components/TableSortCell'; import { TagCell } from 'src/components/TagCell/TagCell'; import { useUpdateNodePoolMutation } from 'src/queries/kubernetes'; -import { useAllLinodesQuery, useProfile } from '@linode/queries'; import { parseAPIDate } from 'src/utilities/date'; import { getAPIErrorOrDefault } from 'src/utilities/errorUtils'; @@ -270,8 +270,17 @@ export const NodeTable = React.memo((props: Props) => { ) : ( diff --git a/packages/manager/src/features/Linodes/LinodeEntityDetailBody.tsx b/packages/manager/src/features/Linodes/LinodeEntityDetailBody.tsx index eb6ef0e1a7f..d9034d23458 100644 --- a/packages/manager/src/features/Linodes/LinodeEntityDetailBody.tsx +++ b/packages/manager/src/features/Linodes/LinodeEntityDetailBody.tsx @@ -253,8 +253,15 @@ export const LinodeEntityDetailBody = React.memo((props: BodyProps) => { flexDirection="row" >