Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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))
Original file line number Diff line number Diff line change
@@ -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 =
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was an unrelated change, but something I caught from the mocks. Enterprise clusters don't have the 250 maximum.

'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.';
Original file line number Diff line number Diff line change
@@ -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';

Expand Down Expand Up @@ -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 (
<Grid container direction="column">
<Grid>
<KubernetesPlansPanel
copy={
regionSupportsDiskEncryption
? `${ADD_NODE_POOLS_DESCRIPTION} ${ADD_NODE_POOLS_ENCRYPTION_DESCRIPTION}`
: ADD_NODE_POOLS_DESCRIPTION
}
getTypeCount={(planId) =>
typeCountMap.get(planId) ?? DEFAULT_PLAN_COUNT
}
Expand All @@ -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"
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -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';

Expand Down Expand Up @@ -270,8 +270,17 @@ export const NodeTable = React.memo((props: Props) => {
</Typography>
<StyledVerticalDivider />
<EncryptedStatus
/**
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dwiley-akamai Hopefully this explains the situation well enough here and in the below file. πŸ˜…

* M3-9517: Once LDE starts releasing regions with LDE enabled, LDE will still be disabled for the LKE-E LA launch, so hide this tooltip
* explaining how LDE can be enabled on LKE-E node pools.
* TODO - LKE-E: Clean up this enterprise cluster checks once LDE is enabled for LKE-E.
*/
tooltipText={
clusterTier === 'enterprise'
? undefined
: DISK_ENCRYPTION_NODE_POOL_GUIDANCE_COPY
}
encryptionStatus={encryptionStatus}
tooltipText={DISK_ENCRYPTION_NODE_POOL_GUIDANCE_COPY}
/>
</Box>
) : (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,8 +253,15 @@ export const LinodeEntityDetailBody = React.memo((props: BodyProps) => {
flexDirection="row"
>
<EncryptedStatus
/**
* M3-9517: Once LDE starts releasing regions with LDE enabled, LDE will still be disabled for the LKE-E LA launch, so hide this tooltip
* explaining how LDE can be enabled on LKE-E node pools.
* TODO - LKE-E: Clean up this enterprise cluster checks once LDE is enabled for LKE-E.
*/
tooltipText={
isLKELinode
isLKELinode && cluster?.tier === 'enterprise'
? undefined
: isLKELinode
? UNENCRYPTED_LKE_LINODE_GUIDANCE_COPY
: UNENCRYPTED_STANDARD_LINODE_GUIDANCE_COPY
}
Expand Down