Gateway
The Gateway serves as the entry point to the server, handling and routing incoming traffic.
The Kubernetes Operator for Goma Gateway is not compatible with the current version of Goma Gateway. Please use Kubernetes native deployment method instead. See Installation for more details.
Installation Details
When a Gateway is installed, it automatically creates the following Kubernetes resources, all with the same name as the Gateway:
- Service
- ConfigMap
- Deployment
Service Ports
The service exposes the following ports:
- HTTP:
8080 - HTTPS:
8443
Exposing the Gateway Outside the Cluster
To expose your Gateway outside the cluster, you have the following options:
-
Create an Ingress resource:
Configure an Ingress to route external traffic to your Gateway. -
Change the Service Type:
Patch the Gateway’s service to change its type (e.g., toLoadBalancerorNodePort) for external accessibility.
A simple example of gateway
## Gateway
apiVersion: gomaproj.github.io/v1beta1
kind: Gateway
metadata:
name: gateway-sample
spec:
# Goma Gateway image (default: jkaninda/goma-gateway)
imageName: jkaninda/goma-gateway:latest # https://github.com/jkaninda/goma-gateway/releases
## Server Configuration
server:
tls: # Optional: Specify a Kubernetes TLS secret name
keys: []
# - tlsSecretName: tls-secret
# - tlsSecretName: tls-secret2
redis:
addr: '' # Optional: Redis host (e.g., redis:6379)
password: '' # Optional: Redis password
writeTimeout: 10 # Request write timeout in seconds
readTimeout: 15 # Request read timeout in seconds
idleTimeout: 30 # Idle timeout in seconds
logLevel: info # Logging level (e.g., info, debug, warn, error)
disableHealthCheckStatus: false # Enable or disable health check status
disableKeepAlive: false # Enable or disable KeepAlive connections
enableMetrics: true # Enable Prometheus metrics for monitoring
## Scaling and Resource Management
replicaCount: 1 # Number of initial replicas
resources:
limits:
cpu: 200m # Maximum CPU allocation
memory: 512Mi # Maximum memory allocation
requests:
cpu: 100m # Minimum CPU allocation
memory: 128Mi # Minimum memory allocation
autoScaling:
enabled: true # Enable Horizontal Pod Autoscaler
minReplicas: 2 # Minimum number of replicas
maxReplicas: 5 # Maximum number of replicas
targetCPUUtilizationPercentage: 80 # Target CPU utilization
targetMemoryUtilizationPercentage: 80 # Target memory utilization
## Node Affinity
affinity: {}