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.