This chart deploys vector database services and document processing components for the RAG (Retrieval-Augmented Generation) pipeline. It provides multiple database backend options and automated document embedding capabilities as part of a RAG-LLM Validated Pattern.
Note: This chart is designed for testing and demonstration purposes, allowing easy comparison between different vector database providers. For production deployments, consider using dedicated operators and charts specifically tuned for your chosen database provider.
The chart deploys the following main components:
- Vector Database Provider - Configurable database backend for storing embeddings (deployment.yaml)
- Database Service - Service endpoint for database access (service.yaml)
- Vector Embedding Job - Processes documents and creates embeddings (vector-embed-job.yaml)
- External Secret - Manages database credentials via Vault integration (external-secret.yaml)
The chart supports the following configuration options via values.yaml
:
global.embeddingModel
: Hugging Face model for generating embeddings (default: "sentence-transformers/all-mpnet-base-v2")
Choose one of the supported vector database providers by setting enabled: true
:
Qdrant
providers.qdrant.enabled
: Enable Qdrant vector databaseproviders.qdrant.deployment.image
: Qdrant container imageproviders.qdrant.service.port
: Service port (default: 6333)providers.qdrant.jobEnv
: Environment variables for the embedding job
Redis
providers.redis.enabled
: Enable Redis with vector search capabilitiesproviders.redis.deployment.image
: Redis Stack container imageproviders.redis.service.port
: Service port (default: 6379)providers.redis.jobEnv
: Environment variables for the embedding job
PostgreSQL with pgvector
providers.pgvector.enabled
: Enable PostgreSQL with pgvector extensionproviders.pgvector.deployment.image
: PostgreSQL container imageproviders.pgvector.service.port
: Service port (default: 5432)providers.pgvector.secrets.vault.fields
: Database credentials managed by Vault
Elasticsearch
providers.elastic.enabled
: Enable Elasticsearch vector searchproviders.elastic.deployment.image
: Elasticsearch container imageproviders.elastic.service.port
: Service port (default: 9200)providers.elastic.secrets.vault.fields
: Database credentials managed by Vault
Microsoft SQL Server
providers.mssql.enabled
: Enable SQL Server with vector capabilities (default: true)providers.mssql.deployment.image
: SQL Server container imageproviders.mssql.service.port
: Service port (default: 1433)providers.mssql.secrets.vault.fields
: Database credentials managed by Vault
vectorEmbedJob.image
: Container image for the document processing jobvectorEmbedJob.backoffLimit
: Maximum retry attempts (default: 10)vectorEmbedJob.logLevel
: Logging verbosity (default: "info")vectorEmbedJob.repoSources
: Git repositories to process for documentsvectorEmbedJob.webSources
: Web URLs to scrape and embedvectorEmbedJob.chunking.size
: Text chunk size for embeddings (default: 1024)vectorEmbedJob.chunking.overlap
: Overlap between chunks (default: 40)
The following must be configured on your OpenShift cluster:
- Red Hat OpenShift AI or OpenDataHub for model serving capabilities
- Vault integration for secret management (configured by the Validated Pattern)
- Sufficient cluster resources to meet the configured CPU/memory requirements
- Network access to external document sources (for web scraping and Git repositories)
The Validated Pattern automatically configures Vault and creates the required database secrets. To enable this functionality for database providers that require authentication, you must:
- Copy
values-secret.yaml.template
from the root of this repository to$HOME/values-secret-$(basename $PWD).yaml
(outside of Git) - Update the secret values in the copied file for the database providers you plan to use
- The following providers require secret configuration:
- pgvector: Requires
user
,password
, anddb
fields - elastic: Requires
user
andpassword
fields - mssql: Requires
sapassword
field
- pgvector: Requires
Database credentials are then automatically generated and managed through:
- Vault secret storage and rotation
- External Secrets Operator integration
- Automatic connection string generation for each provider
You can see all available secret fields that need to be configured in values-secret.yaml.template
.
The embedding job processes documents from multiple sources:
- Git repositories with configurable glob patterns for file selection
- Default includes PDF documentation from the llm-on-openshift project
- Web pages scraped and processed for embedding
- Default includes comprehensive OpenShift AI documentation
- Automatic text chunking with configurable size and overlap
- Vector embedding generation using the specified Hugging Face model
- Storage in the selected vector database provider
The chart includes helper templates for generating database connection strings and managing provider-specific configurations across different database backends.
- Multiple database providers may be enabled simultaneously
- The vector embedding job runs once to populate the database with initial content
- Database persistence is configured with emptyDir volumes by default
- Resource requests and limits should be adjusted based on document volume and expected query load
- The embedding model can be changed, but requires reprocessing all documents
Autogenerated from chart metadata using helm-docs v1.14.2