Gerrit from VMware migration to a kubernetes cluster

Asking for help? Comment out what you need so we can get more information to help you!

Gerrit Migration to kubernetes:

I am working on migrating gerrit from VMware to a gerrit with these requirements and need some guidence from the experts.

Currently, the Gerrit server and an HAProxy as a frontend/proxy are running as docker-containers with some disk-mapped volume for persistent storage of state and data. For the Gerrit server VM, the disk is backed up periodically using VM disk snapshots to ensure we do not lose the data. The disk is also exported through NFS for use by a Gerrit-mirror that is used to distribute load for downloads from the CI system. All configuration for the containers is saved in a repo (in Gerrit!) so that it can be inspected, reviewed, and reverted if needed. Deployment is done with Ansible, so all VM and service configs can be applied in one go. Gerrit access is set up to use ‘ssh’ on port 29216, which is configured and hardcoded with a large number of our users/client-systems.

Considerations:

  1. How can we limit disruptions to our end-users in the form of downtime?
  2. How can we ensure that the user does not have to update all their configurations in one go (e.g., not changing ports or server addresses, DNS entries)?
  3. How can we ensure data safety (persistence) in the kubernetes cluster?
  4. How do we keep the load-distribution that the mirror provides?
  5. How will we handle the ‘ssh’ port?
  6. How should we address such a move and still maintain integrity and functionality?