From edb4a12ebe907dcd221fb8c644ca7e4ed799a243 Mon Sep 17 00:00:00 2001 From: Banks Nussman Date: Mon, 7 Oct 2024 15:37:41 -0400 Subject: [PATCH 1/3] fix dialog unmounting during upgrade and add cypress test --- .../e2e/core/kubernetes/lke-update.spec.ts | 58 ++++++++++++++++++- .../KubernetesLanding/KubernetesLanding.tsx | 4 +- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts b/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts index e576ff2ffcd..ccb89e3114b 100644 --- a/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts +++ b/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts @@ -20,6 +20,7 @@ import { mockRecycleAllNodes, mockGetDashboardUrl, mockGetApiEndpoints, + mockGetClusters, } from 'support/intercepts/lke'; import { mockGetLinodeType, @@ -113,7 +114,7 @@ describe('LKE cluster updates', () => { * - Confirms that Kubernetes upgrade prompt is shown when not up-to-date. * - Confirms that Kubernetes upgrade prompt is hidden when up-to-date. */ - it('can upgrade Kubernetes engine version', () => { + it('can upgrade kubernetes version from the details page', () => { const oldVersion = '1.25'; const newVersion = '1.26'; @@ -215,6 +216,61 @@ describe('LKE cluster updates', () => { ui.toast.findByMessage('Recycle started successfully.'); }); + it('can upgrade the kubernetes version from the landing page', () => { + const oldVersion = '1.25'; + const newVersion = '1.26'; + + const cluster = kubernetesClusterFactory.build({ + k8s_version: oldVersion, + }); + + const updatedCluster = { ...cluster, k8s_version: newVersion }; + + mockGetClusters([cluster]).as('getClusters'); + mockGetKubernetesVersions([newVersion, oldVersion]).as('getVersions'); + mockUpdateCluster(cluster.id, updatedCluster).as('updateCluster'); + mockRecycleAllNodes(cluster.id).as('recycleAllNodes'); + + cy.visitWithLogin(`/kubernetes/clusters`); + + cy.wait(['@getClusters', '@getVersions']); + + cy.findByText(oldVersion).should('be.visible'); + + cy.findByText('UPGRADE').should('be.visible').should('be.enabled').click(); + + ui.dialog + .findByTitle( + `Step 1: Upgrade ${cluster.label} to Kubernetes ${newVersion}` + ) + .should('be.visible'); + + ui.button + .findByTitle('Upgrade Version') + .should('be.visible') + .should('be.enabled') + .click(); + + mockGetClusters([updatedCluster]).as('getClusters'); + cy.wait(['@updateCluster', '@getClusters']); + + ui.dialog + .findByTitle('Step 2: Recycle All Cluster Nodes') + .should('be.visible'); + + ui.button + .findByTitle('Recycle All Nodes') + .should('be.visible') + .should('be.enabled') + .click(); + + cy.wait('@recycleAllNodes'); + + ui.toast.assertMessage('Recycle started successfully.'); + + cy.findByText(newVersion).should('be.visible'); + }); + /* * - Confirms node, node pool, and cluster recycling UI flow using mocked API data. * - Confirms that user is warned that recycling recreates nodes and may take a while. diff --git a/packages/manager/src/features/Kubernetes/KubernetesLanding/KubernetesLanding.tsx b/packages/manager/src/features/Kubernetes/KubernetesLanding/KubernetesLanding.tsx index 1edd9acf950..b12722dd77c 100644 --- a/packages/manager/src/features/Kubernetes/KubernetesLanding/KubernetesLanding.tsx +++ b/packages/manager/src/features/Kubernetes/KubernetesLanding/KubernetesLanding.tsx @@ -98,7 +98,7 @@ export const KubernetesLanding = () => { const isRestricted = profile?.restricted ?? false; - const { data, error, isFetching } = useKubernetesClustersQuery( + const { data, error, isLoading } = useKubernetesClustersQuery( { page: pagination.page, page_size: pagination.pageSize, @@ -157,7 +157,7 @@ export const KubernetesLanding = () => { ); } - if (isFetching) { + if (isLoading) { return ; } From 1d666573ef0a29661eaaf62f437609f88276c714 Mon Sep 17 00:00:00 2001 From: Banks Nussman Date: Tue, 8 Oct 2024 18:54:49 -0400 Subject: [PATCH 2/3] fix cypress test --- .../manager/cypress/e2e/core/kubernetes/lke-update.spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts b/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts index ccb89e3114b..8b78f9907d8 100644 --- a/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts +++ b/packages/manager/cypress/e2e/core/kubernetes/lke-update.spec.ts @@ -245,13 +245,14 @@ describe('LKE cluster updates', () => { ) .should('be.visible'); + mockGetClusters([updatedCluster]).as('getClusters'); + ui.button .findByTitle('Upgrade Version') .should('be.visible') .should('be.enabled') .click(); - mockGetClusters([updatedCluster]).as('getClusters'); cy.wait(['@updateCluster', '@getClusters']); ui.dialog From bf99d875e05ff4890f92f069ad778bd4c4cc8444 Mon Sep 17 00:00:00 2001 From: Banks Nussman Date: Tue, 8 Oct 2024 18:55:46 -0400 Subject: [PATCH 3/3] add changeset --- packages/manager/.changeset/pr-11056-fixed-1728428139880.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/manager/.changeset/pr-11056-fixed-1728428139880.md diff --git a/packages/manager/.changeset/pr-11056-fixed-1728428139880.md b/packages/manager/.changeset/pr-11056-fixed-1728428139880.md new file mode 100644 index 00000000000..888c1858e4c --- /dev/null +++ b/packages/manager/.changeset/pr-11056-fixed-1728428139880.md @@ -0,0 +1,5 @@ +--- +"@linode/manager": Fixed +--- + +Users unable to upgrade Kubernetes version from landing page ([#11056](https://github.com/linode/manager/pull/11056))