Permanent SPDK trial
This commit is contained in:
@@ -250,16 +250,37 @@ services:
|
||||
memlock: -1
|
||||
volumes:
|
||||
- /dev/hugepages:/dev/hugepages
|
||||
# LONG-LIVED target + ONLINE release control (no restart on a new build):
|
||||
# spdk-target = the persistent entrypoint (nvmf_tgt stays up for life)
|
||||
# spdk-release = JSON-RPC add/remove/list/drain of a version, live
|
||||
- ./spdk/spdk-target.sh:/usr/local/bin/spdk-target:ro
|
||||
- ./spdk/spdk-release.sh:/usr/local/bin/spdk-release:ro
|
||||
# Multi-version release store: each ./spdk/releases/<ver>/ holds that
|
||||
# version's rootfs.erofs + rootfs.hash + verity.json. Staged by
|
||||
# spdk-ctl.sh on the host; reconciled into the target at (re)start and
|
||||
# added/removed live thereafter. RW so the /artifacts bootstrap seed and
|
||||
# spdk-ctl can write here. Adding a version does NOT recreate this service.
|
||||
- ./spdk/releases:/releases
|
||||
# Bootstrap convenience (optional): a single OCI release mounted as an
|
||||
# image volume. spdk-target seeds it into /releases as ${IMAGE_VERSION} if
|
||||
# not already staged — preserves the simple one-version `compose up` flow.
|
||||
# Remove this block for a pure multi-version (spdk-ctl-managed) deployment.
|
||||
- type: image
|
||||
source: ${OCI_IMAGE}:${IMAGE_VERSION}
|
||||
target: /artifacts # -> /artifacts/rootfs.erofs for spdk-setup.sh
|
||||
target: /artifacts
|
||||
image:
|
||||
subpath: artifacts
|
||||
# Fallback (Docker < 28 / offline): - ${ARTIFACT_SRC}:/artifacts:ro
|
||||
- ./spdk-setup.sh:/spdk-setup.sh:ro
|
||||
# Legacy single-version entrypoint (configure-at-start, restart-to-change):
|
||||
# - ./spdk-setup.sh:/spdk-setup.sh:ro
|
||||
environment:
|
||||
SUBNQN: ${SUBNQN}
|
||||
IMAGE_VERSION: ${IMAGE_VERSION} # bootstrap-seed label for /artifacts
|
||||
RELEASES_DIR: /releases
|
||||
SUBNQN_BASE: ${SUBNQN_BASE} # per-version NQN base (falls back per release to verity.json .subnqn)
|
||||
TARGET_ADDR: ${SERVER_IP}
|
||||
TARGET_PORT: ${TARGET_PORT}
|
||||
SPDK_CPUMASK: ${SPDK_CPUMASK}
|
||||
entrypoint: ["/bin/bash", "/spdk-setup.sh"]
|
||||
NVMEOF_SVC: nvmeof
|
||||
# Persistent target: started ONCE, never restarted for a version change.
|
||||
# Rolling updates add/remove versions online (serving/spdk/spdk-ctl.sh).
|
||||
entrypoint: ["/bin/bash", "/usr/local/bin/spdk-target"]
|
||||
|
||||
Reference in New Issue
Block a user