sourcegraph/internal
Erik Seliger d04e821ceb
Experiment: Natively run SSBC in docker (#44034)
This adds an experimental code path that I will use to test a docker-only execution mode for server-side batch changes. This code path is never executed for customers until we make the switch when we deem it ready. This will allow me to dogfood this while it's not available to customer instances yet.

Ultimately, the goal of this is to make executors simply be "the job runner platform through a generic interface". Today, this depends on src-cli to do a good bunch of the work. This is a blocker for going full docker-based with executors, which will ultimately be a requirement on the road to k8s-based executors.

As this removes the dependency on src-cli, nothing but the job interface and API endpoints tie executor and Sourcegraph instance together. Ultimately, this will allow us to support larger version spans between the two (pending executors going GA and being feature-complete).

Known issues/limitations:

Steps skipped in between steps that run don't work yet
Skipping steps dynamically is inefficient as we cannot tell the executor to skip a step IF X, so we replace the script by exit 0
It is unclear if all variants of file mounts still work. Basic cases do work. Files used to be read-only in src-cli, they aren't now, but content is still reset in between steps.
The assumption that everything operates in /work is broken here, because we need to use what executors give us to persist out-of-repo state in between containers (like the step result from the previous step)
It is unclear if workspace mounts work
Cache keys are not correctly computed if using workspace mounts - the metadataretriever is nil
We still use log outputs to transfer the AfterStepResults to the Sourcegraph instance, this should finally become an artifact instead. Then, we don't have to rely on the execution_log_entires anymore and can theoretically prune those after some time. This column is currently growing indefinitely.
It depends on tee being available in the docker images to capture the cmd.stdout/cmd.stderr properly for template variable rendering
Env-vars are not rendered in their evaluated form post-execution
File permissions are unclear and might be similarly broken to how they are now - or even worse
Disclaimer: It's not feature complete today! But it is also not hitting any default code paths either. As development on this goes on, we can eventually remove the feature flag and run the new job format on all instances. This PR handles fallback of rendering old records correctly in the UI already.
2022-11-10 00:20:43 +01:00
..
actor actor: Add temporary logging (#43284) 2022-10-21 10:02:08 +00:00
adminanalytics go + golangci: update to go to 1.19.3 and golanci to 1.50.1 (#43747) 2022-11-02 15:08:25 +02:00
api internalapi: fix SendEmail arguments (#43713) 2022-10-31 20:05:40 +00:00
audit Audit log: make severity level configurable (#43109) 2022-10-19 10:42:36 +02:00
auth Move auth check helpers out of cmd/frontend (#42624) 2022-10-06 12:22:02 +02:00
authz authz: Update handling of directories in sub-repo filtering (#43800) 2022-11-03 09:29:02 +01:00
batches repo-updater: queue changeset syncs when the archived flag changes (#38702) 2022-07-14 12:17:53 -07:00
cloneurls [code-nav]: Moving graphql transport layer to individual service layers (#41596) 2022-09-28 14:55:34 -05:00
cmd progress_bot: use gcloud auth action (#44088) 2022-11-08 10:25:27 -07:00
codeintel codeintel: extract and decouple autoindexing background jobs from service (#44110) 2022-11-09 17:45:19 +00:00
comby go + golangci: update to go to 1.19.3 and golanci to 1.50.1 (#43747) 2022-11-02 15:08:25 +02:00
conf Experiment: Natively run SSBC in docker (#44034) 2022-11-10 00:20:43 +01:00
cookie
database Experiment: Natively run SSBC in docker (#44034) 2022-11-10 00:20:43 +01:00
debugserver debugserver: remove DB interface for debug dump (#38140) 2022-07-04 16:22:04 +08:00
deviceid
diskcache searcher: TMPDIR on CACHE_DIR (#36160) 2022-06-03 04:58:15 +00:00
download executors: Make setup simpler (#42026) 2022-10-05 15:32:30 +02:00
encryption executors: Implement stores for secrets (#43257) 2022-10-24 23:44:15 +02:00
endpoint endpoint: only support rendezvous hashing (#43528) 2022-10-27 09:17:42 +00:00
env executors: Make setup simpler (#42026) 2022-10-05 15:32:30 +02:00
errcode batches: add read only external state (#38265) 2022-07-11 09:55:46 -07:00
eventlogger user-management: exclude non-active-user-events from "events_count" aggregation (#41322) 2022-09-07 11:21:05 +06:00
extsvc internal/extsvc/github: More accurate log.Warn message (#44068) 2022-11-08 16:12:22 +05:30
featureflag featureflag: allow specify multiple overrides in single param (#44080) 2022-11-09 10:05:07 +02:00
fileutil Move vcs/util.FileInfo to fileutil (#38085) 2022-07-01 12:04:00 +00:00
gitserver gitserver: fix changeset publication (#43823) 2022-11-03 07:38:26 -07:00
goroutine mockgen: Reorganize (#43451) 2022-10-26 16:07:29 +02:00
gosyntect codemirror file view: Use new /scip highlighting endpoint (#40166) 2022-08-11 13:50:17 +02:00
gqltestutil Revert "Revert "Fix flaky Perforce integration tests"" (#43966) 2022-11-04 18:31:45 +00:00
gqlutil Introduce internal/gqlutil package (#42951) 2022-10-13 18:11:21 +00:00
honey go + golangci: update to go to 1.19.3 and golanci to 1.50.1 (#43747) 2022-11-02 15:08:25 +02:00
hostname
httpcli httpcli: No need to check slice length (#43587) 2022-10-31 09:23:37 +01:00
httpserver gitserver: Cleanups (#38082) 2022-07-01 13:42:03 +02:00
httptestutil all: use any instead of interface{} (#35102) 2022-05-09 10:59:39 +02:00
insights mockgen: Reorganize (#43451) 2022-10-26 16:07:29 +02:00
instrumentation otel: add tailsamplingprocessor to collector build (#42444) 2022-10-18 10:23:21 +00:00
inventory Move vcs/util.FileInfo to fileutil (#38085) 2022-07-01 12:04:00 +00:00
jsonc remove easy-to-misuse jsonc.Normalize (#42037) 2022-09-26 11:21:21 +02:00
lazyregexp ranking: Add default ranking implementations (#42664) 2022-10-10 15:18:04 +00:00
logging lib/log: migrate to github.com/sourcegraph/log (#36834) 2022-06-08 15:02:38 -07:00
luasandbox codeintel: Make indexer tag/sources configurable in inference (#43199) 2022-10-20 14:06:01 +00:00
mapfs mapfs: _Never use a temp directory again_ (#39155) 2022-07-20 11:32:43 -05:00
memo codeintel: Uniformly initialize services (#42602) 2022-10-06 07:51:18 -05:00
metrics mockgen: Reorganize (#43451) 2022-10-26 16:07:29 +02:00
mutablelimiter
oauthutil Add refreshable token interface for GitHub and GitLab (#42629) 2022-10-17 16:30:37 +02:00
observation observation: AddEvent sends honeycomb span-event (#43557) 2022-10-27 15:07:23 +00:00
oobmigration mockgen: Reorganize (#43451) 2022-10-26 16:07:29 +02:00
otlpenv otlp: treat OTEL_EXPORTER_OTLP_ENDPOINT='' as OpenTelemetry being disabled (#41243) 2022-09-02 08:17:04 -07:00
pathmatch all: replace regexp with grafana/regexp (#30948) 2022-02-14 09:08:21 +00:00
profiler trace, profiler, router: remove datadog (#37654) 2022-06-27 14:05:11 -07:00
pubsub errors: Introduce internal package (#30558) 2022-02-07 15:03:45 +00:00
randstring
ratelimit gitserver: Reduce ratelimit logspam (#41858) 2022-09-21 16:35:22 +02:00
rcache all: run gofmt -s -w from 1.19 (#41629) 2022-09-13 07:44:06 +00:00
redispool all: run gofmt -s -w from 1.19 (#41629) 2022-09-13 07:44:06 +00:00
repos Use faster way to compute cloned repos metric (#44175) 2022-11-09 20:50:39 +00:00
repoupdater Finalize deprecation of api.ExternalService type (#40929) 2022-08-29 16:44:02 +02:00
requestclient requestclient: propagate request client IP, add gitserver access logger (#38798) 2022-07-15 13:32:31 +02:00
resetonce add resetable sync.Once for timed caching of ctags globs (#32082) 2022-03-02 22:08:35 +00:00
search Search UI: use committer date instead of author date (#44134) 2022-11-09 13:06:06 -07:00
security Add hostname validation (#42553) 2022-10-06 14:09:59 +02:00
slack errors: Introduce internal package (#30558) 2022-02-07 15:03:45 +00:00
src-cli Bump src-cli minimum version (#44043) 2022-11-07 20:03:48 +00:00
src-prometheus errors: Introduce internal package (#30558) 2022-02-07 15:03:45 +00:00
symbols Revert "internal/trace: reduce direct usages of OpenTracing" (#37979) 2022-06-29 16:52:04 -06:00
sysreq errors: Introduce internal package (#30558) 2022-02-07 15:03:45 +00:00
temporarysettings
testutil testutil: remove Diff and FetchTar (#35297) 2022-05-11 13:57:20 +00:00
timeutil Allow to cancel running external service sync jobs (#41518) 2022-09-27 12:03:40 +02:00
trace Omit sensitive query parameters when logging auth errors. (#43912) 2022-11-07 14:20:18 -04:00
tracer log15 migration: executor migrate log15 usage to sglog (#43683) 2022-10-31 18:11:45 +02:00
txemail txemail: add 'source' to src_email_send (#43280) 2022-10-31 16:47:56 +01:00
types Aggregation: Add aggregation data pings again (#43765) 2022-11-02 12:13:01 -03:00
unpack rubygems: Refactor code and add a snapshot test (#43218) 2022-10-20 18:55:59 +08:00
uploadhandler mockgen: Reorganize (#43451) 2022-10-26 16:07:29 +02:00
uploadstore mockgen: Reorganize (#43451) 2022-10-26 16:07:29 +02:00
usagestats usagestats: Fix parens in statistics (#44144) 2022-11-09 17:28:45 +01:00
users user-management: exclude non-active-user-events from "events_count" aggregation (#41322) 2022-09-07 11:21:05 +06:00
vcs gitserver: correctly join path to CloneFromShard (#42564) 2022-10-06 07:49:45 +02:00
version dbconn: Modify query text to tag source, other metadata (#42588) 2022-10-13 12:34:37 +00:00
workerutil codeintel: extract and decouple autoindexing background jobs from service (#44110) 2022-11-09 17:45:19 +00:00