This repository provides all necessary configurations and scripts to deploy the Weaviate vector database locally or on AWS EKS. The deployment includes support for the img2vec-neural and text2vec-openai models.
Weaviate is a scalable, open-source vector search engine that allows efficient similarity searches across various data types. This setup provides:
- Weaviate as the core vector database
- img2vec-neural for image vectorization
- text2vec-openai for text embeddings
- Persistent storage configurations
- Ingress and networking setup
- Install Docker
- Install kubectl
- Install AWS CLI (for AWS deployment)
- Install eksctl (for AWS EKS management)
The deploy-k8s script automates the deployment and update process for both local and AWS environments.
deploy-k8s deploy|update prod|dev- Deployment or Update: Installs or updates the Weaviate stack.
- Namespace Management: Ensures Kubernetes namespaces exist.
- Storage Setup: Configures persistent volume claims and storage classes.
- Secrets Handling: Manages credentials for Weaviate and external services.
- Ingress Configuration: Sets up networking for external access.
- Model Deployment: Deploys Weaviate along with
img2vec-neuralandtext2vec-openaimodels. - Verification: Ensures all services are running correctly.
- Deploy to production:
deploy-k8s deploy prod
- Update development environment:
deploy-k8s update dev
- Ensure the security groups and IAM roles are correctly configured for EKS.
- Update
k8s/[dev|prod]/config/secret-weaviate.yamlwith the correct credentials before applying. - Check Kubernetes pod statuses using:
kubectl get pods -n weaviate
This guide helps you efficiently set up and manage a Weaviate-based vector search solution with integrated AI models. 🚀