Skip to content

Add rolling upgrade interstitials to UA #111808

@cjcenizal

Description

@cjcenizal

Background

Per the Stack upgrade instructions, users will first upgrade ES and then Kibana, which means at some point Kibana will be on 7.16 and ES will be on 8. Originally, Upgrade Assistant handled this case by implementing interstitial states that would replace the standard UI (#31309, #34762). They looked like this:

image

image

The original code implemented this by checking the /status API endpoint and setting some local state appropriately.

Goal

Similar to the original implementation, we want to detect when the cluster is in the middle of a rolling upgrade or has completed a rolling upgrade, block access to the standard UI, and reflect this state in the UI instead.

To do this we should:

  • Poll the server with the status check, using the /status endpoint
  • Wrap every action API endpoint in the status check, using versionCheckHandlerWrapper
  • Trigger the UI change if either status check indicates the cluster is in the middle of a rolling upgrade or has completed a rolling upgrade
  • Once this state has changed, we'll want to prevent navigation to any routes other than the interstitial. We should also end any polling requests which might result in errors, since the user won't be able to act on those errors and they'll likely be irrelevant by this point.
    [DOCS] Adds the 7.15.0 release notes #110851

Other considerations

Note that there's currently client-side logic for surfacing rolling upgrade state in the UI but only for the ES deprecation issues panel and ES deprecation issues table (grep for partially_upgraded_error and upgraded_error). As part of this work we can remove this logic.

As part of this work we should also either add API integration tests to verify we're getting back the ES responses we expect when the cluster is in the middle of a rolling upgrade or add steps to the README for manual testing.

Metadata

Metadata

Assignees

Labels

Feature:Upgrade AssistantTeam:Kibana ManagementDev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more t//enhancementNew value added to drive a business result

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions