Development documentation
This document describes how to set up the development environment and how to develop Vald.
Set up environment
Prerequisites
OS
- When using Docker related environment, you can use any OS that supports Docker.
- When using native environment,
Linux
is required.
Architecture
amd64
is recommended because NGT
, the vector search library we use, is optimized for amd64
.
But you can also build and test Vald
on arm64
with the same way as described below.
Devcontainer
This is the easiest way to start developing Vald
. You can just open our devcontainer.json with VS Code
and go.
Other
We don’t officially have a setup documentation for now, but you can take a look at the Dockerfile
.
That’s everything you need to build and test Vald
, so you can use it as a reference.
If you would like to use the
Dockerfile
directly, please note thatdocker-in-docker
environment is required to run our E2E tests. In devcontainer,VS Code
handles it for us.
Run tests
Unit tests
The command below will run all the unit tests.
make test
E2E tests
The steps below will deploy a Vald cluster to the local k3d
cluster and run the E2E tests.
- Change
example/helm/values.yaml
todimensions: 784
anddistance_type: l2
. - Run the commands below.
# Download the dataset
make hack/benchmark/assets/dataset/fashion-mnist-784-euclidean.hdf5
# Start k3d
make k3d/start
# Wait for a while until the cluster is ready
# You might want to use k9s for this
# Deploy Vald
make k8s/vald/deploy HELM_VALUES=example/helm/values.yaml
# Wait for a while until the deployment is ready
# Run E2E tests
make e2e E2E_WAIT_FOR_CREATE_INDEX_DURATION=3m
# The result will be shown in three minutes or so
# Delete the cluster
make k8s/vald/delete