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

[Platform Onboarding] Elastic cloud migration assistant page #145523

Conversation

claracruz
Copy link
Contributor

@claracruz claracruz commented Nov 17, 2022

Summary

Fixes #141124

This PR adds a new static migration page in self-managed Kibana instances. This page provides self-managed users with a link to migration instructions for migrating their self-managed cluster over to Elastic Cloud.
A new landing page is added to the Management plugin with a page that links to the migration assistant instructions. The url for the new page is /app/management/data/migrate_data.

Release Note

Self-managed Kibana instances now have a link to migration instructions for migrating their self-managed cluster over to Elastic Cloud.

Screenshots

Homepage

Screenshot 2022-11-17 at 09 55 51

Landing page

Screenshot 2022-12-05 at 13 30 31

Checklist

Delete any items that are not applicable to this PR.

Risk Matrix

Risk Probability Severity Mitigation/Notes
Code should gracefully handle cases when feature X or plugin Y are disabled. Medium High Unit tests will verify that any feature flag or plugin combination still results in our service operational.

@claracruz claracruz force-pushed the elastic_cloud_migration_assistant_info_page branch from eb1453a to 8243bc5 Compare November 17, 2022 10:15
Copy link
Contributor

@alisonelizabeth alisonelizabeth left a comment

Choose a reason for hiding this comment

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

Nice work @claracruz! I took a quick look through the code and left some initial comments. Did not test locally, but screenshots look great so far 👍

@@ -0,0 +1,3 @@
# Cloud Data Migration
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't have much context on the cloud_integrations directory in Kibana. Do you know if there are any guidelines on what should live under here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

As far as I can tell it seems to be all cloud related implementations. e.g. Gainsight, DriftChat, FullStory, Cloud links e.t.c

@johnbarrierwilson
Copy link
Member

johnbarrierwilson commented Nov 21, 2022

@claracruz Don't want to do this on your PR myself, but looks like we might need a merge from upstream? I'll be happy to dive in via my local once again when the errors are gone.

@claracruz claracruz force-pushed the elastic_cloud_migration_assistant_info_page branch from 6147189 to 74f0a51 Compare November 28, 2022 12:02
@johnbarrierwilson
Copy link
Member

No worries on the sidebar... that can stay. Could just move the layout to a subdued <EuiPanel color="subdued" /> win the inner content being in a column? Like this:

PixelSnap 2022-11-28 at 16 28 15@2x

I'll need to get the writers to do a pass on the content. And, I'll send you a new image, that SVG looks like it got corrupt when I compressed it.

@johnbarrierwilson
Copy link
Member

Here's the updated image. SVG export was causing problems, so I just did so with PNG.

ecma-illustration

Copy link
Contributor

@kellyemurphy kellyemurphy left a comment

Choose a reason for hiding this comment

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

@claracruz hope it's ok I'm adding my changes this way. There are a couple that I'd like to get input on still.

@claracruz claracruz force-pushed the elastic_cloud_migration_assistant_info_page branch from 6085a46 to cf1602f Compare November 30, 2022 16:10
@alisonelizabeth alisonelizabeth added the Team:Journey/Onboarding Platform Journey Onboarding team label Nov 30, 2022
@claracruz claracruz added v8.6.0 release_note:feature Makes this part of the condensed release notes labels Dec 5, 2022
@claracruz claracruz changed the title [Platform Onboarding] Elastic cloud migration assistant info page [Platform Onboarding] Elastic cloud migration assistant page Dec 5, 2022
@claracruz claracruz added v8.7.0 and removed v8.6.0 labels Dec 5, 2022
@claracruz claracruz force-pushed the elastic_cloud_migration_assistant_info_page branch from 2795c8c to 9cdf0ae Compare December 5, 2022 17:02
@alisonelizabeth
Copy link
Contributor

@elasticmachine merge upstream

Copy link
Contributor

@alisonelizabeth alisonelizabeth left a comment

Choose a reason for hiding this comment

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

Hey @claracruz! This looks really great. I tested locally, and left a couple more comments in the code.


I also updated your branch and reviewed the CI errors. A couple things:

  • I think you need to add a .i18nrc.json file to your plugin for translations. It should look something like this:
{
  "prefix": "cloudDataMigration",
  "paths": {
    "cloudDataMigration": "."
  },
  "translations": []
}

Then, you will also need to update the ids of any i18n strings. You can run node scripts/i18n_check.js to verify translations when you're done.

  • You need to update the limits.yml file since this is a new plugin. To do so, you can run:
node scripts/build_kibana_platform_plugins.js --update-limits
  • You need to update some jest snapshots in thehome plugin. It looks like the failing tests are in: src/plugins/home/public/application/components/add_data/add_data.test.tsx

  • The plugin.test.ts tests are also failing. You can run jest tests in kibana via: npm run test:jest <path_to_test_file>

  • There appears to be a handful of functional tests that rely on the side nav in Stack Management to be in a particular order. Now that the "Migrate" link has been added, those are failing. There's quite a few here, so let me know if you need help going through them all. More about Kibana testing here - https://www.elastic.co/guide/en/kibana/current/development-tests.html.

  • There's another CI error that appears related to the cloud_integrations directory. I'm not sure about this one yet. Let's resolve all the other issues first, and if it's still an issue, I can help revisit.

ERROR Error: ENOENT: no such file or directory, stat '/dev/shm/builds/kb-n2-16-spot-721a7f5a24dec03f/elastic/kibana-pull-request/kibana/x-pack/plugins/cloud_integrations/features/tsconfig.json'

@alisonelizabeth
Copy link
Contributor

@claracruz let's also not forget about the telemetry requirements. We can discuss more offline, but just leaving a comment here so I don't forget 😄

@claracruz claracruz force-pushed the elastic_cloud_migration_assistant_info_page branch 3 times, most recently from b3e7f6c to 3d4818a Compare December 12, 2022 16:42
@gchaps
Copy link
Contributor

gchaps commented Dec 12, 2022

@claracruz Can you please post screenshots with the updated text? I'll do a final copy review.

Build migration info page

Update home page navigation

Implemment breadcrumbs

Remove unneeded typings

Remove unneeded code and comments

Fix breadcrumb

Remove unnecessary component

Fix newline at the end of files

Update breadcrumb label
Update tests, styles and images

Update copy
@claracruz claracruz force-pushed the elastic_cloud_migration_assistant_info_page branch from 6b67efd to c7ebadc Compare December 12, 2022 18:49
@claracruz claracruz force-pushed the elastic_cloud_migration_assistant_info_page branch from f16871f to c63cb0f Compare December 12, 2022 20:17
@alisonelizabeth alisonelizabeth marked this pull request as ready for review December 13, 2022 19:21
@alisonelizabeth alisonelizabeth requested review from a team as code owners December 13, 2022 19:21
@elasticmachine
Copy link
Contributor

Pinging @elastic/platform-onboarding (Team:Journey/Onboarding)

Copy link
Contributor

@alisonelizabeth alisonelizabeth left a comment

Choose a reason for hiding this comment

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

Awesome work @claracruz! I opened #147474 and #147462 to track some follow-up work.

We should also update the CODEOWNERS file and assign our team as owner of this new plugin. I can open up a separate PR to address that.

<EuiSpacer size="l" />

<div>
<EuiButton fill={true} target="_blank" href="https://ela.st/cloud-migration">
Copy link
Contributor

Choose a reason for hiding this comment

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

We'll want to track telemetry here; opened #147474 to follow up.

management: {
data: [PLUGIN_ID],
},
catalogue: [PLUGIN_ID],
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think this is required. I'll open up a follow-up PR to fix.

@alisonelizabeth
Copy link
Contributor

Hi @gchaps, here are the latest screenshots. Let us know if there are any further copy changes that need to be made. Thank you!

Screen Shot 2022-12-13 at 2 25 08 PM

Screen Shot 2022-12-13 at 2 25 15 PM

Copy link
Contributor

@gchaps gchaps left a comment

Choose a reason for hiding this comment

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

Copy LGTM.

Copy link
Contributor

@kc13greiner kc13greiner left a comment

Choose a reason for hiding this comment

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

LGTM!

@alisonelizabeth
Copy link
Contributor

@elasticmachine merge upstream

@kibana-ci
Copy link
Collaborator

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
cloudDataMigration - 9 +9

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
cloudDataMigration - 7 +7

Any counts in public APIs

Total count of every any typed public API. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats any for more detailed information.

id before after diff
cloudDataMigration - 1 +1

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
cloudDataMigration - 3.8KB +3.8KB
home 160.0KB 161.3KB +1.3KB
total +5.0KB

Public APIs missing exports

Total count of every type that is part of your API that should be exported but is not. This will cause broken links in the API documentation system. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats exports for more detailed information.

id before after diff
cloudDataMigration - 1 +1

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
cloudDataMigration - 4.1KB +4.1KB
Unknown metric groups

API count

id before after diff
cloudDataMigration - 7 +7

async chunk count

id before after diff
cloudDataMigration - 1 +1

ESLint disabled in files

id before after diff
osquery 1 2 +1

ESLint disabled line counts

id before after diff
cloudDataMigration - 1 +1
enterpriseSearch 19 21 +2
fleet 61 67 +6
home 9 10 +1
osquery 109 115 +6
securitySolution 445 451 +6
total +22

Total ESLint disabled count

id before after diff
cloudDataMigration - 1 +1
enterpriseSearch 20 22 +2
fleet 70 76 +6
home 10 11 +1
osquery 110 117 +7
securitySolution 521 527 +6
total +23

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

Copy link
Contributor

@pgayvallet pgayvallet left a comment

Choose a reason for hiding this comment

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

ATM all plugins under /x-pack/plugins/cloud_integrations/ are identified as being owned by Core (which is also what triggered the review from our team):

/x-pack/plugins/cloud_integrations/ @elastic/kibana-core

I think you may need to change that, as I assume Core isn't supposed to be owning the new plugin you're introducing in this PR, right?

Copy link
Contributor

@vadimkibana vadimkibana left a comment

Choose a reason for hiding this comment

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

GX code changes LGTM.

@alisonelizabeth
Copy link
Contributor

alisonelizabeth commented Dec 15, 2022

I think you may need to change that, as I assume Core isn't supposed to be owning the new plugin you're introducing in this PR, right?

@pgayvallet Ah, I didn't realize that there was already an existing owner for that directory. Thanks for pointing that out. I made a comment in #145523 (review) that the CODEOWNERS file needs to be updated.

Would it be OK if I follow up with this change in a separate PR? The engineer who opened this is out until January and I would like to get this merged if possible.

Copy link
Contributor

@pgayvallet pgayvallet left a comment

Choose a reason for hiding this comment

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

LGTM

@alisonelizabeth alisonelizabeth merged commit e868b3a into elastic:main Dec 16, 2022
@kibanamachine kibanamachine added the backport:skip This commit does not require backporting label Dec 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting release_note:feature Makes this part of the condensed release notes Team:Journey/Onboarding Platform Journey Onboarding team v8.7.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Platform Onboarding] Elastic Cloud Migration Assistant info page