Skip to main content
Version: 2.0.2

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:

ValueDescription
ProxiedThe controller is exposed through an internal proxy or an existing ingress.
LoadBalancerThe 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 Proxied for on-premises environments where access is managed through an external reverse proxy.
  • Define multiple hosts for multi-domain applications.
  • Use valuesOverride to adjust resources, replica count, and TLS configuration.
  • Configure annotations (nginx.ingress.kubernetes.io/*) directly in Ingress manifests for better application-level control.