Allow gcloud-pubsub-events to be configured as events-broker Add possibility to use gcloud-pubsub-events as a events-broker for local setup. Bug: Issue 14206 Change-Id: I85897b52b25b7686c51be68fac48da79e4fa9b76
diff --git a/setup_local_env/README.md b/setup_local_env/README.md index 0b1d00c..fca46d8 100644 --- a/setup_local_env/README.md +++ b/setup_local_env/README.md
@@ -5,7 +5,7 @@ - 2 gerrit instances deployed by default in /tmp - 1 zookeeper node -- 1 Broker node (either kafka or kinesis) +- 1 Broker node (kafka, kinesis or gcloud-pubsub) - 1 HA-PROXY ## Requirements @@ -35,6 +35,15 @@ --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 @@ -73,7 +82,7 @@ [--enabled-https] Enabled https; default true -[--broker_type] events broker type; either 'kafka' or 'kinesis'. Default 'kafka' +[--broker_type] events broker type; 'kafka', 'kinesis' or 'gcloud-pubsub'. Default 'kafka' ``` ## Limitations
diff --git a/setup_local_env/configs/gerrit.config b/setup_local_env/configs/gerrit.config index 0f19578..248f669 100644 --- a/setup_local_env/configs/gerrit.config +++ b/setup_local_env/configs/gerrit.config
@@ -18,6 +18,7 @@ [container] javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance" javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance" + javaOptions = "-DPUBSUB_EMULATOR_HOST=localhost:$BROKER_PORT" javaOptions = "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$REMOTE_DEBUG_PORT" [index] type = LUCENE @@ -56,5 +57,9 @@ endpoint = http://localhost:$BROKER_PORT applicationName = $GROUP_ID initialPosition = trim_horizon +[plugin "gcloud-pubsub-events"] + numberOfSubscribers = 6 + gcloudProject="test-project" + subscriptionId=$GROUP_ID [plugin "metrics-reporter-prometheus"] prometheusBearerToken = token
diff --git a/setup_local_env/docker-compose-gcloud-pubsub.yaml b/setup_local_env/docker-compose-gcloud-pubsub.yaml new file mode 100644 index 0000000..983e784 --- /dev/null +++ b/setup_local_env/docker-compose-gcloud-pubsub.yaml
@@ -0,0 +1,13 @@ +version: '3' +services: + pubsub: + image: gcr.io/google.com/cloudsdktool/cloud-sdk:316.0.0-emulators + ports: + - "8085:8085" + container_name: gcloud-pubsub_test_node + entrypoint: gcloud beta emulators pubsub start --project test-project --host-port 0.0.0.0:8085 + networks: + - setup_local_env_default +networks: + setup_local_env_default: + external: true
diff --git a/setup_local_env/setup.sh b/setup_local_env/setup.sh index 5c9de6f..536fcff 100755 --- a/setup_local_env/setup.sh +++ b/setup_local_env/setup.sh
@@ -107,6 +107,8 @@ export BROKER_PORT=4566 elif [ "$BROKER_TYPE" = "kafka" ]; then export BROKER_PORT=9092 + elif [ "$BROKER_TYPE" = "gcloud-pubsub" ]; then + export BROKER_PORT=8085 fi } @@ -245,7 +247,7 @@ echo echo "[--enabled-https] Enabled https; default true" echo - echo "[--broker-type] events broker type; either 'kafka' or 'kinesis'. Default 'kafka'" + echo "[--broker-type] events broker type; 'kafka', 'kinesis' or 'gcloud-pubsub'. Default 'kafka'" echo exit 0 ;; @@ -338,8 +340,8 @@ BROKER_TYPE=$2 shift shift - if [ ! "$BROKER_TYPE" = "kafka" ] && [ ! "$BROKER_TYPE" = "kinesis" ]; then - echo >&2 "broker type: '$BROKER_TYPE' not valid. Please supply 'kafka' or 'kinesis'. Aborting" + if [ ! "$BROKER_TYPE" = "kafka" ] && [ ! "$BROKER_TYPE" = "kinesis" ] && [ ! "$BROKER_TYPE" = "gcloud-pubsub" ]; then + echo >&2 "broker type: '$BROKER_TYPE' not valid. Please supply 'kafka','kinesis' or 'gcloud-pubsub'. Aborting" exit 1 fi ;; @@ -444,6 +446,14 @@ ing"; exit 1; } fi + +if [ "$BROKER_TYPE" = "gcloud-pubsub" ]; then +echo "Downloading gcloud-pubsub-events plugin master (TODO: replace with $GERRIT_BRANCH, once we have build)" + wget $GERRIT_CI/plugin-gcloud-pubsub-events-gh-bazel-master-stable-3.3/$LAST_BUILD/gcloud-pubsub-events/gcloud-pubsub-events.jar \ + -O $DEPLOYMENT_LOCATION/gcloud-pubsub-events.jar || { echo >&2 "Cannot download gcloud-pubsub-events plugin: Check internet connection. Abort\ +ing"; exit 1; } +fi + echo "Downloading metrics-reporter-prometheus plugin $GERRIT_BRANCH" wget $GERRIT_CI/plugin-metrics-reporter-prometheus-bazel-master-$GERRIT_BRANCH/$LAST_BUILD/metrics-reporter-prometheus/metrics-reporter-prometheus.jar \ -O $DEPLOYMENT_LOCATION/metrics-reporter-prometheus.jar || { echo >&2 "Cannot download metrics-reporter-prometheus plugin: Check internet connection. Abort\