This PR:
* allows to configure gundeck to write to an additional redis (cluster or master mode); optionally. Reads will happen from the main redis.
* adds a test for the redis-migration scenario: configure to write to two redises (old and new); insert some data; configure only the new redis as default redis, read, ensure data is present.
* adds redis-cluster in docker-compose for local integration tests (a little more CPU/RAM needed)
* adds redis-cluster wrapper helm chart for CI/kubernetes-based integration tests (and more generally also for on-premise deployments). redis-cluster requires dynamic persistent volume provisioning present on the cluster; which was introduced in our kube-ci cluster with https://github.com/zinfra/cailleach/pull/1037
Drive-by refactoring change (not strictly needed on this PR):
* [Move cannon's internal API type to wire-api](https://github.com/wireapp/wire-server/pull/2304/commits/7ace63f08db7b1b675e8e1bdf5f45fe427fcfed3)
Related to https://github.com/zinfra/cailleach/pull/1021
This is needed to perform a smooth no-downtime migration from one redis to another as detailed in https://github.com/zinfra/cailleach/blob/master/targets/wire/notes-redis-migration.md#how-to-migrate-traffic-from-redis-in-ec2classic-to-redis-in-eks
Co-authored-by: Akshay Mankar <[email protected]>