Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

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

@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 self-assigned this Mar 7, 2025
@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 jdamore-linode, abailly-akamai and harsh-akamai and removed request for a team March 7, 2025 21:42
@mjac0bs mjac0bs requested a review from hana-akamai March 7, 2025 22:14
Copy link

github-actions bot commented Mar 7, 2025

Coverage Report:
Base Coverage: 80.14%
Current Coverage: 80.14%

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.

@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🎉 538 passing tests on test run #3 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
0 Failing538 Passing3 Skipped112m 52s

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants