Skip to main content

Test Deployment

Deployment tests prove that documentation, sample assets, metadata, and runtime manifests agree. Test with disposable infrastructure or a non-production network before requesting review.

Test layers

LayerWhat to validateEvidence
Docker ComposeContainer starts, volumes mount, ports match metadata, health check worksdocker compose config and a successful local smoke test.
KubernetesManifests render, probes and resources are valid, network policy matches exposure classkubectl apply --dry-run=server or equivalent cluster validation.
HelmValues render without missing templates and match documented defaultshelm template output reviewed for ports, images, volumes, and secrets.
Argo CDApplication points to the intended chart/path and namespaceRendered Application manifest and sync policy review.
RPC smokeDocumented endpoint answers a safe methodHTTP, WebSocket, gRPC, GraphQL, or REST smoke command output.

:::warning Do not test against production first A deployment guide is not ready if its first full run is a production change. Use a local node, devnet, test environment, or isolated namespace. :::

Docker Compose validation

docker compose -f chains/<chain>/docker-compose.yml config
docker compose -f chains/<chain>/docker-compose.yml up -d

After startup, check logs and run the chain-specific health or sync query documented in the sample page.

Helm validation

helm template <release> chains/<chain>/helm \
--namespace <namespace> \
--values chains/<chain>/helm/values.yaml

Review the rendered output for:

  • Image repository and tag.
  • Persistent volume claims.
  • Service ports and names.
  • Probes.
  • Secret references without inline secret values.
  • NetworkPolicy or equivalent controls for private ports.

RPC smoke validation

Use the safest read-only method for the interface:

# JSON-RPC example
curl -fsS "$RPC_URL" \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"web3_clientVersion","params":[]}'
# REST example
curl -fsS "$REST_URL/v1/-/healthy"
# GraphQL example
curl -fsS "$GRAPHQL_URL" \
-H 'content-type: application/json' \
-d '{"query":"query { chainIdentifier }"}'

For streaming interfaces, validate connection setup and clean shutdown; do not leave unbounded subscriptions running after the test.

Pass criteria

AreaPass condition
RuntimeThe documented runtime starts from a clean checkout.
PortsExposed ports match metadata.yaml and /operations/rpc-exposure-policy.
SecretsNo real secrets appear in rendered manifests or compose files.
HealthNode health check succeeds or reports expected sync progress.
RPCAt least one documented smoke query succeeds.
CleanupTest resources can be stopped and removed cleanly.