Helm chart Installation steps
Step-by-step guide to deploying Patronus AI using Helm charts on Kubernetes
This guide walks you through deploying Patronus AI on Kubernetes using the official Helm charts.
Prerequisites
Before starting the deployment, ensure you have completed all prerequisites.
Required tools
- Kubernetes cluster version 1.23 or above
- Helm version 3.8.0 or above
- kubectl configured to access your cluster
- Docker credentials for accessing Patronus AI images
Step 1: Container registry setup
Using internal registry (recommended)
If you've set up an internal container registry as described in the Prerequisites, create a Kubernetes secret for your internal registry:
Replace <YOUR_INTERNAL_REGISTRY> with your registry URL (e.g., registry.mycompany.com), and provide the appropriate credentials for your internal registry.
Migrating images to your internal registry:
- Pull images from Docker Hub:
- Tag and push to your internal registry:
- Repeat for all required images (see Docker images reference below)
Using Patronus registry directly
If using the Patronus registry directly (not recommended for production), create a secret with Patronus credentials:
Verify registry access
You can verify your registry credentials by pulling an image locally:
If successful, you should see the image listed:
Step 2: Add Patronus Helm repository
Add the official Patronus AI Helm repository to your Helm client:
Verify the repository was added successfully:
Expected output:
Step 3: Configure values.yaml
Obtain example configuration
Request example values.yaml configuration files from the Patronus AI team. These files contain pre-configured settings for different deployment scenarios.
Required configuration values
Update the following values in your values.yaml file:
Global configuration
Post-installation configuration
Networking and ingress
For detailed ingress configuration with different Identity Providers, see:
- Deployment in AWS with Amazon Cognito
- Deployment in Azure with Microsoft Entra ID
- Deployment in GCP with Google Identity
- Common deployment options for cert-manager and ExternalDNS
Configuration reference
| Parameter | Description | Example | 
|---|---|---|
| <YOUR_INTERNAL_REGISTRY> | Internal container registry URL | registry.mycompany.comorharbor.example.com | 
| <GLOBAL_IMAGE_TAG> | Container image version/tag | 2025-02-13-12-40 | 
| <GLOBAL_ADMIN_SECRET> | Admin secret key (keep secure) | Generated string | 
| <GLOBAL_POSTGRESQL_PASSWORD> | PostgreSQL password | Secure random password | 
| <GLOBAL_REDIS_PASSWORD> | Redis password | Secure random password | 
| <POST_INSTALL_CUSTOMER_NAME> | Your organization name | acme-corp | 
| <PATRONUS_APP_HOST> | Frontend application URL | app.example.com | 
| <PATRONUS_BACKEND_API_HOST> | Backend API URL | api.example.com | 
| <PATRONUS_ADMIN_PORTAL_HOST> | Admin portal URL | admin.example.com | 
| <PATRONUS_DOMAIN> | Base domain | example.com | 
Generate strong, unique passwords for all services. Use secret management solutions like AWS Secrets Manager, Azure Key Vault, or Google Secret Manager in production.
Step 4: Verify Kubernetes connectivity
Before deploying, verify you can connect to your Kubernetes cluster:
Create the namespace for Patronus AI if it doesn't exist:
Step 5: Deploy Patronus stack
Install the Patronus AI stack using Helm:
Command options explained
- upgrade: Upgrades the release if it exists, or installs it if it doesn't
- --install: Install the release if it doesn't already exist
- --create-namespace: Create the namespace if it doesn't exist
- --namespace: Kubernetes namespace to deploy into
- --values: Path to your customized values.yaml file
Expected output
If successful, you should see:
Step 6: Validate deployment
Check pod status
Monitor the deployment progress:
Wait for all pods to reach Running status. This may take several minutes.
Check ingress
If you configured ingress controllers:
Verify logs
First, check the post-installation job to ensure database migrations and seeding completed successfully:
The post-install job runs database migrations and seeds initial data. If this job fails, the application will not function correctly. Review the complete logs to identify any migration or seeding issues.
Check the logs of core services for any errors:
Step 7: Post-deployment configuration
Access the application
Depending on your ingress configuration, access the Patronus AI application at:
- Frontend: https://<PATRONUS_APP_HOST>
- Admin Portal: https://<PATRONUS_ADMIN_PORTAL_HOST>
- API: https://<PATRONUS_BACKEND_API_HOST>
Configure accounts and authentication
Follow the Accounts and Authentication guide to:
- Create your first account
- Configure role mappings (for IdP)
- Set up user authentication
Troubleshooting
Pods not starting
Check pod events and logs:
Common issues:
- Image pull errors: Verify the regcredsecret is created correctly
- Pending pods: Check node resources and scheduling constraints
- CrashLoopBackOff: Review pod logs for application errors
Database connection errors
Verify PostgreSQL is running and accessible:
Check database credentials in your values.yaml match the configuration.
Ingress not working
Verify ingress controller is installed and running:
Check ingress annotations and TLS configuration.
Upgrading
To upgrade to a newer version of Patronus AI:
- Update the Helm repository:
- Check available versions:
- 
Update your values.yamlwith the new image tag
- 
Run the upgrade: 
Uninstalling
To completely remove Patronus AI:
This will delete all Patronus AI resources. Database data in persistent volumes may be retained depending on your retention policy.
Additional resources
Docker images reference
Private images (require authentication)
- patronus-backend
- patronus-migrate
- patronus-evaluation-api
- patronus-accounts-api
- patronus-app
- patronus-admin-portal
- patronus-trace-insights-api
- Evaluator images:
- evaluator-sdk-judge
- evaluator-sdk-judge-mm
- evaluator-sdk-hallucination
- evaluator-sdk-pii
- evaluator-sdk-toxicity
- evaluator-sdk-glider
- evaluator-sdk-lynx
- evaluator-sdk-answer-relevance
- evaluator-sdk-context-relevance
- evaluator-sdk-context-sufficiency
- And more...
 
Public images
- Hasura GraphQL Engine: hasura/graphql-engine:v2.26.x
- Vouch Proxy: quay.io/vouch/vouch-proxy:0.39
- PostgreSQL: bitnamilegacy/postgresql:17.x
- Redis: bitnamilegacy/redis:7.2.x
- NGINX: bitnamilegacy/nginx:1.27.x
Next steps
Once deployment is complete, proceed to:
- Accounts and Authentication - Set up user accounts and access control
- Model Installation - Deploy containerized models (optional)
- Explore deployment options:
