blob: fca46d87da8d7026aae00e1b5adcb7703f0c6f84 [file] [log] [blame] [view]
# Local environment setup
This script configures a full environment to simulate a Gerrit Multi-Site setup.
The environment is composed by:
- 2 gerrit instances deployed by default in /tmp
- 1 zookeeper node
- 1 Broker node (kafka, kinesis or gcloud-pubsub)
- 1 HA-PROXY
## Requirements
- java
- docker and docker-compose
- wget
- envsubst
- haproxy
- aws-cli (only when broker_type is "kinesis")
## Examples
Simplest setup with all default values and cleanup previous deployment. This
will deploy kafka broker
```bash
sh setup_local_env/setup.sh --release-war-file /path/to/gerrit.war --multisite-lib-file /path/to/multi-site.jar
```
Deploy Kinesis broker
```bash
sh setup_local_env/setup.sh \
--release-war-file /path/to/gerrit.war \
--multisite-lib-file /path/to/multi-site.jar \
--broker-type kinesis
```
Deploy GCloud PubSub broker
```bash
sh setup_local_env/setup.sh \
--release-war-file /path/to/gerrit.war \
--multisite-lib-file /path/to/multi-site.jar \
--broker-type gcloud-pubsub
```
Cleanup the previous deployments
```bash
sh setup_local_env/setup.sh --just-cleanup-env true
```
Help
```bash
Usage: sh ./setup.sh [--option ]
[--release-war-file] Location to release.war file
[--multisite-lib-file] Location to lib multi-site.jar file
[--new-deployment] Cleans up previous gerrit deployment and re-installs it. default true
[--get-websession-plugin] Download websession-broker plugin from CI lastSuccessfulBuild; default true
[--deployment-location] Base location for the test deployment; default /tmp
[--gerrit-canonical-host] The default host for Gerrit to be accessed through; default localhost
[--gerrit-canonical-port] The default port for Gerrit to be accessed throug; default 8080
[--gerrit-ssh-advertised-port] Gerrit Instance 1 sshd port; default 29418
[--gerrit1-httpd-port] Gerrit Instance 1 http port; default 18080
[--gerrit1-sshd-port] Gerrit Instance 1 sshd port; default 39418
[--gerrit2-httpd-port] Gerrit Instance 2 http port; default 18081
[--gerrit2-sshd-port] Gerrit Instance 2 sshd port; default 49418
[--replication-type] Options [file,ssh]; default ssh
[--replication-ssh-user] SSH user for the replication plugin; default $(whoami)
[--replication-delay] Replication delay across the two instances in seconds
[--just-cleanup-env] Cleans up previous deployment; default false
[--enabled-https] Enabled https; default true
[--broker_type] events broker type; 'kafka', 'kinesis' or 'gcloud-pubsub'. Default 'kafka'
```
## Limitations
- Assumes the ssh replication is done always on port 22 on both instances
- When cloning projects via ssh, public keys entries are added to `known_hosts`
- Clean up the old entries when doing a new deployment, otherwise just use HTTP