Skip to content

Conversation

@ankita-akamai
Copy link
Contributor

@ankita-akamai ankita-akamai commented Aug 11, 2025

Description 📝

Handle new flag to control services types in alerts and metrics in ui.

Changes 🔄

  • DI-26394: Added new LaunchDarkly flag to control service types in alerts and metrics UI
    • Update CloudPulseDashboardSelect.tsx, AlertListing.tsx, ServiceTypeSelect.tsx, AlertReusableComponent.tsx to filter the service types based on truthy props in the new feature flag - aclpServices.
  • DI-26398: Added/Updated Cypress specs to cover aclpServices LaunchDarkly flags for Alert and Metrics features

Flag Description: aclpServices: enabled prop controls if service needs to be shown in UI and beta prop signifies if service is in beta phase.

Scope 🚢

Upon production release, changes in this PR will be visible to:

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

Target release date 🗓️

26 August 2025

Preview 📷

  • No change in ui -

- Metrics:

image
  • Alerts

Listing Select:
image

Listing alerts:
image

Create:
image

How to test 🧪

Verification steps

  • Navigate to /metrics. Click on 'select a dashboard' autocomplete and verify whether the services - 'linode', 'databases', 'nodebalancers', 'firewalls' are visible.
  • Navigate to /alerts. Click on 'select a service' autocomplete and verify whether the services - 'linode', 'databases', 'nodebalancers', 'firewalls' are visible.
  • Click on 'create alert' button. Now, check if services - 'linode', 'databases', 'nodebalancers', 'firewalls' are visible in the 'select a service' dropdown.
  • If you go to cloud.dev.linode.com, you would see a new service Network LoadBalancer coming up in all of these service select autocompletes, but you wouldn't see that in this pr branch as we have not yet added Network LoadBalancer in our LD flag. This is expected and can be used to check if flag is working properly.
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

@ankita-akamai ankita-akamai marked this pull request as ready for review August 12, 2025 02:49
@ankita-akamai ankita-akamai requested review from a team as code owners August 12, 2025 02:49
@ankita-akamai ankita-akamai requested review from cpathipa and dmcintyr-akamai and removed request for a team August 12, 2025 02:49
@ankita-akamai
Copy link
Contributor Author

@pmakode-akamai I removed all instances of aclpBetaServices flag use in LinodeCreate and LinodeDetail folder, replaced it with aclpServices flag's beta prop.
aclpServices:
image

Please check and let me know if you would like to use 'enabled' property for all use cases except betachip for which beta prop can still be used.

@ankita-akamai
Copy link
Contributor Author

@pmakode-akamai I removed all instances of aclpBetaServices flag use in LinodeCreate and LinodeDetail folder, replaced it with aclpServices flag's beta prop. aclpServices: image

Please check and let me know if you would like to use 'enabled' property for all use cases except betachip for which beta prop can still be used.

I Updated flag use in linodeCreate and linodeDetail based on the input. @pmakode-akamai .

Copy link
Contributor

@pmakode-akamai pmakode-akamai left a comment

Choose a reason for hiding this comment

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

thanks @ankita-akamai! Looks good to me ✅ - just left a couple of minor comments.

Once UX agrees on the new feature chip for ACLP alerts based on the LD flag for GA, we could consider moving/reusing this util across the app in a follow-up PR

{
chip:
aclpBetaServices?.linode?.metrics &&
aclpServices?.linode?.metrics?.beta &&
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this might be a special case (same for the one below) - should we show the beta chip only when the aclp services feature flag is enabled (i.e., enabled takes precedence over beta)? What do you think?

Screen.Recording.2025-08-13.at.12.32.37.PM.mov

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Agree, good catch. I will put combined check in this file at both the places.

metrics: {
beta: false,
enabled: false,
},
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: Looks like aclpBetaServices should be updated to aclpServices in the describe block at L462

@ankita-akamai
Copy link
Contributor Author

ankita-akamai commented Aug 13, 2025

I see that after my above flag combination change(recent commit - 37bc95c), alert-edit.spec is failing, I'm looking into it.

beforeEach(() => {
mockAppendFeatureFlags({
aclpBetaServices: {
aclpServices: {
Copy link
Contributor

Choose a reason for hiding this comment

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

most of the tests in this file are failing now. these tests are following the logic in packages/shared/src/hooks/useIsLinodeAclpSubscribed.ts. are they failing bc we are moving from beta to GA stage?

Copy link
Contributor Author

@ankita-akamai ankita-akamai Aug 13, 2025

Choose a reason for hiding this comment

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

I fixed, there was some issue after recent commit for which i commented above. They are passing now. @dmcintyr-akamai

@linode-gh-bot
Copy link
Collaborator

Cloud Manager UI test results

🔺 3 failing tests on test run #9 ↗︎

❌ Failing✅ Passing↪️ Skipped🕐 Duration
3 Failing715 Passing4 Skipped125m 27s

Details

Failing Tests
SpecTest
object-storage-objects-multicluster.spec.tsCloud Manager Cypress Tests→Object Storage Multicluster objects » "before all" hook for "can upload, access, and delete objects"
qemu-reboot-upgrade-notice.spec.tsCloud Manager Cypress Tests→QEMU reboot upgrade notification » should display maintenance banner in 'Linode' landing page when one or more Linodes get impacted.
smoke-linode-landing-table.spec.tsCloud Manager Cypress Tests→linode landing checks » checks the landing page side menu items

Troubleshooting

Use this command to re-run the failing tests:

pnpm cy:run -s "cypress/e2e/core/objectStorageMulticluster/object-storage-objects-multicluster.spec.ts,cypress/e2e/core/notificationsAndEvents/qemu-reboot-upgrade-notice.spec.ts,cypress/e2e/core/linodes/smoke-linode-landing-table.spec.ts"

@dmcintyr-akamai dmcintyr-akamai self-requested a review August 13, 2025 13:29
@nikhagra-akamai nikhagra-akamai merged commit 8c4211e into linode:develop Aug 13, 2025
34 of 35 checks passed
@github-project-automation github-project-automation bot moved this from Approved to Merged in Cloud Manager Aug 13, 2025
@pmakode-akamai pmakode-akamai added the ACLP Integration CI (Cloud Interfaces) Support for CC (Core Compute) CloudPulse Integration label Aug 20, 2025
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 Cloud Pulse - Alerting Cloud Pulse - Dashboards

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

7 participants