Skip to content

upcoming: [UIE-10204] - Allow Simultaneous V1 (Legacy) and V2 (ACLP) Alerting in Linode Edit flow#13455

Open
pmakode-akamai wants to merge 36 commits intolinode:developfrom
pmakode-akamai:UIE-10204
Open

upcoming: [UIE-10204] - Allow Simultaneous V1 (Legacy) and V2 (ACLP) Alerting in Linode Edit flow#13455
pmakode-akamai wants to merge 36 commits intolinode:developfrom
pmakode-akamai:UIE-10204

Conversation

@pmakode-akamai
Copy link
Contributor

@pmakode-akamai pmakode-akamai commented Mar 3, 2026

Description 📝

Allow Simultaneous V1 (Legacy) and V2 (ACLP) Alerting in Linode Edit flow

Changes 🔄

  • Removed the switch toggle functionality from the Edit Linode -> Alerts -> banner
    • Updated the info banner text per UX
  • Enabled simultaneous V1 (Legacy) and V2 (ACLP) alerting in the Linode Edit flow when ACLP is supported in the region - both Legacy Alerts and ACLP Alerts UI will now be displayed
  • Show only V1 (Legacy) standalone mode when ACLP is not supported in the region
  • Removed the unnecessary isLinodeAclpSubscribed hook from the shared package, along with related references, as it is no longer required due to the Edit Linode Alerts flow changes
  • Updated the validation schema for UpdateLinodeAlertsSchema
  • Updated mocks for clarity
  • Fix stale state: reset ACLP alerts to empty when entering ACLP mode 🐞🔧

Scope 🚢

  • All customers
  • Some customers (e.g. in Beta or Limited Availability)
  • No customers / Not applicable

Target release date 🗓️

March end release

Preview 📷

Description Before After
Alerts in non-ACLP supported region: Only Legacy Alerts UI will be displayed Screenshot 2026-03-03 at 7 41 43 PM Screenshot 2026-03-03 at 3 58 04 PM Same as Before
Alerts in ACLP supported region Screenshot 2026-03-03 at 7 40 18 PM Switch to toggle between Legacy and ACLP alerting modes Screenshot 2026-03-03 at 4 14 46 PM Both Legacy Alerts and ACLP Alerts UI with unified Save will be displayed
Bug Fix (In Create Linode Flow) Stale state when entering ACLP mode in Create Linode Flow:
Screen.Recording.2026-03-05.at.2.20.02.PM.mov
ACLP alerts are now reset to empty values when entering ACLP mode, so that no stale alerts are carried over ✅

How to test 🧪

Prerequisites

  • Test using real data or mocks (real data is recommended)
  • Enable aclpServices -> linode -> alerts feature flag
  • For Mocks:
    • Enabled MSW with legacy MSW handler
    • Go to the Linodes Landing Page and locate mock Linodes in an ACLP-supported region:
      Screenshot 2026-03-03 at 7 50 54 PM
    • Go to the Alerts tab of any Linode in an ACLP-supported region from the list above
  • For real data:
    • Add the required customer tags (for the linode service type) to your Devcloud admin account to enable ACLP in the available region
      • To ensure the region supports ACLP for the Linode service type, check the /regions API endpoint and ensure that Linodes is listed under monitors.alerts for that region:
        Screenshot 2026-03-03 at 8 05 21 PM
    • Use your Devcloud account to test this functionality with real data
    • First, create a Linode in an ACLP-supported region

Verification steps

  1. Test Using Mocks

    • ACLP-Supported Region Linode
      • Locate any ACLP-supported region mock Linode (from the screenshot above)
      • Go to the Alerts tab
      • Ensure the Unified Layout displays both Legacy and ACLP alerts together in accordions with a single Unified Save Alerts button
      • Ensure a normal banner is displayed and no toggle switch is present
      • Edit alerts in the following scenarios and click Save Alerts:
        • Update both Legacy and ACLP alerts
        • Update only Legacy alerts
        • Update only ACLP alerts
      • In each case, verify in the Network tab that the request payload aligns with the changes made
      • Ensure field-level validation for Legacy alerts continues to work as expected
      • Ensure unified error handling works as expected when clicking the Unified Save Alerts button
    • Non-ACLP-Supported Region Linode
      • Locate any Linode not shown in the ACLP-supported screenshot
      • Go to the Alerts tab
      • Ensure only the standalone Legacy Alerts UI is displayed
      • Ensure no banner is displayed in this mode
      • Edit alerts and click Save
      • Verify in the Network tab that the request payload matches the changes made
      • Ensure field-level validation continues to work as expected
    • Ensure all tests pass
    • Ensure Unsaved Changes modal continue to work as expected in both the modes
    • Ensure there is no stale state when entering ACLP mode in Create Linode flow
  2. Test with Real Data (Devcloud)

    • ACLP-Supported Region Linode
      • Create a Linode in an ACLP-supported region (Devcloud currently has only one region available, which is ACLP-supported)
      • During creation, select either Legacy or ACLP alerts from Additional Options section
      • After creation, navigate to Linode Details -> Alerts tab
      • Ensure the Unified layout displays both Legacy and ACLP alerts UI together in accordions with a Unified Save button + info banner with no toggle switch
      • Edit alerts in the following scenarios and click Save Alerts:
        • Update both Legacy and ACLP alerts
        • Update only Legacy alerts
        • Update only ACLP alerts
      • Ensure updates work as expected in all three cases
      • Ensure Legacy field-level validation continues to function correctly
      • Ensure unified error handling works as expected when clicking the Unified Save Alerts button
        • You may block the API request to simulate and test error handling
      • Ensure you cannot submit unless the Aclp Alerts component has finished loading without any errors
    • Non-ACLP-Supported Region Linode (Use Prod, as Devcloud has only one region)
      • Create a standard/normal Linode in a non-ACLP-supported region
      • Navigate to the Alerts tab
      • Ensure only the standalone Legacy Alerts UI is displayed
      • Edit alerts and click Save and ensure updates work as expected
      • Ensure Legacy alert fields and form validation continue to work as expected
    • Ensure all tests pass
    • Ensure Unsaved Changes modal continue to work as expected in both the modes
    • Ensure there is no stale state when entering ACLP mode in Create Linode flow
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 tests and CI checks are passing
  • TypeScript compilation succeeded without errors
  • Code passes all linting rules

@pmakode-akamai pmakode-akamai self-assigned this Mar 3, 2026
@pmakode-akamai pmakode-akamai added the ACLP Integration CI (Cloud Interfaces) Support for CC (Core Compute) CloudPulse Integration label Mar 3, 2026
@pmakode-akamai pmakode-akamai added the Linodes Dealing with the Linodes section of the app label Mar 3, 2026

// Verify that account and region level alerts are not included in the payload
expect(mockUpdateAlerts).toHaveBeenCalledWith({
alerts: {
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 believe servicePayloadTransformerMap may need an update based on the latest behavior. It might make sense for the CloudPulse team to remove linode from this map as part of a separate cleanup.

For the linode service type, we probably don't need to pass the alerts wrapper to the service owners/consumers. Instead, it should just send the raw payload with system_alerts and user_alerts (which is currently working as expected). Also, this should ideally be triggered via the toggle switch, rather than on Save or during alert mutation for the linode service type.

@@ -1,2 +1 @@
export * from './useIsGeckoEnabled';
export * from './useIsLinodeAclpSubscribed';
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 is no longer required due to changes in the Edit Linode Alerts flow (Linode can now support both legacy and ACLP simultaneously)

},
then: (schema) => schema.required(`${label} is required.`),
otherwise: (schema) => schema.notRequired(),
});
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 is no longer needed since the Edit Linode Alerts flow no longer has a switch to toggle between Legacy and ACLP modes and the below schema is now simplified

<AlertInformationActionTable {...props} showConfirmationDialog />
<AlertInformationActionTable
{...props}
serviceType="dbaas"
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Had to use another service type (dbaas) instead of the default linode to make these tests pass since the linode service type does not have a Save button

Copy link
Contributor

@dwiley-akamai dwiley-akamai left a comment

Choose a reason for hiding this comment

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

@pmakode-akamai Can you update the ticket, epic, and/or project tracker with the required customer tag(s)? I didn't see any listed in those places

@pmakode-akamai
Copy link
Contributor Author

pmakode-akamai commented Mar 10, 2026

@pmakode-akamai Can you update the ticket, epic, and/or project tracker with the required customer tag(s)? I didn't see any listed in those places

@dwiley-akamai I'm not too sure about this tag and where it needs to be added to enable ACLP for a specific service type in the region. In my case, @kmuddapo from the ACLP team added this tag to my DevCloud account. I've left a message on Slack so we know and can document how to add it ourselves in the future

Edit: Updated the ticket, epic, and project tracker with the required customer tag(s) ✅

@kmuddapo
Copy link
Collaborator

@pmakode-akamai Can you update the ticket, epic, and/or project tracker with the required customer tag(s)? I didn't see any listed in those places

@dwiley-akamai I'm not too sure about this tag and where it needs to be added to enable ACLP for a specific service type in the region. In my case, @kmuddapo from the ACLP team added this tag to my DevCloud account. I've left a message on Slack so we know and can document how to add it ourselves in the future

The tag for enabling aclp linode is "aclp-beta-linode", needs to be added via admin portal. Thanks!!

@pmakode-akamai pmakode-akamai requested review from dwiley-akamai and venkymano-akamai and removed request for santoshp210-akamai March 12, 2026 06:52
@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 2 failing tests on test run #11 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
2 Failing878 Passing11 Skipped38m 15s

Details

Failing Tests
SpecTest
lke-create.spec.tsCloud Manager Cypress Tests→LKE Cluster Creation with LKE-E→shows the LKE-E flow with the feature flag on » creates an LKE-E cluster with the account capability
object-storage.e2e.spec.tsCloud Manager Cypress Tests→object storage end-to-end tests » can create and delete object storage buckets

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/kubernetes/lke-create.spec.ts,cypress/e2e/core/objectStorage/object-storage.e2e.spec.ts"

Copy link
Contributor

@dwiley-akamai dwiley-akamai left a comment

Choose a reason for hiding this comment

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

When I make a change to both legacy and ACLP alerts and try to save the changes, I get this error (happens both for linodes created w/ legacy alerts initially and w/ beta alerts initially):

Image

Image

@pmakode-akamai
Copy link
Contributor Author

When I make a change to both legacy and ACLP alerts and try to save the changes, I get this error (happens both for linodes created w/ legacy alerts initially and w/ beta alerts initially)

@dwiley-akamai I believe this is because the API team hasn't finished updating the API to make it work. I've left a message in the project Slack channel to check when it will be available on DevCloud.

@github-project-automation github-project-automation bot moved this from Review to Approved in Cloud Manager Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ACLP Integration CI (Cloud Interfaces) Support for CC (Core Compute) CloudPulse Integration Linodes Dealing with the Linodes section of the app Ready for Review

Projects

Status: Approved

Development

Successfully merging this pull request may close these issues.

5 participants