Geo support for Helm Chart
Problem statement
Currently, Geo is not supported for the gitlab
helm chart.
Proposed solution
We should add the configuration required to enable Geo, as either primary or secondary.
-
geo_log_cursor
container based ongitlab-rails
container. This is a ruby application inside of the rails codebase, atee/bin/geo_log_cursor
. #1211 (closed) , gitlab-org/build/CNG!220 (merged)- This container needs
database_geo.yml
, and appropriate additions for the second database (not instance) in postgresql that is used for tracking the state (internal to the instance). This includes the need for setup and migrations. - primary postgresql needs TLS & WAL (this is not part of the container, only as a note!), this is currently being worked with the database external to these charts / containers
- Current directions dictate manual first replication of the database, and seeding of tracking database.
- This container needs access to Redis, as it sends work to Sidekiq via direct access to Redis.
- This container needs
-
#1212 (closed) A chart needs created specifically for this container. It should be a singleton, as there is a locking mechanism which prevents more than one operating.There can be more than one, as the locking mechanism does not cause failure. Whomever obtains the lock will perform the work. Replicas likely best limited to 2. (Geo team to confirm) -
#1213 (closed) To make use of Geo, the secrets/keys need to be shared between all nodes. Balancing the combination of Omnibus and CNG should be explored and documented. Current documentation has a manual copy of the secrets file itself between nodes.
Documentation
We should ensure the configuration for Geo is added to our chart documentation. #1213 (closed)
EE Epic for Geo's work:gitlab-org&944 (closed)
Edited by Jason Plum