Issue
The documentation for the RAG backend infrastructure on Azure Kubernetes Service (AKS) and FluxCD GitOps misled users into believing the system was fully operational. Despite the infrastructure being deployed and operational (38/38 resources), no actual RAG functionality was available due to missing components, including:
- The MCP server was not deployed, with no Docker images built or Kubernetes manifests configured.
- ChromaDB, the vector database, was not deployed.
- The Redis pod failed to start due to an
ImagePullBackOfferror. - The tool integrations for search, indexing, and analysis were only skeleton code, with no runtime deployment or testing.
- FluxCD kustomizations were blocked, preventing the application from deploying.
As a result, users attempting to follow the documentation would encounter errors such as missing MCP server pods, failing Redis pods, and connection failures to ChromaDB and other tools.
Culprit
The primary causes of this issue were:
- Missing Deployment Pipeline: While the infrastructure was managed via FluxCD GitOps, there was no CI/CD pipeline to build and push the MCP server Docker image to Azure Container Registry (ACR).
- Unbuilt Components: The RAG backend code existed as class structures and method signatures but was never containerized or configured for Kubernetes deployment.
- Documentation Misalignment: The guides and documentation assumed a fully operational RAG backend, despite it not being deployed or tested.
Solution
To address these issues, the following steps were implemented:
-
Unblock Redis: Corrected the image pull error by specifying the correct Redis image tag and restarting the deployment.
-
Deploy ChromaDB: Created a StatefulSet manifest for ChromaDB to deploy the vector database in the Kubernetes cluster.
-
Build and Deploy MCP Server: Created a Dockerfile for the MCP server, built the Docker image, and pushed it to Azure Container Registry. Kubernetes manifests were then created to deploy the MCP server in the cluster.
-
Implement CI/CD Pipeline: Added a GitHub Actions workflow to automate the building and deployment of the MCP server Docker image.
-
Update Documentation: Revised the documentation to clarify the current state of the system. Added a new deployment guide for the RAG backend and updated existing guides to reflect the actual operational status.
-
Validation Steps: Implemented tests to verify the integration of RAG tools with ChromaDB and Redis, and conducted end-to-end testing to ensure the system was functioning correctly.
These changes ensured that the RAG backend was properly deployed, operational, and aligned with the documentation, providing users with a functional system as described.