Skip to content

Add Geo project/file registry details in the UI

https://gitlab.com/gitlab-org/gitlab-ee/issues/4880 lays out the design for this:

Description

Geo secondaries have a wealth of information about project and file synchronization. There is an API for reading this data, but we should also allow failures to be exposed in the UI.

There are two obvious places for this:

A. Project page

e.g. https://gitlab.com/gitlab-org/gitlab-ce

On the secondary, we can show an "out of date!" warning, telling all users of the secondary that there are changes waiting to be synced. If the sync is suffering errors, we can display those here too, and go from a "warning" state to an "error" state.

A customer also asked to add a button to force the resync: ZD: https://gitlab.zendesk.com/agent/tickets/96217

There might be an argument for displaying this data only to admins, but I'm comfortable with at least showing it to project members, and probably everyone.

Example from pull mirroring

For project mirrors, we have this handy interface at the top of the repository for 10.6:

image

Something like this, showing "Last update" details and an "Update" button, would be handy for Geo as well.

B. Admin page

We should have a simple CRUD interface to all the project and file registries. The /admin/geo_nodes page can link the failures to this page. It should be possible to look up the status of any project, and perhaps to find all projects with a given error text, from this interface.

Design

Contexual Sidebar

  • Add Projects under Geo.
  • "Geo nodes" is changed to Nodes.

New structure:

  • Geo
  • Nodes
  • Projects

Geo > Projects

  • There is a tab bar includes:
    • All: Will be sorted by the most up-to-date to the least one.
    • Pending: Will be sorted by the oldest up-to-date
    • Failures: Will be sorted by the many amounts of retry first and up-to-date as the second parameter, so if something is really broken and for a considerable amount of time, this will be the first item
    • Never: Same logic with Pending.
  • The "Project" boxes are not collapsible. (Updated on July 25)
  • It shows 20 "project" boxes on every single page.
  • The project names link to the specific project page (e.g. https://gitlab.com/gitlab-org/gitlab-ee)
Project homepage Geo > Projects
01-project-page--default mockup-admin-registries--Synced

The information in the different statuses:

  • Synced
    • Status: In sync / Synced
    • Last successful sync
    • Last time verified
    • Button: [Resync] / [Recheck]
  • Pending
    • Status: Pending
    • Next sync scheduled at
    • Last successful sync
    • Button: [Recheck]
  • Failures
    • Status: Failed to sync / Failed to verify
    • Last successful sync
    • Retry counts
    • Last synchronization attemp or Last verification attemp
    • Error message will be in the "More" section. ("More" section is collapsed as default)
    • Button: [Resync]/[Redownload]
  • Never
    • Status: (Not sure the status type here)
    • Last successful sync
    • Project created
    • Button: none
Synced Pending
02-admin-registries--Synced 03-admin-registries--pending
Failures Never
04-admin-registries--failures 05-admin-registries--never

Warning/Error messages

Warning
  • Copy: There are some changes waiting to be synced on this Geo secondary. [Sync now] or [Learn more]
  • Learn more navigates users to Geo > Projects page.
  • Background color: $orange-500

sync-warning

Error
  • Copy: There are some syncing errors on this Geo secondary. [Sync now] or [Learn more]
  • Learn more navigates users to Geo > Projects page.
  • Background color: $red-500

sync-error

Edited by Hazel Yang