Helm Chart
Deploy the ingress2gateway web UI to your Kubernetes cluster using Helm.
Prerequisites
Kubernetes 1.21+
Helm 3.0+
Installation
Add Helm Repository
helm repo add ingress2gateway https://pmady.github.io/ingress2gateway
helm repo update
Install Chart
# Basic installation
helm install ingress2gateway ingress2gateway/ingress2gateway
# With custom namespace
helm install ingress2gateway ingress2gateway/ingress2gateway -n tools --create-namespace
# With custom values
helm install ingress2gateway ingress2gateway/ingress2gateway -f values.yaml
Install from Source
git clone https://github.com/pmady/ingress2gateway.git
cd ingress2gateway
helm install ingress2gateway ./charts/ingress2gateway
Configuration
Basic Values
Parameter |
Description |
Default |
|---|---|---|
|
Number of replicas |
|
|
Image repository |
|
|
Image tag |
|
|
Image pull policy |
|
|
Service type |
|
|
Service port |
|
Ingress Configuration
Parameter |
Description |
Default |
|---|---|---|
|
Enable Ingress |
|
|
Ingress class |
|
|
Ingress annotations |
|
|
Ingress hosts |
|
|
Ingress TLS configuration |
|
Gateway API Configuration
Parameter |
Description |
Default |
|---|---|---|
|
Enable Gateway API |
|
|
Gateway class |
|
|
Gateway listeners |
|
|
HTTPRoute hostnames |
|
Resources
Parameter |
Description |
Default |
|---|---|---|
|
CPU limit |
|
|
Memory limit |
|
|
CPU request |
|
|
Memory request |
|
Application Configuration
Parameter |
Description |
Default |
|---|---|---|
|
Default provider preset |
|
|
Enable debug mode |
|
|
Log level |
|
Examples
With Ingress
# values-ingress.yaml
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
hosts:
- host: ingress2gateway.example.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: ingress2gateway-tls
hosts:
- ingress2gateway.example.com
helm install ingress2gateway ingress2gateway/ingress2gateway -f values-ingress.yaml
With Gateway API
# values-gateway.yaml
gateway:
enabled: true
className: istio
listeners:
- name: https
port: 443
protocol: HTTPS
httproute:
hostnames:
- ingress2gateway.example.com
helm install ingress2gateway ingress2gateway/ingress2gateway -f values-gateway.yaml
With Autoscaling
# values-autoscaling.yaml
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 80
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 200m
memory: 256Mi
Production Configuration
# values-production.yaml
replicaCount: 3
image:
pullPolicy: Always
podSecurityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 200m
memory: 256Mi
autoscaling:
enabled: true
minReplicas: 3
maxReplicas: 10
targetCPUUtilizationPercentage: 70
ingress:
enabled: true
className: nginx
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: letsencrypt-prod
hosts:
- host: ingress2gateway.company.com
paths:
- path: /
pathType: Prefix
tls:
- secretName: ingress2gateway-tls
hosts:
- ingress2gateway.company.com
config:
defaultProvider: istio
logLevel: info
Upgrading
# Update repository
helm repo update
# Upgrade release
helm upgrade ingress2gateway ingress2gateway/ingress2gateway
# Upgrade with new values
helm upgrade ingress2gateway ingress2gateway/ingress2gateway -f values.yaml
Uninstalling
helm uninstall ingress2gateway
Building the Docker Image
If you need to build the Docker image locally:
cd ingress2gateway
docker build -t ingress2gateway:local .
# Use local image in Helm
helm install ingress2gateway ./charts/ingress2gateway \
--set image.repository=ingress2gateway \
--set image.tag=local \
--set image.pullPolicy=Never
Troubleshooting
Pod Not Starting
Check pod logs:
kubectl logs -l app.kubernetes.io/name=ingress2gateway
Service Not Accessible
Verify service and endpoints:
kubectl get svc ingress2gateway
kubectl get endpoints ingress2gateway
Health Check Failing
The application exposes /health endpoint. Verify it’s responding:
kubectl port-forward svc/ingress2gateway 8000:8000
curl http://localhost:8000/health