These documents are in beta and are WIP. Please reach out in case you face issues with these instructions.
Portkey is also available on the Azure Marketplace. You can deploy Portkey directly through your Azure console, which streamlines procurement and deployment processes.Deploy via Azure Marketplace →
Components and Sizing Recommendations
Component: AI Gateway
- Deployment: Deploy as a Docker container in your Kubernetes cluster using Helm Charts.
- Instance Type: Azure Standard B2ms instance, with at least 4GiB of memory and two vCPUs.
- High Availability: Deploy across multiple zones for high reliability.
Component: Logs Store (optional)
- Options: Azure Cosmos DB, Azure Blob Storage.
- Sizing: Each log document is ~10kb in size (uncompressed).
Component: Cache (Prompts, Configs & Providers)
- Options: Azure Cache for Redis or self-hosted Redis.
- Deployment: Deploy in the same VNet as the Portkey Gateway.
Deployment Steps
Prerequisites
Ensure the following tools are installed:- Docker
- Kubectl
- Helm (v3 or above)
Step 1: Clone the Portkey Repo Containing Helm Chart
Step 2: Update values.yaml for Helm
Modify thevalues.yaml
file in the Helm chart directory to include the Docker registry credentials and necessary environment variables. You can find the sample file at ./helm-chart/helm/enterprise/values.yaml
.
Image Credentials Configuration
LOG_STORE
can be:
s3
, for Azure Blob Storagemongo
, for Azure Cosmos DB
LOG_STORE
is mongo
, the following environment variables are needed:
LOG_STORE
is s3
, the following values are mandatory:
CACHE_STORE
is set as redis
, a Redis instance will also get deployed in the cluster. If you are using custom Redis, then leave it blank. The following values are mandatory:
REDIS_URL
defaults to redis://redis:6379
and REDIS_TLS_ENABLED
defaults to false
.
Notes on Analytics Store
This is hosted in Portkey’s control plane and these credentials will be shared by the Portkey team.
The following are mandatory and are shared by the Portkey Team.
Step 3: Deploy Using Helm Charts
Navigate to the directory containing your Helm chart and run the following command to deploy the application:_portkeyai_
namespace.
Step 4: Verify the Deployment
Check the status of your deployment to ensure everything is running correctly:Step 5: Port Forwarding (Optional)
To access the service over the internet, use port forwarding:_<pod-name>_
with the name of your pod.
Uninstalling the Deployment
If you need to remove the deployment, run:Network Configuration
Step 1: Allow Access to the Service
To make the service accessible from outside the cluster, define a Service of typeLoadBalancer
in your values.yaml
or Helm templates. Specify the desired port for external access.
_<desiredport>_
with the port number for external access with the port the application listens on internally.
Step 2: Ensure Outbound Network Access
By default, Kubernetes allows full outbound access, but if your cluster has NetworkPolicies that restrict egress, configure them to allow outbound traffic. Example NetworkPolicy for Outbound Access:Step 3: Configure Inbound Access for Portkey Control Plane
Ensure the Portkey control plane can access the service either over the internet or through VNet peering. Over the Internet:- Ensure the LoadBalancer security group allows inbound traffic on the specified port.
- Document the public IP/hostname and port for the control plane connection.
- Set up VNet peering between your Azure account and the control plane’s Azure account. Requires manual setup by Portkey Team.