Skip to content

Conversation

@mjac0bs
Copy link
Contributor

@mjac0bs mjac0bs commented Mar 7, 2025

Description 📝

APL won't support LKE-E clusters until later this year (currently roadmapped for Q3). We need to disable it for LKE-E clusters until then and since it's upcoming let users know it is 'coming soon'.

Changes 🔄

  • Created a new variable isAPLSupported to check showAPL and the selectedTier
  • Updated logic in ApplicationPlatform to:
    • Add 'COMING SOON' to chip for LKE-E
    • Disable both radio buttons
    • Check the 'No' button
  • Updated lke-create.spec.ts to check that an LKE-E cluster tier selection results in the section being disabled
  • Added ApplicationPlatform.test.tsx

@hasyed-akamai's PR #11581 will need to replicate these changes for parity in the RHF cluster create flow.

Target release date 🗓️

3/25

Preview 📷

In summary, this was the change:

Conditions State of APL section Before After
LKE-E feature flag enabled, LKE-E tier selected, enrolled in APL beta APL section visible and disabled Screenshot 2025-03-11 at 11 33 48 PM LKE-E-Flag-Enabled-Enrolled-in-Beta-2

A more comprehensive reference of all the other possible states:

Conditions State of APL section Screenshot
LKE-E feature flag disabled, not enrolled in APL beta APL section hidden LKE-E-Flag-Disabled-Not-Enrolled-in-Beta
LKE-E feature flag disabled, enrolled in APL beta APL section visible and accessible LKE-E-Flag-Disabled-Enrolled-in-Beta
LKE-E feature flag enabled, not enrolled in APL beta APL section hidden LKE-E-Flag-Enabled-Not-Enrolled-in-Beta-2 LKE-E-Flag-Enabled-Not-Enrolled-in-Beta-1
LKE-E feature flag enabled, LKE tier selected, enrolled in APL beta APL section visible and accessible LKE-E-Flag-Enabled-Enrolled-in-Beta-1

How to test 🧪

Prerequisites

(How to setup test environment)

  • Be enrolled in the Akamai App Platform beta (https://cloud.linode.com/betas)
  • Have the LKE-E feature flag enabled and customer tag on your account (see project tracker)

Reproduction steps

(How to reproduce the issue, if applicable)

  • With the Beta enabled, select the LKE-E tier and observe the APL section is visible

Verification steps

(How to verify changes)

  • With the Beta enabled, select the LKE-E tier and observe the APL section is disabled, the No radio button is checked, and the chip includes 'COMING SOON'
  • With the Beta enabled, select the LKE tier and observe the APL section is enabled, no radio button selection is checked, the the chip reads 'BETA' (aka: no changes from prod today)
Author Checklists

As an Author, to speed up the review process, I considered 🤔

👀 Doing a self review
❔ Our contribution guidelines
🤏 Splitting feature into small PRs
➕ Adding a changeset
🧪 Providing/improving test coverage
🔐 Removing all sensitive information from the code and PR description
🚩 Using a feature flag to protect the release
👣 Providing comprehensive reproduction steps
📑 Providing or updating our documentation
🕛 Scheduling a pair reviewing session
📱 Providing mobile support
♿ Providing accessibility support


  • I have read and considered all applicable items listed above.

As an Author, before moving this PR from Draft to Open, I confirmed ✅

  • All unit tests are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@mjac0bs mjac0bs marked this pull request as ready for review March 7, 2025 21:42
@mjac0bs mjac0bs requested review from a team as code owners March 7, 2025 21:42
@mjac0bs mjac0bs requested review from abailly-akamai, harsh-akamai and jdamore-linode and removed request for a team March 7, 2025 21:42
@mjac0bs mjac0bs requested a review from hana-akamai March 7, 2025 22:14
@github-actions
Copy link

github-actions bot commented Mar 7, 2025

Coverage Report:
Base Coverage: 79.82%
Current Coverage: 79.84%

Copy link
Contributor

@jdamore-linode jdamore-linode left a comment

Choose a reason for hiding this comment

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

Nice, thanks @mjac0bs!

Comment on lines 1219 to 1223
// Confirm the APL section is not shown.
cy.findByTestId('apl-label').should('not.exist');
cy.findByTestId('apl-radio-button-yes').should('not.exist');
cy.findByTestId('apl-radio-button-no').should('not.exist');

Copy link
Contributor

@jdamore-linode jdamore-linode Mar 7, 2025

Choose a reason for hiding this comment

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

Related to the above, can we add assertions to confirm that the APL section is present when LKE-E isn't selected?

Copy link
Contributor Author

@mjac0bs mjac0bs Mar 7, 2025

Choose a reason for hiding this comment

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

I believe this test is already accomplishing that, right? Do you mean toggling to an LKE standard tier and checking that it exists?

Copy link
Contributor

@jdamore-linode jdamore-linode Mar 7, 2025

Choose a reason for hiding this comment

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

Oh yeah, you're absolutely right. There is one distinction I'll call out which is that adding the assertions here gives us explicit coverage that the APL section is present when the LKE-E feature is enabled but not selected during cluster creation, whereas the other test doesn't take the state of LKE-E into account. So if there were ever a logic issue (or mocking issue in the test) involving APL/LKE-E that resulted in APL being hidden, it would get caught by this test but may not get caught by the other.

(I have no idea what the logic for the cluster create page is like, so if this comes across as a farfetched hypothetical we can definitely leave it alone, just wanted to point it out in case it's an important distinction from a dev's POV)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I left the case of 'LKE-E feature enabled but LKE (standard) cluster tier selected' uncovered in tests because it is essentially the same flow as 'LKE-E feature disabled'. The code sets a default of standard for the selectedTier. The account beta endpoint determines whether or not the APL section is visible to users, and the section visible + the selectedTier determine whether the section is enabled or disabled.

Basically, if there were an issue with the LKE tier selection in the LKE-E flow, the first test could catch it.

Copy link
Contributor

@abailly-akamai abailly-akamai left a comment

Choose a reason for hiding this comment

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

@mjac0bs What are the UX requirements here?

If the goal is to disable the panel, then that's what we should do, not hide/remove it, especially if this will come at a later time. I find it to be a better UI to disable a panel and add contextual helper text as to the reason why, advertising the feature is coming up, rather than making the user wonder why this is happening and why this isn't possible (or will ever be). This form is already quite complex, and displaying elements conditionally could add confusion IMO.

@mjac0bs mjac0bs added the UX/UI Changes for UI/UX to review label Mar 10, 2025
@mjac0bs
Copy link
Contributor Author

mjac0bs commented Mar 10, 2025

If the goal is to disable the panel, then that's what we should do, not hide/remove it, especially if this will come at a later time.

Thanks, you're right that this is unclear. I'm following up with Product for clarity on this in #dev-apl.

This form is already quite complex, and displaying elements conditionally could add confusion IMO.

To an extent, we're already doing this (displaying elements conditionally) with the HA form section being hidden once the LKE-E cluster is selected. This was accepted by Product since HA is mentioned as included in the cluster tier section. I see your point that this is a different situation where we'd potentially be "making the user wonder why this is happening and why this isn't possible (or will ever be)".

@mjac0bs mjac0bs marked this pull request as draft March 10, 2025 22:47
@mjac0bs mjac0bs marked this pull request as ready for review March 12, 2025 15:47
@mjac0bs mjac0bs added Ready for Review and removed Work in Progress UX/UI Changes for UI/UX to review labels Mar 12, 2025
@mjac0bs
Copy link
Contributor Author

mjac0bs commented Mar 12, 2025

Reopening this up for review with updated UX treatment, which Product has agreed upon and the APL team is aware of.

The description is up to date.

@github-project-automation github-project-automation bot moved this from Review to Approved in Cloud Manager Mar 12, 2025
@mjac0bs mjac0bs added the Add'tl Approval Needed Waiting on another approval! label Mar 12, 2025
Copy link
Contributor

@abailly-akamai abailly-akamai left a comment

Choose a reason for hiding this comment

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

Looks great!

Confirmed new disabled treatment + chip depending on LKE-E ✅
Confirm inputs are properly disabled ✅

@hana-akamai hana-akamai added Approved Multiple approvals and ready to merge! and removed Add'tl Approval Needed Waiting on another approval! Ready for Review labels Mar 13, 2025
@mjac0bs
Copy link
Contributor Author

mjac0bs commented Mar 13, 2025

Found a bug with this, related to the default checked 'No' selection in section disabled state. Going to do some refactoring to address.

@mjac0bs
Copy link
Contributor Author

mjac0bs commented Mar 13, 2025

Fixed a bug and added a unit test that would catch it. A bad nullish coalescing kept the "No" radio from being checked when the section was enabled, because the value was always undefined.

Before After
Screen.Recording.2025-03-13.at.4.25.21.PM.mov
Screen.Recording.2025-03-13.at.4.36.05.PM.mov

Will merge in the morning after checks pass.

@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 1 failing test on test run #5 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
1 Failing537 Passing3 Skipped106m 42s

Details

Failing Tests
SpecTest
linode-config.spec.tsEnd-to-End » Clones a config

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/linodes/linode-config.spec.ts"

@mjac0bs mjac0bs merged commit 9d5672c into linode:develop Mar 14, 2025
26 of 27 checks passed
@github-project-automation github-project-automation bot moved this from Approved to Merged in Cloud Manager Mar 14, 2025
abailly-akamai pushed a commit to abailly-akamai/manager that referenced this pull request Mar 17, 2025
* Show the APL section only for standard cluster tiers

* Added changeset: Disable APL for LKE-E clusters on create flow

* WIP - poc for what disabled, rather than hidden, section would look like

* Update with proposed UX changes

* Update test coverage with mocked endpoints, UX changes

* Tweak changeset

* Update chip text size to small for consistency with other chips

* Fix bug preventing 'no' button from being checked
abailly-akamai added a commit that referenced this pull request Mar 18, 2025
* Remove optional canvg dependency

* Go the rollup external route

* Added changeset: Remedy canvg dependency vulnerability

* upcoming: [M3-9495] - Disable APL for LKE-E clusters (#11809)

* Show the APL section only for standard cluster tiers

* Added changeset: Disable APL for LKE-E clusters on create flow

* WIP - poc for what disabled, rather than hidden, section would look like

* Update with proposed UX changes

* Update test coverage with mocked endpoints, UX changes

* Tweak changeset

* Update chip text size to small for consistency with other chips

* Fix bug preventing 'no' button from being checked

* test: [M3-9508] - Fix GHA Cypress pipeline by redirecting env value to file (#11853)

* Fix GHA Cypress pipeline by using literal values in matrix

* Redirect output to .env file

* Set `record` action property to `false` (#11854)

* Disable Cypress Cloud parallelization action option (#11855)

* change: [M3-9434] - Update styles to CDS for create menu (#11821)

* change: [M3-9434] - Theme changes to create menu

* update styles to CDS

* Update CreateMenu.styles.ts

* Added changeset: Update styles to CSD for create menu

* Update packages/manager/src/features/TopMenu/CreateMenu/CreateMenu.styles.ts

Co-authored-by: Hussain Khalil <[email protected]>

* Disabling the custom font-weight eslint rule.

---------

Co-authored-by: Hussain Khalil <[email protected]>

* fix: [M3-9459] - show details button misalignment for selected stackscript (#11838)

* fix: [M3-9459] - show details button misalignment for selected stackscript

* Added changeset: show details button misalignment for selected stackscript

* Remove StyledRootContainer ans use actionCell prop for alignment

* Update changeset description

* feedback

* cleanup

* lock update

* Switch to using 3.0.1

---------

Co-authored-by: Mariah Jacobs <[email protected]>
Co-authored-by: jdamore-linode <[email protected]>
Co-authored-by: cpathipa <[email protected]>
Co-authored-by: Hussain Khalil <[email protected]>
Co-authored-by: hasyed-akamai <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

APL Approved Multiple approvals and ready to merge! LKE-Enterprise

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

6 participants