Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
70 changes: 35 additions & 35 deletions .github/workflows/ci.yaml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .github/workflows/dependabot-notice.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
run: timeout --signal=TERM --kill-after=10s 300s rustup toolchain install 1.96.0 --profile minimal

- name: Fetch Rust dependencies
run: timeout --signal=TERM --kill-after=10s 300s cargo +1.96.0 fetch --manifest-path cmd/racer-dataplane/Cargo.toml --locked
run: timeout --signal=TERM --kill-after=10s 300s cargo +1.96.0 fetch --manifest-path cmd/racer/Cargo.toml --locked

- name: Generate NOTICE
run: timeout --signal=TERM --kill-after=10s 300s make notice
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/nightly.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -294,8 +294,8 @@ jobs:
file: images/unbounded-operator/Containerfile
- name: gantry
file: images/gantry/Containerfile
- name: racer-dataplane
file: images/racer-dataplane/Containerfile
- name: racer
file: images/racer/Containerfile
- name: racer-object
file: images/racer-object/Containerfile
- name: racer-vllm
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/racer-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ on:
pull_request:
paths:
- api/racer/**
- cmd/racer-dataplane/**
- cmd/racer/**
- cmd/racer-object/**
- internal/racer/**
- internal/racerobject/**
- internal/operator/components/racer/**
- pkg/racersdk/**
- deploy/racer/**
- images/racer-dataplane/**
- images/racer/**
- images/racer-object/**
- cmd/gantry/**
- internal/gantry/**
Expand All @@ -38,14 +38,14 @@ on:
- release-*
paths:
- api/racer/**
- cmd/racer-dataplane/**
- cmd/racer/**
- cmd/racer-object/**
- internal/racer/**
- internal/racerobject/**
- internal/operator/components/racer/**
- pkg/racersdk/**
- deploy/racer/**
- images/racer-dataplane/**
- images/racer/**
- images/racer-object/**
- cmd/gantry/**
- internal/gantry/**
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ name: unbounded release
# -> netboot-image (PXE boot artifact images)
# -> metalman-image (stamped with the matching default netboot image)
# -> component-images (matrix: machina, machine-ops-controller, unbounded-operator,
# token-refresher, orca, gantry, racer-dataplane,
# token-refresher, orca, gantry, racer,
# racer-object, racer-vllm,
# host-ubuntu2404,
# host-azurelinux3, host-azurelinux3-nvidia,
Expand Down Expand Up @@ -871,8 +871,8 @@ jobs:
trivy: true
# Includes GPU reads (CUDA shim and cuFile). The dataplane touches no
# GPU until a client sends the first gpu-read.
- name: racer-dataplane
file: images/racer-dataplane/Containerfile
- name: racer
file: images/racer/Containerfile
platforms: linux/amd64,linux/arm64
trivy: true
- name: racer-object
Expand Down
22 changes: 11 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ help: ## Show this help
@echo " racer-loadgen-test Race-test racer-loadgen"
@echo " racer-object | racer-object-build Build racer-object (with/without focused tests)"
@echo " racer-object-test Race-test racer-object"
@echo " image-racer-dataplane-local Build the racer-dataplane container image"
@echo " image-racer-local Build the racer container image"
@echo " image-racer-loadgen-local Build the loadgen container image"
@echo " image-racer-object-local Build the racer-object container image"
@echo ""
Expand Down Expand Up @@ -572,7 +572,7 @@ racer-go-test: ## Lint and race-test the Go Racer API and workload packages
timeout --signal=TERM --kill-after=10s 300s $(GOTEST) -timeout=5m -race ./api/racer/... ./internal/racer/...

racer-rust-test: ## Test the Rust Racer workspace, including the embedded cluster control plane
timeout --signal=TERM --kill-after=10s 1500s cargo test --locked --manifest-path cmd/racer-dataplane/Cargo.toml --workspace
timeout --signal=TERM --kill-after=10s 1500s cargo test --locked --manifest-path cmd/racer/Cargo.toml --workspace

racer-test: racer-go-test racer-rust-test ## Check Racer

Expand All @@ -582,9 +582,9 @@ RACER_GPU_TESTS ?= require

.PHONY: racer-gpu-test
racer-gpu-test: ## Build the CUDA shim with kernels (needs nvcc) and run GPU hardware tests (needs a GPU)
RACER_GPU_REQUIRE_PTX=1 timeout --signal=TERM --kill-after=10s 600s sh images/racer-dataplane/build-native-cuda.sh cmd/racer-dataplane/gpu/native "$(RACER_GPU_NATIVE)/libracer_gpu_cuda.so.1"
LD_LIBRARY_PATH="$(RACER_GPU_NATIVE)$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" timeout --signal=TERM --kill-after=10s 300s cargo test --locked --manifest-path cmd/racer-dataplane/Cargo.toml -p racer-gpu --no-default-features --features native --lib ffi::tests::required_native_shim_loads_abi_and_symbols -- --exact --ignored
LD_LIBRARY_PATH="$(RACER_GPU_NATIVE)$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" RACER_GPU_TESTS=$(RACER_GPU_TESTS) timeout --signal=TERM --kill-after=10s 900s cargo test --locked --manifest-path cmd/racer-dataplane/Cargo.toml -p racer-gpu --no-default-features --features native --test hardware -- --nocapture --test-threads=1
RACER_GPU_REQUIRE_PTX=1 timeout --signal=TERM --kill-after=10s 600s sh images/racer/build-native-cuda.sh cmd/racer/gpu/native "$(RACER_GPU_NATIVE)/libracer_gpu_cuda.so.1"
LD_LIBRARY_PATH="$(RACER_GPU_NATIVE)$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" timeout --signal=TERM --kill-after=10s 300s cargo test --locked --manifest-path cmd/racer/Cargo.toml -p racer-gpu --no-default-features --features native --lib ffi::tests::required_native_shim_loads_abi_and_symbols -- --exact --ignored
LD_LIBRARY_PATH="$(RACER_GPU_NATIVE)$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH}" RACER_GPU_TESTS=$(RACER_GPU_TESTS) timeout --signal=TERM --kill-after=10s 900s cargo test --locked --manifest-path cmd/racer/Cargo.toml -p racer-gpu --no-default-features --features native --test hardware -- --nocapture --test-threads=1
@if [ -n "$$RACER_GPU_E2E_SOCKET" ]; then \
test -x "$(RACER_PY_VENV)/bin/pytest" || { timeout --signal=TERM --kill-after=10s 120s python3 -m venv "$(RACER_PY_VENV)" && \
timeout --signal=TERM --kill-after=10s 300s "$(RACER_PY_VENV)/bin/pip" install -q pytest; }; \
Expand Down Expand Up @@ -628,14 +628,14 @@ racer-envtest: ## Run real API-server tests for Racer APIs and operator restrict
racer-generate: ## Generate Racer deepcopy and CRD artifacts
timeout --signal=TERM --kill-after=10s 300s $(GOCMD) generate ./api/racer/v1alpha1

RACER_DATAPLANE_IMAGE ?= $(CONTAINER_REGISTRY)/racer-dataplane:$(VERSION_TAG)
RACER_IMAGE ?= $(CONTAINER_REGISTRY)/racer:$(VERSION_TAG)

.PHONY: image-racer-dataplane-local
image-racer-dataplane-local: ## Build the racer-dataplane container image locally (single-arch)
.PHONY: image-racer-local
image-racer-local: ## Build the racer container image locally (single-arch)
$(CONTAINER_ENGINE) build \
-t racer-dataplane:$(VERSION_TAG) -t $(RACER_DATAPLANE_IMAGE) \
-f ./images/racer-dataplane/Containerfile .
$(call trivy-maybe,$(RACER_DATAPLANE_IMAGE))
-t racer:$(VERSION_TAG) -t $(RACER_IMAGE) \
-f ./images/racer/Containerfile .
$(call trivy-maybe,$(RACER_IMAGE))

RACER_LOADGEN_BIN=bin/racer-loadgen
RACER_LOADGEN_CMD=./cmd/racer-loadgen
Expand Down
2 changes: 1 addition & 1 deletion clients/python/racer/src/racer/_wire.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"""Racer client socket wire format.

This mirrors the Go SDK in pkg/racersdk/internal/wire/wire.go and the
dataplane in cmd/racer-dataplane/object-wire/src/client.rs.
dataplane in cmd/racer/object-wire/src/client.rs.
"""

from __future__ import annotations
Expand Down
2 changes: 1 addition & 1 deletion clients/python/racer/tests/test_wire_golden.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
"""Golden bytes shared with the dataplane.

Sources: cmd/racer-dataplane/object-wire/src/client.rs (RequestParser::parse,
Sources: cmd/racer/object-wire/src/client.rs (RequestParser::parse,
direct_head, frame) and object-wire/tests/direct.rs.
"""

Expand Down
2 changes: 1 addition & 1 deletion cmd/racer-loadgen/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ registers cleanup with the test. These tests are not evidence of real Racer
compatibility or performance.

Use a dedicated cache, not a cache whose origin socket Gantry already owns. The
racer-dataplane creates the origin directory owned by UID/GID 65532 with mode
racer creates the origin directory owned by UID/GID 65532 with mode
`0700`, and the loadgen image runs as that user. Loadgen creates no directories
and changes no permissions: it fails at startup if the origin directory is
missing, is not owned by its effective UID, or is group/world writable. The SDK provides exclusive ownership, stale-socket
Expand Down
2 changes: 1 addition & 1 deletion cmd/racer-loadgen/container_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ func TestContainerRuntimeUserSupportsUDS(t *testing.T) {
}

require.Equal(t, "scratch", base)
require.Equal(t, "65532:65532", user, "the UDS origin must run as the owner racer-dataplane assigns to /run/racer/<cache>/origin")
require.Equal(t, "65532:65532", user, "the UDS origin must run as the owner racer assigns to /run/racer/<cache>/origin")
}
6 changes: 3 additions & 3 deletions cmd/racer-loadgen/origin_uds.go
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ func (b *originBlobBody) Close() error {
return nil
}

// originUID is the UID/GID the loadgen origin runs as. The racer-dataplane
// originUID is the UID/GID the loadgen origin runs as. The racer
// creates /run/racer/<cache>/origin owned by this user with mode 0700
// (ORIGIN_UID in cmd/racer-dataplane/src/client/origin_directory.rs).
// (ORIGIN_UID in cmd/racer/src/client/origin_directory.rs).
const originUID = 65532

// checkOriginDirectory creates nothing and changes nothing. It refuses
Expand All @@ -161,7 +161,7 @@ func checkOriginDirectory(root, cache string) error {

info, err := os.Lstat(path)
if errors.Is(err, os.ErrNotExist) {
return fmt.Errorf("origin directory %s does not exist: racer-dataplane creates it owned by UID/GID %d "+
return fmt.Errorf("origin directory %s does not exist: racer creates it owned by UID/GID %d "+
"with mode 0700; run the origin as UID %d and mount that directory", path, originUID, originUID)
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/racer-loadgen/performance/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ name = "racer-performance-control"
path = "control.rs"

[dependencies]
racer-control-wire = { path = "../../racer-dataplane/control-wire" }
racer-control-wire = { path = "../../racer/control-wire" }
base64 = "0.22"
getrandom = "0.2"
rcgen = { version = "0.13", features = ["pem", "x509-parser"] }
Expand Down
6 changes: 3 additions & 3 deletions cmd/racer-loadgen/performance/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ case "${1:-}" in
export TMPDIR="${TMPDIR:-$out/tmp}"
export CARGO_TARGET_DIR="$out/cargo"
mkdir -p "$GOCACHE" "$GOMODCACHE" "$GOTMPDIR" "$TMPDIR"
cargo build --locked --release -j 2 --manifest-path "$root/cmd/racer-dataplane/Cargo.toml" --bin racer-dataplane
cargo build --locked --release -j 2 --manifest-path "$root/cmd/racer/Cargo.toml" --bin racer
cargo build --locked --release -j 2 --manifest-path "$root/cmd/racer-loadgen/performance/Cargo.toml"
"${GOCMD:-go}" test -c -o "$out/loadgen.test" ./cmd/racer-loadgen
{
"${GOCMD:-go}" version
rustc --version
sha256sum "$out/loadgen.test" "$out/cargo/release/racer-dataplane"
sha256sum "$out/loadgen.test" "$out/cargo/release/racer"
} >"$out/build-info.txt"
;;
run)
Expand All @@ -42,7 +42,7 @@ case "${1:-}" in
chmod -R go-w "$run/runtime"
mount --make-rprivate /
mount --bind "$run/runtime" /run
export RACER_PERF_ROOT="$run" RACER_PERF_BIN="$out/cargo/release/racer-dataplane"
export RACER_PERF_ROOT="$run" RACER_PERF_BIN="$out/cargo/release/racer"
export RACER_PERF_CONTROL="$out/cargo/release/racer-performance-control"
export RACER_PERF_CONCURRENCY="${3:-32}" GOMAXPROCS=8 TMPDIR="$run"
export RACER_PERF_START_SPACING="${4:-0s}"
Expand Down
6 changes: 3 additions & 3 deletions cmd/racer-object/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -389,7 +389,7 @@ func runOrigin(ctx context.Context, o options) error {
defer closeResource(root)

if err := checkOriginDirectory(root, []string{"run", "racer", o.cache, "origin"}); err != nil {
return fmt.Errorf("unsafe or missing origin directory /run/racer/%s/origin (racer-dataplane creates it "+
return fmt.Errorf("unsafe or missing origin directory /run/racer/%s/origin (racer creates it "+
"owned by UID/GID %d with mode 0700; run the origin as UID %d and mount that directory): %w",
o.cache, originUID, originUID, err)
}
Expand All @@ -408,9 +408,9 @@ func runOrigin(ctx context.Context, o options) error {
return nil
}

// originUID is the UID/GID origins run as. The racer-dataplane creates
// originUID is the UID/GID origins run as. The racer creates
// /run/racer/<cache>/origin owned by this user with mode 0700
// (ORIGIN_UID in cmd/racer-dataplane/src/client/origin_directory.rs).
// (ORIGIN_UID in cmd/racer/src/client/origin_directory.rs).
const originUID = 65532

// errOriginDirectoryMissing reports that the dataplane has not created the
Expand Down
Loading
Loading