From 96a0be4eb0c3677324d0bb7df98492e6af41d08a Mon Sep 17 00:00:00 2001 From: Erik Seliger Date: Mon, 12 May 2025 14:27:40 +0200 Subject: [PATCH] Remove symbols statefulset Starting in Sourcegraph 6.4, the Symbols and Searcher services are now combined, for easier operation, simplified architecture, and better resource utilization. Customers can delete the service if not deleted automatically, and may want to consider reallocating resources previously given to symbols to searcher. Environment variables should be copied over from symbols to searcher. Test plan: This deployment ran for ~2 weeks on S2 and dotcom already and has signoff from team-product-platform. --- prometheus/prometheus_targets.yml | 5 ----- pure-docker/deploy-frontend-internal.sh | 1 - pure-docker/deploy-frontend.sh | 3 +-- pure-docker/deploy-symbols.sh | 27 ------------------------- pure-docker/deploy-worker.sh | 1 - pure-docker/deploy.sh | 1 - pure-docker/replicas.sh | 3 +-- pure-docker/teardown.sh | 1 - test/pure-docker/Vagrantfile | 2 +- test/pure-docker/volume-config.sh | 2 +- test/volume-config.sh | 2 +- 11 files changed, 5 insertions(+), 43 deletions(-) delete mode 100755 pure-docker/deploy-symbols.sh diff --git a/prometheus/prometheus_targets.yml b/prometheus/prometheus_targets.yml index 016fec3e..7d0a8277 100644 --- a/prometheus/prometheus_targets.yml +++ b/prometheus/prometheus_targets.yml @@ -56,11 +56,6 @@ job: searcher targets: - searcher-0:6060 -- labels: - nodename: "sourcegraph-docker-compose-host" - job: symbols - targets: - - symbols-0:6060 - labels: nodename: "sourcegraph-docker-compose-host" job: pgsql diff --git a/pure-docker/deploy-frontend-internal.sh b/pure-docker/deploy-frontend-internal.sh index 5518ad8d..c6eacf62 100755 --- a/pure-docker/deploy-frontend-internal.sh +++ b/pure-docker/deploy-frontend-internal.sh @@ -31,7 +31,6 @@ docker run --detach \ -e SRC_GIT_SERVERS="$(addresses "gitserver-" $NUM_GITSERVER ":3178")" \ -e SRC_SYNTECT_SERVER=http://syntect-server:9238 \ -e SEARCHER_URL="$(addresses "http://searcher-" $NUM_SEARCHER ":3181")" \ - -e SYMBOLS_URL="$(addresses "http://symbols-" $NUM_SYMBOLS ":3184")" \ -e INDEXED_SEARCH_SERVERS="$(addresses "zoekt-webserver-" $NUM_INDEXED_SEARCH ":6070")" \ -e SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090 \ -e REPO_UPDATER_URL=http://repo-updater:3182 \ diff --git a/pure-docker/deploy-frontend.sh b/pure-docker/deploy-frontend.sh index d30520d7..44f2b955 100755 --- a/pure-docker/deploy-frontend.sh +++ b/pure-docker/deploy-frontend.sh @@ -32,7 +32,6 @@ docker run --detach \ -e SRC_GIT_SERVERS="$(addresses "gitserver-" $NUM_GITSERVER ":3178")" \ -e SRC_SYNTECT_SERVER=http://syntect-server:9238 \ -e SEARCHER_URL="$(addresses "http://searcher-" $NUM_SEARCHER ":3181")" \ - -e SYMBOLS_URL="$(addresses "http://symbols-" $NUM_SYMBOLS ":3184")" \ -e INDEXED_SEARCH_SERVERS="$(addresses "zoekt-webserver-" $NUM_INDEXED_SEARCH ":6070")" \ -e SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090 \ -e REPO_UPDATER_URL=http://repo-updater:3182 \ @@ -45,7 +44,7 @@ docker run --detach \ -p 0.0.0.0:$((3080 + $1)):3080 \ index.docker.io/sourcegraph/frontend:4.4.0@sha256:403c76413df819964e9eb2762ff2ff73a901718a28e0546475d0293a18d5dea5 -# Note: SRC_GIT_SERVERS, SEARCHER_URL, and SYMBOLS_URL are space-separated +# Note: SRC_GIT_SERVERS, and SEARCHER_URL are space-separated # lists which each allow you to specify more container instances for scaling # purposes. Be sure to also apply such a change here to the frontend-internal # service. diff --git a/pure-docker/deploy-symbols.sh b/pure-docker/deploy-symbols.sh deleted file mode 100755 index 1f7623c1..00000000 --- a/pure-docker/deploy-symbols.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash -set -e -source ./replicas.sh - -# Description: Backend for symbols operations. -# -# Disk: 128GB / non-persistent SSD -# Network: 100mbps -# Liveness probe: none -# Ports exposed to other Sourcegraph services: 3184/TCP 6060/TCP -# Ports exposed to the public internet: none -# -VOLUME="$HOME/sourcegraph-docker/symbols-$1-disk" -./ensure-volume.sh $VOLUME 100 -docker run --detach \ - --name=symbols-$1 \ - --network=sourcegraph \ - --restart=always \ - --cpus=2 \ - --memory=4g \ - -e GOMAXPROCS=2 \ - -e SRC_FRONTEND_INTERNAL=sourcegraph-frontend-internal:3090 \ - -e 'OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317' \ - -v $VOLUME:/mnt/cache \ - index.docker.io/sourcegraph/symbols:4.4.0@sha256:20b353a54c237674bca518fec97ffa83fd14045b85da3d5405fd79a69bb6a8db - -echo "Deployed symbols $1 service" diff --git a/pure-docker/deploy-worker.sh b/pure-docker/deploy-worker.sh index f6553511..b6f59f56 100755 --- a/pure-docker/deploy-worker.sh +++ b/pure-docker/deploy-worker.sh @@ -24,7 +24,6 @@ docker run --detach \ -e INDEXED_SEARCH_SERVERS="$(addresses "zoekt-webserver-" $NUM_INDEXED_SEARCH ":6070")" \ -e SEARCHER_URL="$(addresses "http://searcher-" $NUM_SEARCHER ":3181")" \ -e SRC_GIT_SERVERS="$(addresses "gitserver-" $NUM_GITSERVER ":3178")" \ - -e SYMBOLS_URL="$(addresses "http://symbols-" $NUM_SYMBOLS ":3184")" \ -e PRECISE_CODE_INTEL_UPLOAD_BACKEND=blobstore \ -e PRECISE_CODE_INTEL_UPLOAD_AWS_ENDPOINT=http://blobstore:9000 \ -v $VOLUME:/mnt/cache \ diff --git a/pure-docker/deploy.sh b/pure-docker/deploy.sh index 7ec43628..13ddee6f 100755 --- a/pure-docker/deploy.sh +++ b/pure-docker/deploy.sh @@ -27,7 +27,6 @@ for i in $(seq 0 $(($NUM_GITSERVER - 1))); do ./deploy-gitserver.sh $i; done ./deploy-worker.sh ./deploy-otel-collector.sh for i in $(seq 0 $(($NUM_SEARCHER - 1))); do ./deploy-searcher.sh $i; done -for i in $(seq 0 $(($NUM_SYMBOLS - 1))); do ./deploy-symbols.sh $i; done ./deploy-syntect-server.sh for i in $(seq 0 $(($NUM_INDEXED_SEARCH - 1))); do ./deploy-zoekt-indexserver.sh $i; done for i in $(seq 0 $(($NUM_INDEXED_SEARCH - 1))); do ./deploy-zoekt-webserver.sh $i; done diff --git a/pure-docker/replicas.sh b/pure-docker/replicas.sh index 6fa13cab..a2312560 100755 --- a/pure-docker/replicas.sh +++ b/pure-docker/replicas.sh @@ -1,8 +1,7 @@ # Here you can specify the number of service replicas to deploy. NUM_GITSERVER=18 NUM_SEARCHER=16 -NUM_SYMBOLS=4 NUM_INDEXED_SEARCH=1 NUM_FRONTEND=3 -addresses() { for i in $(seq 0 $(($2 - 1))); do echo -n "$1$i$3 "; done } +addresses() { for i in $(seq 0 $(($2 - 1))); do echo -n "$1$i$3 "; done; } diff --git a/pure-docker/teardown.sh b/pure-docker/teardown.sh index 41d3c65c..b7a01ca4 100755 --- a/pure-docker/teardown.sh +++ b/pure-docker/teardown.sh @@ -26,7 +26,6 @@ docker rm -f redis-store &>/dev/null || true & docker rm -f repo-updater &>/dev/null || true & docker rm -f worker &>/dev/null || true & docker rm -f $(addresses "searcher-" $NUM_SEARCHER "") &>/dev/null || true & -docker rm -f $(addresses "symbols-" $NUM_SYMBOLS "") &>/dev/null || true & docker rm -f syntect-server &>/dev/null || true & docker rm -f $(addresses "zoekt-indexserver-" $NUM_INDEXED_SEARCH "") &>/dev/null || true & docker rm -f $(addresses "zoekt-webserver-" $NUM_INDEXED_SEARCH "") &>/dev/null || true & diff --git a/test/pure-docker/Vagrantfile b/test/pure-docker/Vagrantfile index d2e791e9..251938ed 100644 --- a/test/pure-docker/Vagrantfile +++ b/test/pure-docker/Vagrantfile @@ -53,7 +53,7 @@ Vagrant.configure("2") do |config| echo "forcing static permissions on volume directories" echo pushd ~/sourcegraph-docker - chown -R 100:101 gitserver* lsif-server* prometheus-v2* repo-updater* searcher* sourcegraph-frontend* symbols* zoekt* + chown -R 100:101 gitserver* lsif-server* prometheus-v2* repo-updater* searcher* sourcegraph-frontend* zoekt* chown -R 999:1000 redis-store-disk redis-cache-disk chown -R 472:472 grafana-disk chown -R 999:999 pgsql-disk diff --git a/test/pure-docker/volume-config.sh b/test/pure-docker/volume-config.sh index 0d72258e..694d4e1b 100755 --- a/test/pure-docker/volume-config.sh +++ b/test/pure-docker/volume-config.sh @@ -18,7 +18,7 @@ echo echo "forcing static permissions on volume directories" echo pushd ~/sourcegraph-docker -chown -R 100:101 gitserver* lsif-server* prometheus-v2* repo-updater* searcher* sourcegraph-frontend* symbols* zoekt* minio-disk +chown -R 100:101 gitserver* lsif-server* prometheus-v2* repo-updater* searcher* sourcegraph-frontend* zoekt* minio-disk chown -R 999:1000 redis-store-disk redis-cache-disk chown -R 472:472 grafana-disk chown -R 999:999 pgsql-disk codeintel-db-disk diff --git a/test/volume-config.sh b/test/volume-config.sh index f298734a..a4a47579 100755 --- a/test/volume-config.sh +++ b/test/volume-config.sh @@ -18,7 +18,7 @@ echo echo "forcing static permissions on volume directories" echo pushd ~/sourcegraph-docker -chown -R 100:101 gitserver* prometheus-v2* worker* repo-updater* searcher* sourcegraph-frontend* symbols* zoekt* blobstore-disk +chown -R 100:101 gitserver* prometheus-v2* worker* repo-updater* searcher* sourcegraph-frontend* zoekt* blobstore-disk chown -R 999:1000 redis-store-disk redis-cache-disk chown -R 472:472 grafana-disk chown -R 999:999 pgsql-disk codeintel-db-disk