Skip to content

Commit 406b628

Browse files
committed
[ACTP] add par-control executor channel
1 parent 5dc93ac commit 406b628

31 files changed

Lines changed: 1767 additions & 95 deletions

Cargo.lock

Lines changed: 147 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ protoc-gen-prost = "0.5"
4141
protoc-gen-tonic = "0.5"
4242
lru = { version = "0.18.0", default-features = false }
4343
memchr = "2.7.6"
44+
native-tls = { version = "0.2", features = ["alpn"] }
4445
nom = "8.0"
46+
openssl = "0.10"
4547
normalize-path = "0.2"
4648
phf = { version = "0.14", features = ["macros"] }
4749
rawzip = "0.5.0"
@@ -57,6 +59,7 @@ time = { version = "0.3", features = ["formatting", "macros"] }
5759
thiserror = "2.0.12"
5860
tokio = "1"
5961
tokio-stream = "0.1"
62+
tokio-native-tls = "0.3"
6063
tonic = "0.14"
6164
tonic-build = "0.14"
6265
tonic-prost = "0.14"

MODULE.bazel.lock

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

comp/privateactionrunner/impl/privateactionrunner.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ func (p *PrivateActionRunner) StartExecutor(ctx context.Context) error {
276276
}
277277

278278
func (p *PrivateActionRunner) startExecutor(ctx context.Context) error {
279-
// Detached from ctx's deadline: the server must run until Stop(), not until the fx start timeout.
279+
// The server runs until Stop, independently of the Fx startup deadline.
280280
runCtx, cancel := context.WithCancel(context.WithoutCancel(ctx))
281281
p.cancelStart = cancel
282282
defer p.logger.Flush()
@@ -304,12 +304,14 @@ func (p *PrivateActionRunner) startExecutor(ctx context.Context) error {
304304
p.encryptionStore = encryptioncontext.NewStore()
305305
taskExecutor := runners.NewWorkflowTaskExecutor(cfg, taskVerifier, p.traceroute, p.eventPlatform, p.ipc.GetClient(), p.encryptionStore, p.ha, p.ka)
306306

307-
p.executorServer = executor.NewServer(taskExecutor, parversion.RunnerVersion)
307+
p.executorServer = executor.NewServer(taskExecutor, parversion.RunnerVersion, keysManager)
308308

309309
go p.encryptionStore.Start()
310310
keysManager.Start(runCtx)
311311
go func() {
312-
keysManager.WaitForReady()
312+
if err := keysManager.WaitForReady(runCtx); err != nil {
313+
return
314+
}
313315
p.executorServer.SetReady(true)
314316
p.logger.Info("Private action runner executor ready to accept actions")
315317
}()

deps/crates.MODULE.bazel

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,20 @@ crate.annotation(
2020
crate = "protoc-gen-tonic",
2121
gen_binaries = ["protoc-gen-tonic"],
2222
)
23+
24+
# Link openssl-sys against the Agent's packaged OpenSSL.
25+
crate.annotation(
26+
build_script_data = ["@openssl//:gen_dir"],
27+
build_script_env = {
28+
"OPENSSL_NO_VENDOR": "1",
29+
"OPENSSL_DIR": "$(execpath @openssl//:gen_dir)",
30+
},
31+
crate = "openssl-sys",
32+
data = ["@openssl"],
33+
deps = ["@openssl"],
34+
)
35+
36+
# Expose @openssl to the crate extension used above.
37+
inject_repo(crate, "openssl")
38+
2339
use_repo(crate, "crates")

deps/openssl.BUILD.bazel

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,14 @@ configure_make(
218218
}),
219219
)
220220

221+
# The full install tree (include/ + lib/) as a single directory, for consumers
222+
# that need an OPENSSL_DIR-style prefix (e.g. the Rust openssl-sys build script).
223+
filegroup(
224+
name = "gen_dir",
225+
srcs = [":openssl"],
226+
output_group = "gen_dir",
227+
)
228+
221229
foreign_cc_shared_wrapper(
222230
name = "openssl_shared",
223231
input = ":openssl",

pkg/privateactionrunner/executor/BUILD.bazel

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,15 @@ go_library(
1313
deps = [
1414
"//pkg/privateactionrunner/adapters/logging",
1515
"//pkg/privateactionrunner/runners",
16+
"//pkg/privateactionrunner/task-verifier",
1617
"//pkg/privateactionrunner/types",
1718
"//pkg/privateactionrunner/util",
1819
"//pkg/proto/pbgo/privateactionrunner/errorcode",
1920
"//pkg/proto/pbgo/privateactionrunner/executor",
2021
"@com_github_benbjohnson_clock//:clock",
2122
"@org_golang_google_grpc//:grpc",
23+
"@org_golang_google_grpc//codes",
24+
"@org_golang_google_grpc//status",
2225
] + select({
2326
"@rules_go//go/platform:windows": [
2427
"@com_github_microsoft_go_winio//:go-winio",
@@ -37,6 +40,7 @@ dd_agent_go_test(
3740
embed = [":executor"],
3841
deps = [
3942
"//pkg/privateactionrunner/runners",
43+
"//pkg/privateactionrunner/task-verifier",
4044
"//pkg/privateactionrunner/types",
4145
"//pkg/privateactionrunner/util",
4246
"//pkg/proto/pbgo/privateactionrunner/errorcode",
@@ -45,7 +49,10 @@ dd_agent_go_test(
4549
"@com_github_stretchr_testify//assert",
4650
"@com_github_stretchr_testify//require",
4751
"@org_golang_google_grpc//:grpc",
52+
"@org_golang_google_grpc//codes",
4853
"@org_golang_google_grpc//credentials",
4954
"@org_golang_google_grpc//credentials/insecure",
55+
"@org_golang_google_grpc//status",
56+
"@org_golang_google_protobuf//proto",
5057
],
5158
)

0 commit comments

Comments
 (0)