A Helm chart for FastGateway - Kubernetes Gateway API Management Platform
Before installing the chart, create the required secrets in your namespace:
# Application secrets
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 <namespace>
# Database credentials
kubectl create secret generic fastgateway-database \
--from-literal=username=<db-username> \
--from-literal=password=<db-password> \
--from-literal=database=<db-name> \
-n <namespace>
helm install fastgateway ./chart \
--set secrets.existingSecret=fastgateway-secrets \
--set database.existingSecret=fastgateway-database \
--set database.host=<postgres-host> \
-n <namespace>
# Port-forward frontend
kubectl port-forward svc/fastgateway-frontend 3001:3001 -n <namespace>
# Open http://localhost:3001
apiVersion: v1
kind: Secret
metadata:
name: fastgateway-secrets
type: Opaque
stringData:
jwt-secret: <min-32-characters>
encryption-key: <32-bytes-base64>
admin-password: <admin-password>
apiVersion: v1
kind: Secret
metadata:
name: fastgateway-database
type: Opaque
stringData:
username: <db-username>
password: <db-password>
database: <db-name>
The chart creates a ClusterRole with permissions for:
| Key | Type | Default | Description |
|---|---|---|---|
| backend.affinity | object | {} |
|
| backend.autoscaling.enabled | bool | false |
|
| backend.autoscaling.maxReplicas | int | 10 |
|
| backend.autoscaling.minReplicas | int | 1 |
|
| backend.autoscaling.targetCPUUtilizationPercentage | int | 80 |
|
| backend.containerSecurityContext.allowPrivilegeEscalation | bool | false |
|
| backend.containerSecurityContext.capabilities.drop[0] | string | "ALL" |
|
| backend.containerSecurityContext.readOnlyRootFilesystem | bool | true |
|
| backend.image.pullPolicy | string | "IfNotPresent" |
|
| backend.image.repository | string | "fastgateway/backend" |
|
| backend.image.tag | string | "latest" |
|
| backend.nodeSelector | object | {} |
|
| backend.podAnnotations | object | {} |
|
| backend.podDisruptionBudget.enabled | bool | false |
|
| backend.podDisruptionBudget.minAvailable | int | 1 |
|
| backend.replicaCount | int | 1 |
|
| backend.resources.limits.cpu | string | "500m" |
|
| backend.resources.limits.memory | string | "512Mi" |
|
| backend.resources.requests.cpu | string | "100m" |
|
| backend.resources.requests.memory | string | "128Mi" |
|
| backend.securityContext.runAsNonRoot | bool | true |
|
| backend.securityContext.runAsUser | int | 1000 |
|
| backend.service.port | int | 8081 |
|
| backend.service.type | string | "ClusterIP" |
|
| backend.tolerations | list | [] |
|
| config.adminEmail | string | "admin@fastgateway.local" |
|
| config.adminUsername | string | "admin" |
|
| config.logLevel | string | "info" |
|
| database.existingSecret | string | "" |
|
| database.host | string | "" |
|
| database.port | int | 5432 |
|
| database.sslcert | string | "" |
|
| database.sslkey | string | "" |
|
| database.sslmode | string | "" |
|
| database.sslrootcert | string | "" |
|
| frontend.affinity | object | {} |
|
| frontend.autoscaling.enabled | bool | false |
|
| frontend.autoscaling.maxReplicas | int | 5 |
|
| frontend.autoscaling.minReplicas | int | 1 |
|
| frontend.autoscaling.targetCPUUtilizationPercentage | int | 80 |
|
| frontend.containerSecurityContext.allowPrivilegeEscalation | bool | false |
|
| frontend.containerSecurityContext.capabilities.drop[0] | string | "ALL" |
|
| frontend.containerSecurityContext.readOnlyRootFilesystem | bool | false |
|
| frontend.image.pullPolicy | string | "IfNotPresent" |
|
| frontend.image.repository | string | "fastgateway/frontend" |
|
| frontend.image.tag | string | "latest" |
|
| frontend.nodeSelector | object | {} |
|
| frontend.podAnnotations | object | {} |
|
| frontend.podDisruptionBudget.enabled | bool | false |
|
| frontend.podDisruptionBudget.minAvailable | int | 1 |
|
| frontend.replicaCount | int | 1 |
|
| frontend.resources.limits.cpu | string | "200m" |
|
| frontend.resources.limits.memory | string | "256Mi" |
|
| frontend.resources.requests.cpu | string | "50m" |
|
| frontend.resources.requests.memory | string | "64Mi" |
|
| frontend.securityContext.runAsNonRoot | bool | true |
|
| frontend.securityContext.runAsUser | int | 1001 |
|
| frontend.service.port | int | 3001 |
|
| frontend.service.type | string | "ClusterIP" |
|
| frontend.tolerations | list | [] |
|
| global.imagePullSecrets | list | [] |
|
| secrets.existingSecret | string | "" |
|
| serviceAccount.annotations | object | {} |
|
| serviceAccount.create | bool | true |
|
| serviceAccount.name | string | "" |
|
| waf.image | string | "ghcr.io/corazawaf/coraza-proxy-wasm" |
|
| waf.sha256 | string | "" |
|
| waf.tag | string | "0.6.0" |
helm uninstall fastgateway -n <namespace>
| Name | Url | |
|---|---|---|
| zufardhiyaulhaq |