Skip to content

Commit e4c2bc1

Browse files
committed
weaviate installation instructions
1 parent 4e90ba3 commit e4c2bc1

File tree

3 files changed

+89
-5
lines changed

3 files changed

+89
-5
lines changed

README.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
- [Manual Database Setup (Optional)](#manual-database-setup-optional)
1717
- [Application Deployment Guides](#application-deployment-guide)
1818
- [Retrieve License](#retrieve-license)
19+
- [Install Required Dependencies](#install-required-dependencies)
20+
- [Optional Components](#optional-components)
1921
- [Backup and Restore Guide](#backup-and-restore-guide)
2022
- [Troubleshooting](#troubleshooting)
2123
- [Common Issues](#common-issues)
@@ -227,10 +229,18 @@ After you have access to the Kubernetes cluster, you must install the necessary
227229
> 2. The service mesh (Linkerd) must be installed second, as it depends on the certificates and issuers created during the
228230
> first step.
229231
>
230-
> 3. Other dependencies can be installed in any order after that. They do not have hard dependencies on each other, but
232+
> 3. Other dependencies or optional components can be installed in any order after that. They do not have hard dependencies on each other, but
231233
> do require the previous two steps to be completed to ensure internal traffic is properly secured.
232234
> Note: It is critical to provide an `azure-dns-label` for Azure NGINX Controller deployments. This is documented at the top of the example NGINX values file given.
233235

236+
### Optional Components
237+
238+
SAS has partnered with Weaviate and supports it as an alternative to PGVector storage. This installation is not required but is compatible with RAM.
239+
240+
| Component | Version | Example Values File | Installation Instructions |
241+
|-----------|---------------|---------------------|---------------------------------------------------------------------------------------------|
242+
| **Weaviate** |v17.3.3 |[weaviate.yaml](./examples/weaviate.yaml) | [instructions](./docs/user/DependencyInstall.md#weaviate) |
243+
234244
### Install SAS Retrieval Agent Manager
235245

236246
After you have configured a Kubernetes cluster and PostgreSQL 15 database, use the following code to deploy SAS Retrieval Agent Manager on your platform:

docs/user/DependencyInstall.md

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Dependency Installations
22

3-
## Certificate and Trust Management
3+
## Required Dependencies
4+
5+
### Certificate and Trust Management
46

57
SAS Retrieval Agent Manager requires TLS certificates for secure communication. You can use cert-manager to automate the
68
management and issuance of TLS certificates. The provided chart:
@@ -29,7 +31,7 @@ kubectl apply -f helm/cert-manager/templates/linkerd-certs/ \
2931

3032
```
3133

32-
## Service Mesh
34+
### Service Mesh
3335

3436
SAS Retrieval Agent Manager uses Linkerd to enable mutual TLS (mTLS) for secure internal communication between its
3537
components. The provided chart sets up the necessary configurations to enable mTLS within the application with automated
@@ -55,7 +57,7 @@ helm install linkerd ./helm/linkerd \
5557

5658
```
5759

58-
## Kueue
60+
### Kueue
5961

6062
SAS Retrieval Agent Manager requires Kueue for workload management of vectorization jobs.
6163

@@ -72,7 +74,7 @@ helm install kueue oci://registry.k8s.io/kueue/charts/kueue \
7274
--create-namespace
7375
```
7476

75-
## Ingress-Nginx
77+
### Ingress-Nginx
7678

7779
SAS Retrieval Agent Manager requires the NGINX Ingress controller for managing incoming traffic.
7880

@@ -93,3 +95,26 @@ helm install nginx-ingress-nginx-controller \
9395
-f <nginx_values_file> \
9496
--create-namespace
9597
```
98+
99+
## Optional Components
100+
101+
### Weaviate
102+
103+
SAS Retrieval Agent Manager supports Weaviate as an alternative to PGVector storage.
104+
105+
Here is an [Example Weaviate Values File](../../examples/weaviate.yaml). You can edit it as you'd like to fit your deployment.
106+
107+
You can install it onto your cluster with the following commands:
108+
109+
```bash
110+
# Add the Helm repo that contains Weaviate
111+
helm repo add weaviate https://weaviate.github.io/weaviate-helm
112+
helm repo update
113+
114+
# Install Weaviate using your custom values file
115+
helm install weaviate weaviate/weaviate \
116+
--version=v17.3.3 \
117+
--namespace weaviate \
118+
-f <weaviate_values_file> \
119+
--create-namespace
120+
```

examples/weaviate.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
# -- Service configuration for Weaviate HTTP endpoint
3+
# -- Exposes the Weaviate REST API for client connections
4+
service:
5+
# -- Service name for Weaviate HTTP endpoint
6+
name: weaviate
7+
8+
# -- Service ports configuration for HTTP traffic
9+
ports:
10+
# -- HTTP port configuration for REST API
11+
- name: http
12+
protocol: TCP
13+
port: 80
14+
15+
# -- Service type for internal cluster communication
16+
# -- ClusterIP restricts access to within the Kubernetes cluster
17+
type: ClusterIP
18+
19+
# -- gRPC service configuration for Weaviate
20+
# -- Provides gRPC endpoint for high-performance client communication
21+
grpcService:
22+
# -- Enable gRPC service for Weaviate
23+
# -- Controls whether the gRPC service is created
24+
enabled: true
25+
26+
# -- Service name for Weaviate gRPC endpoint
27+
name: weaviate-grpc
28+
29+
# -- Service ports configuration for gRPC traffic
30+
ports:
31+
# -- gRPC port configuration for client connections
32+
- name: grpc
33+
protocol: TCP
34+
port: 50051
35+
36+
# -- Service type for internal cluster communication
37+
# -- ClusterIP restricts access to within the Kubernetes cluster
38+
type: ClusterIP
39+
40+
# -- Persistent storage configuration for Weaviate data
41+
# -- Defines the storage volume for vector database persistence
42+
storage:
43+
# -- Persistent volume size for Weaviate data storage
44+
# -- Allocates disk space for vector indices and object data
45+
size: 32Gi
46+
47+
# -- Storage class name for dynamic volume provisioning
48+
# -- Uses cloud provider's managed storage class for reliability
49+
storageClassName: managed

0 commit comments

Comments
 (0)