Quick fix for geo-install and geo-add-secondary
What does this merge request do and why?
Fixes the Geo install scripts. These are critical for development.
I don't know the root cause behind the strange behavior of executing shell commands from the Ruby script. This MR is intended to be a band-aid to get it functional enough for developers to use until we figure out what's wrong.
It switches to reusing Shellout because I already did that work in hopes that it would help. It does not, but we should continue with that change anyway.
Resolves #1657 (closed) and #1479 (closed)
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
- Follow https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/geo.md#easy-installation, but during step 3, use
curl "https://gitlab.com/gitlab-org/gitlab-development-kit/-/raw/mk/fix-geo-add-secondary/support/geo-install" | bash -s gdk-a gdk-b mk/fix-geo-add-secondary
(replacinggdk-a
andgdk-b
with whatever dir names you want). - The script will fail on the
bin/rake gitlab:geo:check
command, but it's not necessary for configuration, and it works when run manually outside of the script. - I needed to manually
gdk restart
the secondary site, I am not sure why, since the script did restart both GDKs before failing on the check commands. - Visiting
http://127.0.0.1:3001
succeeds. The logs show that requests are forwarded through the secondary site to the primary site, as is expected for a properly configured unified URL.
I will open a follow up issue for the remaining non-critical problems 2.
and 3.
above.
Note that geo-install
and geo-add-secondary
are idempotent-ish, so in general it's fine to retry if it breaks and then you resolve some underlying problem. You may not need to delete everything and start over from scratch.
Impacted categories
The following categories relate to this merge request:
-
gdk-reliability - e.g. When a GDK action fails to complete. -
gdk-usability - e.g. Improvements or suggestions around how the GDK functions. -
gdk-performance - e.g. When a GDK action is slow or times out.
Merge request checklist
-
This change is backward compatible. If not, please include steps to communicate to our users. -
Tests added for new functionality. If not, please raise an issue to follow-up. - [-] Documentation added/updated, if needed.
-
gdk doctor
test added, if needed. -
Add the ~highlight
label if this MR should be included in theCHANGELOG.md
.