dive to validate infrastructure readiness at each stage of deploying the Poolside inference stack. Run pre-flight checks before installation to catch configuration issues early, post-flight checks after installation to confirm correct operation, and GPU node checks to validate host-level configuration on every GPU node in the cluster.
How it works
dive check (pre- and post-flight)
dive check reads a single values.yaml, which is the same file you pass to the inference Helm chart. It builds the external clients each check needs (Kubernetes API, S3, HTTP) lazily on first use, then runs the selected checks concurrently, up to 8 at a time by default. Results are streamed to stdout as each check finishes; the process exits non-zero if any check returns fail or error.
dive node-checks
dive node-checks is an orchestrator that runs from any machine with cluster access (your laptop, a CI runner, a bastion). It discovers GPU nodes and for each one deploys a short-lived privileged pod that mounts the host’s /sys and /proc read-only. The pod runs the hidden node-check-local subcommand of the same dive binary, performs all 10 host-level checks, and prints a JSON report to its logs. The orchestrator collects those logs, parses the reports, and aggregates them into a single per-node summary.
The pod requires root and privileged mode because reading PCIe Relaxed Ordering capabilities from /sys/bus/pci/devices/*/config (raw PCI config space) requires root even inside a privileged container.
Prerequisites
Locate the dive binary
When using a Poolside bundle, the dive binary is included as a tarball alongside the other bundle binaries in./binaries.
Distribute the dive image
Fordive node-checks, the cluster nodes must be able to pull the dive image. When using a Poolside bundle, the dive image is included as a tarball in ./containers alongside the other bundle images:
--image. Because the check pods set imagePullPolicy: IfNotPresent, a cached image is used without a registry pull even when the tag is :latest.
Run pre-flight checks
Run these checks before installing the Helm chart to catch configuration and environment issues early.Pre-flight check reference
Run post-flight checks
Run these checks after the Helm chart is installed to verify that the inference stack is operating correctly.Post-flight check reference
Run GPU node checks
Run these checks to validate that every GPU node’s host configuration is optimal for GPU workloads. This is independent of any Helm values file and can be run before or after installing the inference stack.Node check reference
Checks are classified as hard (returnsfail) or soft (returns warn):
acs_disabled and numa_gpu_* checks are skipped automatically on nodes with no detected GPUs. gpu_pcie_relaxed_ordering is skipped when no EFA/RDMA devices are present.Output formats
Bothdive check and dive node-checks support --output text (default) and --output json.
Text output
Color-coded, human-readable. Each check prints one line with a status symbol followed by the check name, then indented detail lines:JSON output
Machine-readable, suitable for CI pipelines. Each result is an object withname and a nested result object. The result object contains status, message, optional detail, and optional fix:
dive node-checks --output json, the top-level object contains nodes (array of per-node results), summary (aggregate pass/warn/fail/skip/error counts), and errors (nodes that could not be checked).
Exit codes
CLI reference
dive check
At least one of
--pre or --post must be specified. Both can be combined in a single invocation.
dive node-checks
dive version
Required RBAC for dive node-checks
The credentials of the user running dive node-checks must allow the following operations:
Example
ClusterRole: