Ingress Nginx
ingressNginx (Object) — Required
Description
The ingressNginx field contains the main configuration of the NGINX-based Ingress controller.
It allows enabling the controller deployment, choosing the exposure method, and defining associated public hosts.
Example
ingressNginx:
enabled: true
exposeMethod: Proxied
hosts:
- app.example.com
enabled (boolean) — Required
Description
Indicates whether the Ingress NGINX controller is enabled (true) or disabled (false).
When enabled, one or more NGINX pods are deployed to manage the cluster’s ingress rules.
Example
enabled: true
exposeMethod (string) — Required
Description
Determines the exposure method for the Ingress NGINX controller. This field accepts the following values:
| Value | Description |
|---|---|
Proxied | The controller is exposed through an internal proxy or an existing ingress. |
LoadBalancer | The NGINX service is exposed using a LoadBalancer Service. |
Example
exposeMethod: LoadBalancer
hosts (Array)
Description
Lists the domain names associated with the Ingress NGINX controller. These hosts define the public routes accessible from outside the cluster.
Example
hosts:
- app.example.com
- api.example.com
valuesOverride (Object) — Required
Description
The valuesOverride field allows overriding the Helm values of the Ingress NGINX deployment.
It is used to customize controller configuration (replica count, service type, resources, annotations, etc.).
Ingress NGINX
Ingress controller for HTTP/HTTPS exposure.
spec:
addons:
ingressNginx:
enabled: true
hosts:
- "app1.example.com"
- "app2.example.com"
- "*.api.example.com" # Wildcard support
valuesOverride: {}
Advanced Ingress NGINX Configuration
spec:
addons:
ingressNginx:
enabled: true
hosts:
- "production.company.com"
- "*.apps.company.com"
valuesOverride:
ingressNginx:
controller:
# Replication for high availability
replicaCount: 3
# Resources configuration
resources:
requests:
cpu: 100m
memory: 90Mi
limits:
cpu: 500m
memory: 500Mi
# LoadBalancer service configuration
service:
type: LoadBalancer
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
# Metrics
metrics:
enabled: true
serviceMonitor:
enabled: true
# SSL configuration
config:
ssl-protocols: "TLSv1.2 TLSv1.3"
ssl-ciphers: "ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256"
# Logging
enableSnippets: true
💡 Best Practices
- Prefer
Proxiedfor on-premises environments where access is managed through an external reverse proxy. - Define multiple
hostsfor multi-domain applications. - Use
valuesOverrideto adjust resources, replica count, and TLS configuration. - Configure annotations (
nginx.ingress.kubernetes.io/*) directly inIngressmanifests for better application-level control.