Skip to content

Commit 832da2c

Browse files
authored
release 1.4.0 (#17)
1 parent 1e57098 commit 832da2c

56 files changed

Lines changed: 4235 additions & 1575 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docker-compose/.env.example

Lines changed: 80 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,53 +2,96 @@
22
COMPOSE_PROJECT_NAME=my_project
33
VERSION_TAG=latest
44
IMAGE_DIR=cryptolabinc/
5+
PULL_POLICY=always
56

6-
# es2 endpoint
7-
ES2E_HOST_PORT=50050 # Set your endpoint host port here
8-
ES2E_IMAGE_NAME=${IMAGE_DIR}es2e
9-
ES2E_TAG=${VERSION_TAG}
7+
# docker setup
8+
DOCKER_VOLUME_DIRECTORY=. # Set the docker volume mounting directory if needed
9+
10+
# Log Level
11+
ENVECTOR_LOG_LEVEL=INFO
12+
13+
# endpoint
14+
ENVECTOR_ENDPOINT_HOST_PORT=50050 # Set your endpoint host port here
15+
ENVECTOR_HTTP_HEALTH_HOST_PORT=18080 # Exposes /health and /health/ready on the host
16+
ENVECTOR_ADMIN_API_ENABLED=true
17+
ENVECTOR_ENDPOINT_IMAGE_NAME=${IMAGE_DIR}envector-endpoint
18+
ENVECTOR_ENDPOINT_TAG=${VERSION_TAG}
19+
# auth
20+
ENVECTOR_AUTH_OIDC_ISSUER=
21+
ENVECTOR_AUTH_ALLOWED_AUDIENCES=
22+
ENVECTOR_AUTH_ROLE_CLAIM=envector_roles
23+
ENVECTOR_AUTH_PRINCIPAL_CLAIM=principal_id
24+
ENVECTOR_AUTH_JWKS_URL=
25+
ENVECTOR_AUTH_CAPABILITY_POLICY_JSON=
1026

11-
# es2 backend
12-
ES2B_IMAGE_NAME=${IMAGE_DIR}es2b
13-
ES2B_TAG=${VERSION_TAG}
27+
# backend
28+
ENVECTOR_BACKEND_IMAGE_NAME=${IMAGE_DIR}envector-backend
29+
ENVECTOR_BACKEND_TAG=${VERSION_TAG}
1430

15-
# es2 scheduler
16-
ES2O_IMAGE_NAME=${IMAGE_DIR}es2o
17-
ES2O_TAG=${VERSION_TAG}
31+
# orchestrator
32+
ENVECTOR_ORCHESTRATOR_IMAGE_NAME=${IMAGE_DIR}envector-orchestrator
33+
ENVECTOR_ORCHESTRATOR_TAG=${VERSION_TAG}
1834

19-
# es2 compute
20-
ES2C_IMAGE_NAME=${IMAGE_DIR}es2c
21-
ES2C_TAG=${VERSION_TAG}
35+
# shaper
36+
ENVECTOR_SHAPER_IMAGE_NAME=${IMAGE_DIR}envector-shaper
37+
ENVECTOR_SHAPER_TAG=${VERSION_TAG}
2238

23-
# ES2C GPU ID
24-
ES2C_GPU0_ID=0
25-
ES2C_GPU1_ID=1
26-
ES2C_GPU2_ID=2
27-
ES2C_GPU3_ID=3
39+
# compute
40+
ENVECTOR_COMPUTE_IMAGE_NAME=${IMAGE_DIR}envector-compute
41+
ENVECTOR_COMPUTE_TAG=${VERSION_TAG}
42+
# Optional: set only if you want to override the auto-advertised host (defaults to POD_IP/hostname)
43+
# ENVECTOR_COMPUTE_ADVERTISE_HOST=envector-compute:${ENVECTOR_COMPUTE_PORT:-25123}
44+
45+
# ENVECTOR_COMPUTE GPU ID
46+
ENVECTOR_COMPUTE_GPU0_ID=0
47+
ENVECTOR_COMPUTE_GPU1_ID=1
48+
ENVECTOR_COMPUTE_GPU2_ID=2
49+
ENVECTOR_COMPUTE_GPU3_ID=3
2850

2951
# License Key
30-
ES2_LICENSE_TOKEN=
52+
# ENVECTOR_LICENSE_TOKEN=
3153

3254
# DB
33-
ES2_DB_SERVICE_PORT=5432
34-
ES2_DB_SERVICE_USER=postgres
35-
ES2_DB_SERVICE_PASSWORD=abcdefghi
36-
ES2_DB_SERVICE_NAME=mydatabase
37-
ES2_DB_SERVICE_SCHEMA=public
38-
ES2_DB_SERVICE_URL="postgresql://postgres:abcdefghi@metadatadb:5432/mydatabase"
55+
ENVECTOR_DB_URL="postgresql://postgres:abcdefghi@metadatadb:5432/mydatabase"
56+
# Optional: set individual DB parameters instead of URL
57+
ENVECTOR_DB_HOST=metadatadb
58+
ENVECTOR_DB_PORT=5432
59+
ENVECTOR_DB_USER=postgres
60+
ENVECTOR_DB_PASSWORD=abcdefghi
61+
ENVECTOR_DB_NAME=mydatabase
62+
ENVECTOR_DB_SCHEMA=public
63+
ENVECTOR_DB_SSL=disable
64+
# Optional: external DB endpoint (host:port), e.g. AWS RDS.
65+
# ENVECTOR_DB_ADDRESS=mydb.abcdefghijkl.us-east-1.rds.amazonaws.com:5432
3966

4067
# Storage
41-
ES2_STORAGE_PROVIDER=s3
42-
ES2_STORAGE_SERVICE_PORT=59000
43-
ES2_STORAGE_SERVICE_USER=minioadmin
44-
ES2_STORAGE_SERVICE_PASSWORD=abcdefghi
45-
ES2_STORAGE_SECURE=false # Set to true if using HTTPS
46-
ES2_STORAGE_BUCKET_NAME=es2
47-
ES2_STORAGE_SERVICE_CREATE_BUCKET=true
48-
ES2_STORAGE_SERVICE_HAS_HEALTHCHECK_ENDPOINT=true # Set to true if storage has health check endpoint
68+
ENVECTOR_STORAGE_PROVIDER=s3
69+
ENVECTOR_STORAGE_PORT=59000
70+
ENVECTOR_STORAGE_CONSOLE_PORT=59001
71+
ENVECTOR_STORAGE_USER=minioadmin
72+
ENVECTOR_STORAGE_PASSWORD=abcdefghi
73+
ENVECTOR_STORAGE_SECURE=false # Set to true if using HTTPS
74+
ENVECTOR_STORAGE_BUCKET_NAME=envector
75+
ENVECTOR_STORAGE_CREATE_BUCKET=true
76+
ENVECTOR_STORAGE_HAS_HEALTHCHECK_ENDPOINT=true # Set to true if storage has health check endpoint
77+
ENVECTOR_STORAGE_REGION=us-east-1
4978

50-
# docker setup
51-
DOCKER_VOLUME_DIRECTORY=. # Set the docker volume mounting directory if needed
79+
# Advanced runtime options
80+
# Backend Development settings
81+
# ENVECTOR_MAX_NUM_VECTORS_PER_SHARD=4096
82+
# CTXTMAP_BATCH_SIZE=1024
83+
# CTXTMAP_INSERT_BATCH_SIZE=1024
84+
# CTXTMAP_UPDATE_BATCH_SIZE=1024
85+
# ENVECTOR_CLEANUP_GRACE_PERIOD=5m
86+
# VCT_CAPACITY=4096
5287

53-
# Log Level
54-
ES2_LOG_LEVEL=INFO
88+
# Shaper Development settings
89+
# ENVECTOR_SHAPER_MAX_WORKERS=16
90+
# ENVECTOR_SHAPER_CLEANUP_PERIOD=1h
91+
# ENVECTOR_SHAPER_JOB_TTL=24h
92+
# ENVECTOR_SHAPER_SPLIT_UPLOAD_CONCURRENCY=1
93+
# ENVECTOR_SHAPER_MERGE_DOWNLOAD_CONCURRENCY=1
94+
95+
# Compute Development settings
96+
# NUM_SEARCH_WORKERS=30
97+
# ENVECTOR_THREAD_POOL_SCALE=4

docker-compose/README.md

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
The default tags come from `.env.example`:
66

77
```text
8-
es2e: cryptolabinc/es2e:${VERSION_TAG}
9-
es2b: cryptolabinc/es2b:${VERSION_TAG}
10-
es2o: cryptolabinc/es2o:${VERSION_TAG}
11-
es2c: cryptolabinc/es2c:${VERSION_TAG}
12-
postgres: postgres:14.9
13-
minio: minio/minio:RELEASE.2023-03-20T20-16-18Z
8+
envector-endpoint: cryptolabinc/envector-endpoint:${VERSION_TAG}
9+
envector-backend: cryptolabinc/envector-backend:${VERSION_TAG}
10+
envector-orchestrator: cryptolabinc/envector-orchestrator:${VERSION_TAG}
11+
envector-compute: cryptolabinc/envector-compute:${VERSION_TAG}
12+
postgres: postgres:14.9
13+
minio: minio/minio:RELEASE.2023-03-20T20-16-18Z
1414
```
1515

1616
## 🧩 Compose File Layout
1717

1818
```text
1919
docker-compose.envector.yml # Core application services
20-
docker-compose.gpu.yml # GPU override for es2c
20+
docker-compose.gpu.yml # GPU override for compute
2121
docker-compose.infra.yml # Postgres + MinIO (adds readiness deps to core)
2222
```
2323

@@ -40,7 +40,7 @@ Optional: you can login manually ahead of time if you prefer.
4040
## ✅ Step 2. Prepare Environment
4141

4242
```bash
43-
cd envector-deployment/docker-compose
43+
cd deployment/docker-compose
4444
# If .env is missing, ./start_envector.sh will auto-create it from .env.example
4545
cp .env.example .env # optional
4646
```
@@ -51,20 +51,20 @@ Edit `.env` as needed. `COMPOSE_PROJECT_NAME` customises the network/container p
5151

5252
## 🔐 License Token
5353

54-
- Docker-mounted path: the container reads the token at `/es2/license/token.jwt` (source file on host: `docker-compose/token.jwt`).
54+
- Docker-mounted path: the container reads the token at `/envector/license/token.jwt` (source file on host: `docker-compose/token.jwt`).
5555
- If `token.jwt` is missing, `./start_envector.sh` will prompt for a path and copy the file to `docker-compose/token.jwt` automatically.
56-
- The `es2c` service reads the token from the Docker-mounted path `/es2/license/token.jwt`; the compose file mounts it for you:
56+
- The `envector-compute` service reads the token from the Docker-mounted path `/envector/license/token.jwt`; the compose file mounts it for you:
5757

5858
```yaml
5959
environment:
60-
ES2_LICENSE_TOKEN: "${ES2_LICENSE_TOKEN:-/es2/license/token.jwt}"
60+
ENVECTOR_LICENSE_TOKEN: "${ENVECTOR_LICENSE_TOKEN:-/envector/license/token.jwt}"
6161
# License file mount. Place your license token.jwt file in the same directory as this docker-compose file.
6262
volumes:
63-
- ./token.jwt:/es2/license/token.jwt
63+
- ./token.jwt:/envector/license/token.jwt
6464
```
6565
66-
- You normally don’t need to set `ES2_LICENSE_TOKEN` in `.env`; it matches the Docker-mounted path above.
67-
- If you change the token filename or path, update both `ES2_LICENSE_TOKEN` and the `volumes` mapping in `docker-compose/docker-compose.envector.yml` accordingly.
66+
- You normally don’t need to set `ENVECTOR_LICENSE_TOKEN` in `.env`; it matches the Docker-mounted path above.
67+
- If you change the token filename or path, update both `ENVECTOR_LICENSE_TOKEN` and the `volumes` mapping in `docker-compose/docker-compose.envector.yml` accordingly.
6868

6969
---
7070

@@ -83,18 +83,20 @@ Recommended (helper script in this directory):
8383
./start_envector.sh --gpu
8484
8585
# Scale workers
86-
./start_envector.sh --num-es2c 4 # CPU-only: scale es2c=4
87-
./start_envector.sh --gpu --num-es2c 2 # GPU: gpu0 + gpu1
86+
./start_envector.sh --num-compute 4 # CPU-only: scale compute=4
87+
./start_envector.sh --gpu --num-compute 2 # GPU: gpu0 + gpu1
8888
8989
# Project/env/log options
90-
./start_envector.sh -p my-es2 --env-file ./.env --log-file ./docker-logs.log
90+
./start_envector.sh -p my-envector --env-file ./.env --log-file ./docker-logs.log
9191
9292
# Inline env overrides (higher precedence than .env)
93-
./start_envector.sh ES2E_HOST_PORT=50055 VERSION_TAG=dev
93+
./start_envector.sh ENVECTOR_ENDPOINT_HOST_PORT=50055 VERSION_TAG=dev
94+
./start_envector.sh ENVECTOR_HTTP_HEALTH_HOST_PORT=18081
95+
./start_envector.sh ENVECTOR_ADMIN_API_ENABLED=true
9496
9597
# Stop the stack (use -p if you set a project)
9698
./start_envector.sh --down # also tears down GPU services automatically
97-
# e.g., ./start_envector.sh -p my-es2 --down
99+
# e.g., ./start_envector.sh -p my-envector --down
98100
# Remove volumes as well when stopping
99101
./start_envector.sh --down --down-volumes
100102
```
@@ -126,17 +128,41 @@ docker compose \
126128
up -d
127129
```
128130

131+
HTTP health endpoints:
132+
133+
```bash
134+
curl http://localhost:${ENVECTOR_HTTP_HEALTH_HOST_PORT:-18080}/health
135+
curl http://localhost:${ENVECTOR_HTTP_HEALTH_HOST_PORT:-18080}/health/ready
136+
```
137+
138+
Admin API:
139+
140+
```bash
141+
curl http://localhost:${ENVECTOR_HTTP_HEALTH_HOST_PORT:-18080}/admin/services
142+
curl http://localhost:${ENVECTOR_HTTP_HEALTH_HOST_PORT:-18080}/admin/indexes
143+
curl http://localhost:${ENVECTOR_HTTP_HEALTH_HOST_PORT:-18080}/admin/keys
144+
curl "http://localhost:${ENVECTOR_HTTP_HEALTH_HOST_PORT:-18080}/admin/indexes/sample-index/operations/request-123?operation_type=INSERT"
145+
curl http://localhost:${ENVECTOR_HTTP_HEALTH_HOST_PORT:-18080}/admin/keys/key-1
146+
```
147+
148+
Enable it with:
149+
150+
```bash
151+
ENVECTOR_ADMIN_API_ENABLED=true
152+
```
153+
154+
Swagger:
155+
156+
```bash
157+
open http://localhost:${ENVECTOR_HTTP_HEALTH_HOST_PORT:-18080}/swagger/
158+
```
159+
129160
To inspect the final configuration before starting:
130161

131162
```bash
132163
docker compose -f docker-compose.envector.yml -f docker-compose.infra.yml --env-file .env config
133164
```
134165

135-
Notes on scaling
136-
- CPU-only: `--scale es2c=N` (manual) or `./start_envector.sh --num-es2c N` (script).
137-
- GPU: `./start_envector.sh --gpu --num-es2c N` enables N GPU workers (base gpu0 plus additional).
138-
Extend beyond 4 GPUs by editing `docker-compose.gpu.yml`.
139-
140166
---
141167

142168
## ✅ Step 4. Collect Logs

0 commit comments

Comments
 (0)