Installation
This guide walks you through installing FastGateway in your Kubernetes cluster.
Prerequisites
Before installing FastGateway, ensure you have the following:
- Kubernetes version 1.24 or later
- kubectl configured to communicate with your cluster
- Helm 3 installed on your local machine
- Envoy Gateway installed in your cluster
- PostgreSQL database
Install Envoy Gateway
FastGateway uses Envoy Gateway as the underlying data plane. Install it with the Backend extension API enabled:
envoyGateway:
extensionApis:
enableBackend: true
helm repo add envoy-gateway https://charts.envoyproxy.io
helm repo update
helm install envoy-gateway envoy-gateway/gateway-helm \
--version v1.7.0 \
--namespace envoy-gateway-system \
--create-namespace \
-f envoy-gateway-values.yaml
Wait for Envoy Gateway to be ready:
kubectl wait --timeout=5m -n envoy-gateway-system \
deployment/envoy-gateway --for=condition=Available
If you plan to use rate limiting, Envoy Gateway requires a Redis backend. Add the following to your Envoy Gateway values:
envoyGateway:
extensionApis:
enableBackend: true
rateLimit:
backend:
type: Redis
redis:
url: "<redis-host>:6379"
PostgreSQL Database
FastGateway requires a PostgreSQL database. We recommend managing your own database.
You can use any PostgreSQL provider:
- Self-managed PostgreSQL on Kubernetes (e.g., CloudNativePG, Zalando Postgres Operator)
- Cloud-managed databases (e.g., AWS RDS, GCP Cloud SQL, Azure Database for PostgreSQL)
- Any PostgreSQL 14+ compatible database
Create a Kubernetes secret with your database credentials:
kubectl create namespace fastgateway-system
kubectl create secret generic fastgateway-database \
--from-literal=username=<db-username> \
--from-literal=password=<db-password> \
--from-literal=database=<db-name> \
-n fastgateway-system
For quick testing, the Helm chart includes an internal PostgreSQL option (database.type: internal) that deploys a single-replica PostgreSQL StatefulSet. This is not recommended for production — use an externally managed database instead.
FastGateway Secrets
FastGateway requires a Kubernetes secret containing the following keys:
jwt-secret— Used to sign and verify JWT tokens for user sessionsencryption-key— Used to encrypt sensitive data at restadmin-password— The initial password for the default admin user
Create the secret:
kubectl create secret generic fastgateway-secrets \
--from-literal=jwt-secret=$(openssl rand -base64 32) \
--from-literal=encryption-key=$(openssl rand -base64 32) \
--from-literal=admin-password=<your-admin-password> \
-n fastgateway-system
Install FastGateway
Add the FastGateway Helm repository:
helm repo add fastgateway https://charts.fastgateway.dev
helm repo update
Install FastGateway with your external database:
helm install fastgateway fastgateway/fastgateway \
--namespace fastgateway-system \
--set secrets.existingSecret=fastgateway-secrets \
--set database.type=external \
--set database.external.host=<postgres-host> \
--set database.external.port=5432 \
--set database.external.existingSecret=fastgateway-database
Or for quick testing with the internal database:
helm install fastgateway fastgateway/fastgateway \
--namespace fastgateway-system \
--set secrets.existingSecret=fastgateway-secrets
Verify Installation
Check that all FastGateway pods are running:
kubectl get pods -n fastgateway-system
You should see output similar to:
NAME READY STATUS RESTARTS AGE
fastgateway-backend-xxx-xxx 1/1 Running 0 1m
fastgateway-frontend-xxx-xxx 1/1 Running 0 1m
Next Steps
Once all pods are running, proceed to Accessing the UI to start using FastGateway.