- SAS Retrieval Agent Manager
SAS Retrieval Agent Manager is a comprehensive solution for managing agents or interacting directly with LLMs in a RAG or non-RAG context. This documentation provides setup and deployment instructions for multiple platforms, such as Open-Source Kubernetes (k8s), Azure Kubernetes Service (AKS), and Amazon Elastic Kubernetes Service (EKS).
Platform | Description |
---|---|
Kubernetes | Open-Source Kubernetes deployment |
Azure | Azure Kubernetes Service (AKS) deployment |
AWS | Amazon Elastic Kubernetes Service (EKS) deployment |
All deployment types require:
- Administrative access to target infrastructure
- Database admin privileges for PostgreSQL initialization
- Access to SAS container registry credentials
- Valid SAS Retrieval Agent Manager license
- Ability to deploy resources in the
retagentmgr
namespace
Required Tools:
- kubectl
- Helm
- Docker
- Platform-specific CLI tools (Azure CLI, AWS CLI, etc.)
Choose your preferred deployment platform and follow the cluster setup guide:
Platform | Kubernetes Version | Setup Guide |
---|---|---|
Kubernetes | 1.30.10 | Getting Started |
Azure | 1.32 | Getting Started |
AWS | 1.32 | Getting Started |
SAS Retrieval Agent Manager automatically initializes the required databases during deployment unless specified otherwise. This requires providing database admin credentials in your RAM values file.
If you prefer to set up databases manually or need to avoid giving admin-level access to the SAS Retrieval Agent Manager application, see the Manual Database Setup Guide.
To use manual database setup, set these values to false
in your RAM Values file:
initializeDb
createUsers
createSchema
createDB
You can use SAS Mirror Manager to access the required RAM images. There are two ways of accessing these images using SAS Mirror Manager.
-
Direct Download: The user only needs to retrieve the container registry credentials and create the relative secret. Kubernetes then automatically pulls the RAM images directly from cr.sas.com using the SAS Docker credentials.
-
Mirrored Registry Download: Create a mirror registry to pull the RAM images from.
Both methods will require the following steps initially:
-
Use the link in your Software Order Email to go the specific page at my.sas.com for your order.
-
Click the Downloads tab.
-
Select both the License and Certificates rows in the download table.
-
Click the Download button to download the License and Certificates.
Use the following command to retrieve docker login credentials used for creating a secret for pulling the necessary charts for SAS Retrieval Agent Manager:
mirrormgr list remote docker login \
--deployment-data ~path-to-certs-zip-file
Example Output:
docker login -u 1ABC23 -p 'deFG^hiJkLmn!o456p7q8R{stuVwXy|Z' cr.sas.com
After getting the login information you can create a secret that is used to pull from the SAS Container Registry using the following command:
# The correct namespace to store all SAS RAM Resources
kubectl create ns retagentmgr
# Generate the kubernetes file to apply the secret
kubectl create secret docker-registry -n retagentmgr cr-sas-secret \
--docker-server=cr.sas.com \
--docker-username='username-from-previous-command' \
--docker-password='password-from-previous-command' \
--dry-run=client -o yaml > cr-sas-secret.yaml
# Apply the secret in the retagentmgr namespace
kubectl apply -f cr-sas-secret.yaml -n retagentmgr
After creating the secret, you should be able to pull all RAM images needed from cr.sas.com with the default settings.
Use the following command to populate a mirror registry with the necessary charts for SAS Retrieval Agent Manager:
mirrormgr mirror registry \
--destination myregistry.mydomain.com/my-namespace \
--username myregistryuser \
--password myregistrypassword \
--deployment-data ~path-to-certs-zip-file
Edit your RAM Values file (See Examples here) to pull from that registry instead of the default, cr.sas.com
registry.
Example Usage:
# ====================
# GLOBAL CONFIGURATION
# ====================
global:
image:
repo:
# -- Base container registry URL
base: 'myregistry.mydomain.com/my-namespace'
Note: You can find more information on how to use SAS mirror manager in the Viya Documentation.
For migrating a license from a renewal to RAM, use the following steps:
-
Use the link in your Software License Renewal Confirmation email to go the specific page at my.sas.com for your order.
-
Click the Downloads tab.
-
Select both the License and Certificates rows in the download table.
-
Click the Download button to download the License and Certificates.
-
Update your license.jwt in the license-secret secret found in the
retagentmgr
namespace with the new license using the following command:kubectl edit secret license-secret -n retagentmgr
. -
Restart the
sas-retrieval-agent-manager-api
pod in your RAM deployment. -
Restart your agents via the UI.
The RAM package that you receive does not include some images that the RAM Helm chart is dependent on. This is only an issue if you are mirroring the RAM images to a registry before you deploy.
Before you install RAM using a mirror registry, you should mirror the images that the RAM Helm chart depends on first. This can be done by using the mirror registry dependency script.
After you have access to the Kubernetes cluster, you must install the necessary dependencies for SAS Retrieval Agent Manager to function as expected.
Dependency | Version | ||
---|---|---|---|
cert-manager, trust-manager | v1.18.2, v0.18.0 | example | cert-manager docs, trust-manager docs |
Linkerd | 2.17 (edge-24.11.8) | example | docs |
Ingress-Nginx | 4.12.3 | example | docs |
Kueue | 0.12.1 | example | docs |
Note: order of installation matters for some dependencies, namely:
Certificate management components (cert-manager and trust-manager) must be installed first.
The service mesh (Linkerd) must be installed second, as it depends on the certificates and issuers created during the first step.
Other dependencies or optional components can be installed in any order after that. They do not have hard dependencies on each other, but do require the previous two steps to be completed to ensure internal traffic is properly secured. 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.
SAS has partnered with Weaviate and supports it as a vector database alternative to PGVector storage. This installation is not required but is compatible with RAM.
Component | Version | Example Values File | Installation Instructions |
---|---|---|---|
Weaviate | v17.3.3 | weaviate.yaml | instructions |
After you have configured a Kubernetes cluster and PostgreSQL 15 database, use the following code to deploy SAS Retrieval Agent Manager on your platform:
Customize your RAM Values file based on the deployment template for your specific platform.
Platform | RAM Values Examples |
---|---|
Azure | Example |
AWS | Example |
Bare-Metal | Example |
helm install my-sas-retrieval-agent-manager oci://ghcr.io/sassoftware/sas-retrieval-agent-manager-deployment/sas-retrieval-agent-manager \
--version <RAM Version> \
--values <RAM Values file> \
-n retagentmgr \
--create-namespace
Note: Use the package section of this repository to find an installable version. Also, if something fails and you need to redeploy, you'll have to run kubectl delete ns retagentmgr
first.
kubectl get pods -n retagentmgr
To backup and restore the data you use RAM for, visit the backup and restore page.
Increasing Vectorization or Embedding PVC Sizes:
Before you deploy RAM, you will need to set the Vectorization Hub PVC size equal to the amount of gigabytes purchased in your order. If you purchase more storage afterwards, you will have to upgrade the vectorization hub PVC. For the embedding-pvc or vhub-pvc, you can change the sizes of them in the values file with the following fields:
Vectorization Hub PVC:
filebrowser:
rootDir:
pvc:
size: <total_gigabytes_purchased> # ex: 20Gi
Embedding PVC (RAM Version 2025.9.60+):
global:
configuration:
embedding:
pvc:
size: <desired_pvc_size> # ex: 20Gi
Once you override the desired fields in your values file, upgrade your RAM installation with the following command to apply the changes:
helm upgrade my-sas-retrieval-agent-manager oci://ghcr.io/sassoftware/sas-retrieval-agent-manager-deployment/sas-retrieval-agent-manager \
--version <RAM Version> \
--values <RAM Values file> \
-n retagentmgr
Note: Once you increase a PVC size, you cannot decrease it with an upgrade. You will have to uninstall RAM completely and reinstall from scratch to lower it at that point.
Database Connection Issues:
- Check firewall rules and security groups
- Validate database credentials
- Ensure bidirectional connectivity between cluster and database
Ingress Issues:
- Verify TLS certificate validity
- Check that controller references correct certificate
- Confirm DNS resolution
- If on Azure, verify that you have
10.0.0.0/8
in your nginx loadBalancerSourceRange list for intra-cluster services
API Server or PostgREST Not Responding on login:
- Run the
sas-retagentmgr-fetch-keycloak-certs
cronjob - Delete API, PostgREST, and Oauth-proxy pods and let them spin back up
Unauthorized when adding a source:
- Delete Oauth-proxy and PostgREST pods and let them spin back up
# Get detailed pod information
kubectl describe pod <pod-name> -n retagentmgr
# Check events in namespace
kubectl get events -n retagentmgr --sort-by='.lastTimestamp'
# View resource status
kubectl get all -n retagentmgr
# Check logs
kubectl logs <pod-name> -n retagentmgr
We welcome your contributions! Please read CONTRIBUTING.md for details on how to submit contributions to this project.
This project is licensed under the Apache 2.0 License.