Skip to content

Prevent running reconcile with repository specific primaries

praefect reconcile command is unnecessary with repository specific primaries and doesn't work together with them. There are few reasons for this:

  1. When repository specific primaries are enabled, Praefect expects to have database records for every repository. As such, the automatic reconciler can already perform all of the reconciling the manual command would do. This makes the manual command unnecessary.

  2. The manual command works on the level of a storage. Running the command would very likely result in jobs from secondaries to the primaries. While this is not harmful as Praefect has checks against downgrading, we should not produce such jobs.

  3. Reconcile automatically figures out the primary of the virtual storage and uses it as the reference storage. This is not a good approach as the primary might not even be up to date. More so, there is no single primary when repository specific primaries are enabled.

Due to the above points, the reconcile subcommand is not needed when repository specific primaries are enabled. While we should keep it around for backwards compatibility as long as virtual storage scoped primaries can be enabled, we should prevent it from being used with repository specific primaries.

Related to #3492 (closed)

Merge request reports

Loading