tree a17209889c4af31356ca0727005be2844727bc87
parent 08c1d15a06763231619f12a58a62d1bb5910f490
author Thomas Draebing <thomas.draebing@sap.com> 1587122913 +0200
committer Thomas Draebing <thomas.draebing@sap.com> 1593772892 +0200

Use init job to create All-Projects and All-Users before startup

So far the Gerrit replica deployment did not initialize the All-Projects
and All-Users repositories and instead waited for them to be replicated
from the primary Gerrit. For development setups there was a test mode
that would perform the initialization of those repositories and allow
startup without requiring replication to be configured on the primary
instance.

Using the test mode however did not work well while using multiple
pod replicas, since the init would try to perform a schema upgrade, which
failed and caused the init to stop, which in turn did leave the
group index not ready.

Instead of adding checks and solutions for these issues during the init
of the pod, which would only increase startup times, the test mode was
removed. Instead a job was added, which is run, when the chart is
installed for the first time and will run a Gerrit init once to create
an empty All-Projects and All-Users repository. The Gerrit replica pods
will in the meantime wait for these repositories to appear in the
shared volume and only start up, when the job finished successfully.

Since replication uses force push, having those repositories already
created, but in a vanilla state, should not pose an issue. Thus, the
job is run also, when replication is intended to be used.

Change-Id: I7ee6a1eeb99eebd8b320eaa38ef2e4579812fe97
