Skip to content

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 on gitlab-rails container. This is a ruby application inside of the rails codebase, at ee/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.
  • #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