blob: 68f8b5864dbb22983917345b6f3bb768664a914c [file] [log] [blame]
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001## nginx configuration
2## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/index.md
3##
4
5## Overrides for generated resource names
6# See templates/_helpers.tpl
7# nameOverride:
8# fullnameOverride:
9
Mohammed Naser65cda132024-05-02 14:34:08 -040010# -- Override the deployment namespace; defaults to .Release.Namespace
11namespaceOverride: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -050012## Labels to apply to all resources
13##
14commonLabels: {}
15# scmhash: abc123
16# myLabel: aakkmd
17
18controller:
19 name: controller
Mohammed Naser65cda132024-05-02 14:34:08 -040020 enableAnnotationValidations: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -050021 image:
Mohammed Naser65cda132024-05-02 14:34:08 -040022 ## Keep false as default for now!
23 chroot: false
24 registry: registry.k8s.io
Mohammed Naser9ad0d462023-01-15 20:36:37 -050025 image: ingress-nginx/controller
26 ## for backwards compatibility consider setting the full image url via the repository value below
27 ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
28 ## repository:
Mohammed Naser7d1623e2024-06-17 09:12:39 -040029 tag: "v1.10.1"
30 digest: sha256:e24f39d3eed6bcc239a56f20098878845f62baa34b9f2be2fd2c38ce9fb0f29e
31 digestChroot: sha256:c155954116b397163c88afcb3252462771bd7867017e8a17623e83601bab7ac7
Mohammed Naser9ad0d462023-01-15 20:36:37 -050032 pullPolicy: IfNotPresent
Mohammed Naser65cda132024-05-02 14:34:08 -040033 runAsNonRoot: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -050034 # www-data -> uid 101
35 runAsUser: 101
Mohammed Naser65cda132024-05-02 14:34:08 -040036 allowPrivilegeEscalation: false
37 seccompProfile:
38 type: RuntimeDefault
39 readOnlyRootFilesystem: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -050040 # -- Use an existing PSP instead of creating one
41 existingPsp: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -050042 # -- Configures the controller container name
43 containerName: controller
Mohammed Naser9ad0d462023-01-15 20:36:37 -050044 # -- Configures the ports that the nginx-controller listens on
45 containerPort:
46 http: 80
47 https: 443
Mohammed Naser9ad0d462023-01-15 20:36:37 -050048 # -- Will add custom configuration options to Nginx https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/
49 config: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050050 # -- Annotations to be added to the controller config configuration configmap.
51 configAnnotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050052 # -- Will add custom headers before sending traffic to backends according to https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/custom-headers
53 proxySetHeaders: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050054 # -- Will add custom headers before sending response traffic to the client according to: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#add-headers
55 addHeaders: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050056 # -- Optionally customize the pod dnsConfig.
57 dnsConfig: {}
Mohammed Naser65cda132024-05-02 14:34:08 -040058 # -- Optionally customize the pod hostAliases.
59 hostAliases: []
60 # - ip: 127.0.0.1
61 # hostnames:
62 # - foo.local
63 # - bar.local
64 # - ip: 10.1.2.3
65 # hostnames:
66 # - foo.remote
67 # - bar.remote
Mohammed Naser9ad0d462023-01-15 20:36:37 -050068 # -- Optionally customize the pod hostname.
69 hostname: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -050070 # -- Optionally change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true'.
71 # By default, while using host network, name resolution uses the host's DNS. If you wish nginx-controller
72 # to keep resolving names inside the k8s network, use ClusterFirstWithHostNet.
73 dnsPolicy: ClusterFirst
Mohammed Naser9ad0d462023-01-15 20:36:37 -050074 # -- Bare-metal considerations via the host network https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#via-the-host-network
Mohammed Naser65cda132024-05-02 14:34:08 -040075 # Ingress status was blank because there is no Service exposing the Ingress-Nginx Controller in a configuration using the host network, the default --publish-service flag used in standard cloud setups does not apply
Mohammed Naser9ad0d462023-01-15 20:36:37 -050076 reportNodeInternalIp: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -050077 # -- Process Ingress objects without ingressClass annotation/ingressClassName field
78 # Overrides value for --watch-ingress-without-class flag of the controller binary
79 # Defaults to false
80 watchIngressWithoutClass: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -050081 # -- Process IngressClass per name (additionally as per spec.controller).
82 ingressClassByName: false
Mohammed Naser65cda132024-05-02 14:34:08 -040083 # -- This configuration enables Topology Aware Routing feature, used together with service annotation service.kubernetes.io/topology-mode="auto"
84 # Defaults to false
85 enableTopologyAwareRouting: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -050086 # -- This configuration defines if Ingress Controller should allow users to set
87 # their own *-snippet annotations, otherwise this is forbidden / dropped
88 # when users add those annotations.
89 # Global snippets in ConfigMap are still respected
Mohammed Naser65cda132024-05-02 14:34:08 -040090 allowSnippetAnnotations: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -050091 # -- Required for use with CNI based kubernetes installations (such as ones set up by kubeadm),
92 # since CNI and hostport don't mix yet. Can be deprecated once https://github.com/kubernetes/kubernetes/issues/23920
93 # is merged
94 hostNetwork: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -050095 ## Use host ports 80 and 443
96 ## Disabled by default
97 hostPort:
98 # -- Enable 'hostPort' or not
99 enabled: false
100 ports:
101 # -- 'hostPort' http port
102 http: 80
103 # -- 'hostPort' https port
104 https: 443
Mohammed Naser65cda132024-05-02 14:34:08 -0400105 # NetworkPolicy for controller component.
106 networkPolicy:
107 # -- Enable 'networkPolicy' or not
108 enabled: false
109 # -- Election ID to use for status update, by default it uses the controller name combined with a suffix of 'leader'
110 electionID: ""
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400111 # -- This section refers to the creation of the IngressClass resource.
112 # IngressClasses are immutable and cannot be changed after creation.
113 # We do not support namespaced IngressClasses, yet, so a ClusterRole and a ClusterRoleBinding is required.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500114 ingressClassResource:
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400115 # -- Name of the IngressClass
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500116 name: nginx
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400117 # -- Create the IngressClass or not
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500118 enabled: true
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400119 # -- If true, Ingresses without `ingressClassName` get assigned to this IngressClass on creation.
120 # Ingress creation gets rejected if there are multiple default IngressClasses.
121 # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#default-ingress-class
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500122 default: false
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400123 # -- Controller of the IngressClass. An Ingress Controller looks for IngressClasses it should reconcile by this value.
124 # This value is also being set as the `--controller-class` argument of this Ingress Controller.
125 # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class
126 controllerValue: k8s.io/ingress-nginx
127 # -- A link to a custom resource containing additional configuration for the controller.
128 # This is optional if the controller consuming this IngressClass does not require additional parameters.
129 # Ref: https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-class
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500130 parameters: {}
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400131 # parameters:
132 # apiGroup: k8s.example.com
133 # kind: IngressParameters
134 # name: external-lb
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500135 # -- For backwards compatibility with ingress.class annotation, use ingressClass.
136 # Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation
137 ingressClass: nginx
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500138 # -- Labels to add to the pod container metadata
139 podLabels: {}
140 # key: value
141
Mohammed Naser65cda132024-05-02 14:34:08 -0400142 # -- Security context for controller pods
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500143 podSecurityContext: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400144 # -- sysctls for controller pods
145 ## Ref: https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500146 sysctls: {}
147 # sysctls:
148 # "net.core.somaxconn": "8192"
Mohammed Naser65cda132024-05-02 14:34:08 -0400149 # -- Security context for controller containers
150 containerSecurityContext: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500151 # -- Allows customization of the source of the IP address or FQDN to report
152 # in the ingress status field. By default, it reads the information provided
153 # by the service. If disable, the status field reports the IP address of the
154 # node or nodes where an ingress controller pod is running.
155 publishService:
156 # -- Enable 'publishService' or not
157 enabled: true
158 # -- Allows overriding of the publish service to bind to
159 # Must be <namespace>/<service_name>
160 pathOverride: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500161 # Limit the scope of the controller to a specific namespace
162 scope:
163 # -- Enable 'scope' or not
164 enabled: false
165 # -- Namespace to limit the controller to; defaults to $(POD_NAMESPACE)
166 namespace: ""
167 # -- When scope.enabled == false, instead of watching all namespaces, we watching namespaces whose labels
168 # only match with namespaceSelector. Format like foo=bar. Defaults to empty, means watching all namespaces.
169 namespaceSelector: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500170 # -- Allows customization of the configmap / nginx-configmap namespace; defaults to $(POD_NAMESPACE)
171 configMapNamespace: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500172 tcp:
173 # -- Allows customization of the tcp-services-configmap; defaults to $(POD_NAMESPACE)
174 configMapNamespace: ""
175 # -- Annotations to be added to the tcp config configmap
176 annotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500177 udp:
178 # -- Allows customization of the udp-services-configmap; defaults to $(POD_NAMESPACE)
179 configMapNamespace: ""
180 # -- Annotations to be added to the udp config configmap
181 annotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500182 # -- Maxmind license key to download GeoLite2 Databases.
183 ## https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases
184 maxmindLicenseKey: ""
Mohammed Naser65cda132024-05-02 14:34:08 -0400185 # -- Additional command line arguments to pass to Ingress-Nginx Controller
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500186 # E.g. to specify the default SSL certificate you can use
187 extraArgs: {}
188 ## extraArgs:
189 ## default-ssl-certificate: "<namespace>/<secret_name>"
Mohammed Naser65cda132024-05-02 14:34:08 -0400190 ## time-buckets: "0.005,0.01,0.025,0.05,0.1,0.25,0.5,1,2.5,5,10"
191 ## length-buckets: "10,20,30,40,50,60,70,80,90,100"
192 ## size-buckets: "10,100,1000,10000,100000,1e+06,1e+07"
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500193
194 # -- Additional environment variables to set
195 extraEnvs: []
196 # extraEnvs:
197 # - name: FOO
198 # valueFrom:
199 # secretKeyRef:
200 # key: FOO
201 # name: secret-resource
202
203 # -- Use a `DaemonSet` or `Deployment`
204 kind: Deployment
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500205 # -- Annotations to be added to the controller Deployment or DaemonSet
206 ##
207 annotations: {}
208 # keel.sh/pollSchedule: "@every 60m"
209
210 # -- Labels to be added to the controller Deployment or DaemonSet and other resources that do not have option to specify labels
211 ##
212 labels: {}
213 # keel.sh/policy: patch
214 # keel.sh/trigger: poll
215
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500216 # -- The update strategy to apply to the Deployment or DaemonSet
217 ##
218 updateStrategy: {}
219 # rollingUpdate:
220 # maxUnavailable: 1
221 # type: RollingUpdate
222
223 # -- `minReadySeconds` to avoid killing pods before we are ready
224 ##
225 minReadySeconds: 0
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500226 # -- Node tolerations for server scheduling to nodes with taints
227 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
228 ##
229 tolerations: []
230 # - key: "key"
231 # operator: "Equal|Exists"
232 # value: "value"
233 # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
234
235 # -- Affinity and anti-affinity rules for server scheduling to nodes
236 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
237 ##
238 affinity: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400239 # # An example of preferred pod anti-affinity, weight is in the range 1-100
240 # podAntiAffinity:
241 # preferredDuringSchedulingIgnoredDuringExecution:
242 # - weight: 100
243 # podAffinityTerm:
244 # labelSelector:
245 # matchExpressions:
246 # - key: app.kubernetes.io/name
247 # operator: In
248 # values:
249 # - ingress-nginx
250 # - key: app.kubernetes.io/instance
251 # operator: In
252 # values:
253 # - ingress-nginx
254 # - key: app.kubernetes.io/component
255 # operator: In
256 # values:
257 # - controller
258 # topologyKey: kubernetes.io/hostname
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500259
Mohammed Naser65cda132024-05-02 14:34:08 -0400260 # # An example of required pod anti-affinity
261 # podAntiAffinity:
262 # requiredDuringSchedulingIgnoredDuringExecution:
263 # - labelSelector:
264 # matchExpressions:
265 # - key: app.kubernetes.io/name
266 # operator: In
267 # values:
268 # - ingress-nginx
269 # - key: app.kubernetes.io/instance
270 # operator: In
271 # values:
272 # - ingress-nginx
273 # - key: app.kubernetes.io/component
274 # operator: In
275 # values:
276 # - controller
277 # topologyKey: "kubernetes.io/hostname"
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500278
279 # -- Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in.
280 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
281 ##
282 topologySpreadConstraints: []
Mohammed Naser65cda132024-05-02 14:34:08 -0400283 # - labelSelector:
284 # matchLabels:
285 # app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}'
286 # app.kubernetes.io/instance: '{{ .Release.Name }}'
287 # app.kubernetes.io/component: controller
288 # topologyKey: topology.kubernetes.io/zone
289 # maxSkew: 1
290 # whenUnsatisfiable: ScheduleAnyway
291 # - labelSelector:
292 # matchLabels:
293 # app.kubernetes.io/name: '{{ include "ingress-nginx.name" . }}'
294 # app.kubernetes.io/instance: '{{ .Release.Name }}'
295 # app.kubernetes.io/component: controller
296 # topologyKey: kubernetes.io/hostname
297 # maxSkew: 1
298 # whenUnsatisfiable: ScheduleAnyway
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500299
300 # -- `terminationGracePeriodSeconds` to avoid killing pods before we are ready
301 ## wait up to five minutes for the drain of connections
302 ##
303 terminationGracePeriodSeconds: 300
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500304 # -- Node labels for controller pod assignment
Mohammed Naser65cda132024-05-02 14:34:08 -0400305 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500306 ##
307 nodeSelector:
308 kubernetes.io/os: linux
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500309 ## Liveness and readiness probe values
310 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
311 ##
312 ## startupProbe:
313 ## httpGet:
314 ## # should match container.healthCheckPath
315 ## path: "/healthz"
316 ## port: 10254
317 ## scheme: HTTP
318 ## initialDelaySeconds: 5
319 ## periodSeconds: 5
320 ## timeoutSeconds: 2
321 ## successThreshold: 1
322 ## failureThreshold: 5
323 livenessProbe:
324 httpGet:
325 # should match container.healthCheckPath
326 path: "/healthz"
327 port: 10254
328 scheme: HTTP
329 initialDelaySeconds: 10
330 periodSeconds: 10
331 timeoutSeconds: 1
332 successThreshold: 1
333 failureThreshold: 5
334 readinessProbe:
335 httpGet:
336 # should match container.healthCheckPath
337 path: "/healthz"
338 port: 10254
339 scheme: HTTP
340 initialDelaySeconds: 10
341 periodSeconds: 10
342 timeoutSeconds: 1
343 successThreshold: 1
344 failureThreshold: 3
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500345 # -- Path of the health check endpoint. All requests received on the port defined by
346 # the healthz-port parameter are forwarded internally to this path.
347 healthCheckPath: "/healthz"
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500348 # -- Address to bind the health check endpoint.
349 # It is better to set this option to the internal node address
Mohammed Naser65cda132024-05-02 14:34:08 -0400350 # if the Ingress-Nginx Controller is running in the `hostNetwork: true` mode.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500351 healthCheckHost: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500352 # -- Annotations to be added to controller pods
353 ##
354 podAnnotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500355 replicaCount: 1
Mohammed Naser65cda132024-05-02 14:34:08 -0400356 # -- Minimum available pods set in PodDisruptionBudget.
357 # Define either 'minAvailable' or 'maxUnavailable', never both.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500358 minAvailable: 1
Mohammed Naser65cda132024-05-02 14:34:08 -0400359 # -- Maximum unavailable pods set in PodDisruptionBudget. If set, 'minAvailable' is ignored.
360 # maxUnavailable: 1
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500361
362 ## Define requests resources to avoid probe issues due to CPU utilization in busy nodes
363 ## ref: https://github.com/kubernetes/ingress-nginx/issues/4735#issuecomment-551204903
364 ## Ideally, there should be no limits.
365 ## https://engineering.indeedblog.com/blog/2019/12/cpu-throttling-regression-fix/
366 resources:
Mohammed Naser65cda132024-05-02 14:34:08 -0400367 ## limits:
368 ## cpu: 100m
369 ## memory: 90Mi
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500370 requests:
371 cpu: 100m
372 memory: 90Mi
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500373 # Mutually exclusive with keda autoscaling
374 autoscaling:
375 enabled: false
Mohammed Naser65cda132024-05-02 14:34:08 -0400376 annotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500377 minReplicas: 1
378 maxReplicas: 11
379 targetCPUUtilizationPercentage: 50
380 targetMemoryUtilizationPercentage: 50
381 behavior: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400382 # scaleDown:
383 # stabilizationWindowSeconds: 300
384 # policies:
385 # - type: Pods
386 # value: 1
387 # periodSeconds: 180
388 # scaleUp:
389 # stabilizationWindowSeconds: 300
390 # policies:
391 # - type: Pods
392 # value: 2
393 # periodSeconds: 60
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500394 autoscalingTemplate: []
395 # Custom or additional autoscaling metrics
396 # ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-custom-metrics
397 # - type: Pods
398 # pods:
399 # metric:
400 # name: nginx_ingress_controller_nginx_process_requests_total
401 # target:
402 # type: AverageValue
403 # averageValue: 10000m
404
405 # Mutually exclusive with hpa autoscaling
406 keda:
407 apiVersion: "keda.sh/v1alpha1"
408 ## apiVersion changes with keda 1.x vs 2.x
409 ## 2.x = keda.sh/v1alpha1
410 ## 1.x = keda.k8s.io/v1alpha1
411 enabled: false
412 minReplicas: 1
413 maxReplicas: 11
414 pollingInterval: 30
415 cooldownPeriod: 300
Mohammed Naser65cda132024-05-02 14:34:08 -0400416 # fallback:
417 # failureThreshold: 3
418 # replicas: 11
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500419 restoreToOriginalReplicaCount: false
420 scaledObject:
421 annotations: {}
422 # Custom annotations for ScaledObject resource
423 # annotations:
424 # key: value
425 triggers: []
Mohammed Naser65cda132024-05-02 14:34:08 -0400426 # - type: prometheus
427 # metadata:
428 # serverAddress: http://<prometheus-host>:9090
429 # metricName: http_requests_total
430 # threshold: '100'
431 # query: sum(rate(http_requests_total{deployment="my-deployment"}[2m]))
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500432
433 behavior: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400434 # scaleDown:
435 # stabilizationWindowSeconds: 300
436 # policies:
437 # - type: Pods
438 # value: 1
439 # periodSeconds: 180
440 # scaleUp:
441 # stabilizationWindowSeconds: 300
442 # policies:
443 # - type: Pods
444 # value: 2
445 # periodSeconds: 60
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500446 # -- Enable mimalloc as a drop-in replacement for malloc.
447 ## ref: https://github.com/microsoft/mimalloc
448 ##
449 enableMimalloc: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500450 ## Override NGINX template
451 customTemplate:
452 configMapName: ""
453 configMapKey: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500454 service:
Mohammed Naser65cda132024-05-02 14:34:08 -0400455 # -- Enable controller services or not. This does not influence the creation of either the admission webhook or the metrics service.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500456 enabled: true
Mohammed Naser65cda132024-05-02 14:34:08 -0400457 external:
458 # -- Enable the external controller service or not. Useful for internal-only deployments.
459 enabled: true
460 # -- Annotations to be added to the external controller service. See `controller.service.internal.annotations` for annotations to be added to the internal controller service.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500461 annotations: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400462 # -- Labels to be added to both controller services.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500463 labels: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400464 # -- Type of the external controller service.
465 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
466 type: LoadBalancer
467 # -- Pre-defined cluster internal IP address of the external controller service. Take care of collisions with existing services.
468 # This value is immutable. Set once, it can not be changed without deleting and re-creating the service.
469 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
470 clusterIP: ""
471 # -- List of node IP addresses at which the external controller service is available.
472 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500473 externalIPs: []
Mohammed Naser65cda132024-05-02 14:34:08 -0400474 # -- Deprecated: Pre-defined IP address of the external controller service. Used by cloud providers to connect the resulting load balancer service to a pre-existing static IP.
475 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
476 loadBalancerIP: ""
477 # -- Restrict access to the external controller service. Values must be CIDRs. Allows any source address by default.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500478 loadBalancerSourceRanges: []
Mohammed Naser65cda132024-05-02 14:34:08 -0400479 # -- Load balancer class of the external controller service. Used by cloud providers to select a load balancer implementation other than the cloud provider default.
480 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
481 loadBalancerClass: ""
482 # -- Enable node port allocation for the external controller service or not. Applies to type `LoadBalancer` only.
483 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
484 # allocateLoadBalancerNodePorts: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500485
Mohammed Naser65cda132024-05-02 14:34:08 -0400486 # -- External traffic policy of the external controller service. Set to "Local" to preserve source IP on providers supporting it.
487 # Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
488 externalTrafficPolicy: ""
489 # -- Session affinity of the external controller service. Must be either "None" or "ClientIP" if set. Defaults to "None".
490 # Ref: https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity
491 sessionAffinity: ""
492 # -- Specifies the health check node port (numeric port number) for the external controller service.
493 # If not specified, the service controller allocates a port from your cluster's node port range.
494 # Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500495 # healthCheckNodePort: 0
496
Mohammed Naser65cda132024-05-02 14:34:08 -0400497 # -- Represents the dual-stack capabilities of the external controller service. Possible values are SingleStack, PreferDualStack or RequireDualStack.
498 # Fields `ipFamilies` and `clusterIP` depend on the value of this field.
499 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
500 ipFamilyPolicy: SingleStack
501 # -- List of IP families (e.g. IPv4, IPv6) assigned to the external controller service. This field is usually assigned automatically based on cluster configuration and the `ipFamilyPolicy` field.
502 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500503 ipFamilies:
504 - IPv4
Mohammed Naser65cda132024-05-02 14:34:08 -0400505 # -- Enable the HTTP listener on both controller services or not.
506 enableHttp: true
507 # -- Enable the HTTPS listener on both controller services or not.
508 enableHttps: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500509 ports:
Mohammed Naser65cda132024-05-02 14:34:08 -0400510 # -- Port the external HTTP listener is published with.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500511 http: 80
Mohammed Naser65cda132024-05-02 14:34:08 -0400512 # -- Port the external HTTPS listener is published with.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500513 https: 443
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500514 targetPorts:
Mohammed Naser65cda132024-05-02 14:34:08 -0400515 # -- Port of the ingress controller the external HTTP listener is mapped to.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500516 http: http
Mohammed Naser65cda132024-05-02 14:34:08 -0400517 # -- Port of the ingress controller the external HTTPS listener is mapped to.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500518 https: https
Mohammed Naser65cda132024-05-02 14:34:08 -0400519 # -- Declare the app protocol of the external HTTP and HTTPS listeners or not. Supersedes provider-specific annotations for declaring the backend protocol.
520 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol
521 appProtocol: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500522 nodePorts:
Mohammed Naser65cda132024-05-02 14:34:08 -0400523 # -- Node port allocated for the external HTTP listener. If left empty, the service controller allocates one from the configured node port range.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500524 http: ""
Mohammed Naser65cda132024-05-02 14:34:08 -0400525 # -- Node port allocated for the external HTTPS listener. If left empty, the service controller allocates one from the configured node port range.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500526 https: ""
Mohammed Naser65cda132024-05-02 14:34:08 -0400527 # -- Node port mapping for external TCP listeners. If left empty, the service controller allocates them from the configured node port range.
528 # Example:
529 # tcp:
530 # 8080: 30080
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500531 tcp: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400532 # -- Node port mapping for external UDP listeners. If left empty, the service controller allocates them from the configured node port range.
533 # Example:
534 # udp:
535 # 53: 30053
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500536 udp: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500537 internal:
Mohammed Naser65cda132024-05-02 14:34:08 -0400538 # -- Enable the internal controller service or not. Remember to configure `controller.service.internal.annotations` when enabling this.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500539 enabled: false
Mohammed Naser65cda132024-05-02 14:34:08 -0400540 # -- Annotations to be added to the internal controller service. Mandatory for the internal controller service to be created. Varies with the cloud service.
541 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500542 annotations: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400543 # -- Type of the internal controller service.
544 # Defaults to the value of `controller.service.type`.
545 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
546 type: ""
547 # -- Pre-defined cluster internal IP address of the internal controller service. Take care of collisions with existing services.
548 # This value is immutable. Set once, it can not be changed without deleting and re-creating the service.
549 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
550 clusterIP: ""
551 # -- List of node IP addresses at which the internal controller service is available.
552 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
553 externalIPs: []
554 # -- Deprecated: Pre-defined IP address of the internal controller service. Used by cloud providers to connect the resulting load balancer service to a pre-existing static IP.
555 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
556 loadBalancerIP: ""
557 # -- Restrict access to the internal controller service. Values must be CIDRs. Allows any source address by default.
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500558 loadBalancerSourceRanges: []
Mohammed Naser65cda132024-05-02 14:34:08 -0400559 # -- Load balancer class of the internal controller service. Used by cloud providers to select a load balancer implementation other than the cloud provider default.
560 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
561 loadBalancerClass: ""
562 # -- Enable node port allocation for the internal controller service or not. Applies to type `LoadBalancer` only.
563 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation
564 # allocateLoadBalancerNodePorts: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500565
Mohammed Naser65cda132024-05-02 14:34:08 -0400566 # -- External traffic policy of the internal controller service. Set to "Local" to preserve source IP on providers supporting it.
567 # Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
568 externalTrafficPolicy: ""
569 # -- Session affinity of the internal controller service. Must be either "None" or "ClientIP" if set. Defaults to "None".
570 # Ref: https://kubernetes.io/docs/reference/networking/virtual-ips/#session-affinity
571 sessionAffinity: ""
572 # -- Specifies the health check node port (numeric port number) for the internal controller service.
573 # If not specified, the service controller allocates a port from your cluster's node port range.
574 # Ref: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
575 # healthCheckNodePort: 0
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500576
Mohammed Naser65cda132024-05-02 14:34:08 -0400577 # -- Represents the dual-stack capabilities of the internal controller service. Possible values are SingleStack, PreferDualStack or RequireDualStack.
578 # Fields `ipFamilies` and `clusterIP` depend on the value of this field.
579 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
580 ipFamilyPolicy: SingleStack
581 # -- List of IP families (e.g. IPv4, IPv6) assigned to the internal controller service. This field is usually assigned automatically based on cluster configuration and the `ipFamilyPolicy` field.
582 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
583 ipFamilies:
584 - IPv4
585 ports: {}
586 # -- Port the internal HTTP listener is published with.
587 # Defaults to the value of `controller.service.ports.http`.
588 # http: 80
589 # -- Port the internal HTTPS listener is published with.
590 # Defaults to the value of `controller.service.ports.https`.
591 # https: 443
592
593 targetPorts: {}
594 # -- Port of the ingress controller the internal HTTP listener is mapped to.
595 # Defaults to the value of `controller.service.targetPorts.http`.
596 # http: http
597 # -- Port of the ingress controller the internal HTTPS listener is mapped to.
598 # Defaults to the value of `controller.service.targetPorts.https`.
599 # https: https
600
601 # -- Declare the app protocol of the internal HTTP and HTTPS listeners or not. Supersedes provider-specific annotations for declaring the backend protocol.
602 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol
603 appProtocol: true
604 nodePorts:
605 # -- Node port allocated for the internal HTTP listener. If left empty, the service controller allocates one from the configured node port range.
606 http: ""
607 # -- Node port allocated for the internal HTTPS listener. If left empty, the service controller allocates one from the configured node port range.
608 https: ""
609 # -- Node port mapping for internal TCP listeners. If left empty, the service controller allocates them from the configured node port range.
610 # Example:
611 # tcp:
612 # 8080: 30080
613 tcp: {}
614 # -- Node port mapping for internal UDP listeners. If left empty, the service controller allocates them from the configured node port range.
615 # Example:
616 # udp:
617 # 53: 30053
618 udp: {}
619 # shareProcessNamespace enables process namespace sharing within the pod.
620 # This can be used for example to signal log rotation using `kill -USR1` from a sidecar.
621 shareProcessNamespace: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500622 # -- Additional containers to be added to the controller pod.
623 # See https://github.com/lemonldap-ng-controller/lemonldap-ng-controller as example.
624 extraContainers: []
625 # - name: my-sidecar
626 # image: nginx:latest
627 # - name: lemonldap-ng-controller
628 # image: lemonldapng/lemonldap-ng-controller:0.2.0
629 # args:
630 # - /lemonldap-ng-controller
631 # - --alsologtostderr
632 # - --configmap=$(POD_NAMESPACE)/lemonldap-ng-configuration
633 # env:
634 # - name: POD_NAME
635 # valueFrom:
636 # fieldRef:
637 # fieldPath: metadata.name
638 # - name: POD_NAMESPACE
639 # valueFrom:
640 # fieldRef:
641 # fieldPath: metadata.namespace
642 # volumeMounts:
643 # - name: copy-portal-skins
644 # mountPath: /srv/var/lib/lemonldap-ng/portal/skins
645
646 # -- Additional volumeMounts to the controller main container.
647 extraVolumeMounts: []
648 # - name: copy-portal-skins
649 # mountPath: /var/lib/lemonldap-ng/portal/skins
650
651 # -- Additional volumes to the controller pod.
652 extraVolumes: []
653 # - name: copy-portal-skins
654 # emptyDir: {}
655
656 # -- Containers, which are run before the app containers are started.
657 extraInitContainers: []
658 # - name: init-myservice
659 # image: busybox
660 # command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
661
Mohammed Naser65cda132024-05-02 14:34:08 -0400662 # -- Modules, which are mounted into the core nginx image. See values.yaml for a sample to add opentelemetry module
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500663 extraModules: []
Mohammed Naser65cda132024-05-02 14:34:08 -0400664 # - name: mytestmodule
665 # image:
666 # registry: registry.k8s.io
667 # image: ingress-nginx/mytestmodule
668 # ## for backwards compatibility consider setting the full image url via the repository value below
669 # ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
670 # ## repository:
671 # tag: "v1.0.0"
672 # digest: ""
673 # distroless: false
674 # containerSecurityContext:
675 # runAsNonRoot: true
676 # runAsUser: <user-id>
677 # allowPrivilegeEscalation: false
678 # seccompProfile:
679 # type: RuntimeDefault
680 # capabilities:
681 # drop:
682 # - ALL
683 # readOnlyRootFilesystem: true
684 # resources: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500685 #
686 # The image must contain a `/usr/local/bin/init_module.sh` executable, which
687 # will be executed as initContainers, to move its config files within the
688 # mounted volume.
689
Mohammed Naser65cda132024-05-02 14:34:08 -0400690 opentelemetry:
691 enabled: false
692 name: opentelemetry
693 image:
694 registry: registry.k8s.io
695 image: ingress-nginx/opentelemetry
696 ## for backwards compatibility consider setting the full image url via the repository value below
697 ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
698 ## repository:
699 tag: "v20230721-3e2062ee5"
700 digest: sha256:13bee3f5223883d3ca62fee7309ad02d22ec00ff0d7033e3e9aca7a9f60fd472
701 distroless: true
702 containerSecurityContext:
703 runAsNonRoot: true
704 # -- The image's default user, inherited from its base image `cgr.dev/chainguard/static`.
705 runAsUser: 65532
706 allowPrivilegeEscalation: false
707 seccompProfile:
708 type: RuntimeDefault
709 capabilities:
710 drop:
711 - ALL
712 readOnlyRootFilesystem: true
713 resources: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500714 admissionWebhooks:
Mohammed Naser65cda132024-05-02 14:34:08 -0400715 name: admission
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500716 annotations: {}
717 # ignore-check.kube-linter.io/no-read-only-rootfs: "This deployment needs write access to root filesystem".
718
719 ## Additional annotations to the admission webhooks.
720 ## These annotations will be added to the ValidatingWebhookConfiguration and
721 ## the Jobs Spec of the admission webhooks.
722 enabled: true
Mohammed Naser65cda132024-05-02 14:34:08 -0400723 # -- Additional environment variables to set
724 extraEnvs: []
725 # extraEnvs:
726 # - name: FOO
727 # valueFrom:
728 # secretKeyRef:
729 # key: FOO
730 # name: secret-resource
731 # -- Admission Webhook failure policy to use
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500732 failurePolicy: Fail
733 # timeoutSeconds: 10
734 port: 8443
735 certificate: "/usr/local/certificates/cert"
736 key: "/usr/local/certificates/key"
737 namespaceSelector: {}
738 objectSelector: {}
739 # -- Labels to be added to admission webhooks
740 labels: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500741 # -- Use an existing PSP instead of creating one
742 existingPsp: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500743 service:
744 annotations: {}
745 # clusterIP: ""
746 externalIPs: []
747 # loadBalancerIP: ""
748 loadBalancerSourceRanges: []
749 servicePort: 443
750 type: ClusterIP
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500751 createSecretJob:
Mohammed Naser65cda132024-05-02 14:34:08 -0400752 name: create
753 # -- Security context for secret creation containers
754 securityContext:
755 runAsNonRoot: true
756 runAsUser: 65532
757 allowPrivilegeEscalation: false
758 seccompProfile:
759 type: RuntimeDefault
760 capabilities:
761 drop:
762 - ALL
763 readOnlyRootFilesystem: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500764 resources: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400765 # limits:
766 # cpu: 10m
767 # memory: 20Mi
768 # requests:
769 # cpu: 10m
770 # memory: 20Mi
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500771 patchWebhookJob:
Mohammed Naser65cda132024-05-02 14:34:08 -0400772 name: patch
773 # -- Security context for webhook patch containers
774 securityContext:
775 runAsNonRoot: true
776 runAsUser: 65532
777 allowPrivilegeEscalation: false
778 seccompProfile:
779 type: RuntimeDefault
780 capabilities:
781 drop:
782 - ALL
783 readOnlyRootFilesystem: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500784 resources: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500785 patch:
786 enabled: true
787 image:
Mohammed Naser65cda132024-05-02 14:34:08 -0400788 registry: registry.k8s.io
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500789 image: ingress-nginx/kube-webhook-certgen
790 ## for backwards compatibility consider setting the full image url via the repository value below
791 ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
792 ## repository:
Mohammed Naser7d1623e2024-06-17 09:12:39 -0400793 tag: v1.4.1
794 digest: sha256:36d05b4077fb8e3d13663702fa337f124675ba8667cbd949c03a8e8ea6fa4366
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500795 pullPolicy: IfNotPresent
796 # -- Provide a priority class name to the webhook patching job
797 ##
798 priorityClassName: ""
799 podAnnotations: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400800 # NetworkPolicy for webhook patch
801 networkPolicy:
802 # -- Enable 'networkPolicy' or not
803 enabled: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500804 nodeSelector:
805 kubernetes.io/os: linux
806 tolerations: []
807 # -- Labels to be added to patch job resources
808 labels: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400809 # -- Security context for secret creation & webhook patch pods
810 securityContext: {}
811 # Use certmanager to generate webhook certs
812 certManager:
813 enabled: false
814 # self-signed root certificate
815 rootCert:
816 # default to be 5y
817 duration: ""
818 admissionCert:
819 # default to be 1y
820 duration: ""
821 # issuerRef:
822 # name: "issuer"
823 # kind: "ClusterIssuer"
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500824 metrics:
825 port: 10254
Mohammed Naser65cda132024-05-02 14:34:08 -0400826 portName: metrics
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500827 # if this port is changed, change healthz-port: in extraArgs: accordingly
828 enabled: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500829 service:
830 annotations: {}
831 # prometheus.io/scrape: "true"
832 # prometheus.io/port: "10254"
Mohammed Naser65cda132024-05-02 14:34:08 -0400833 # -- Labels to be added to the metrics service resource
834 labels: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500835 # clusterIP: ""
836
837 # -- List of IP addresses at which the stats-exporter service is available
Mohammed Naser65cda132024-05-02 14:34:08 -0400838 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500839 ##
840 externalIPs: []
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500841 # loadBalancerIP: ""
842 loadBalancerSourceRanges: []
843 servicePort: 10254
844 type: ClusterIP
845 # externalTrafficPolicy: ""
846 # nodePort: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500847 serviceMonitor:
848 enabled: false
849 additionalLabels: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400850 annotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500851 ## The label to use to retrieve the job name from.
852 ## jobLabel: "app.kubernetes.io/name"
853 namespace: ""
854 namespaceSelector: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400855 ## Default: scrape .Release.Namespace or namespaceOverride only
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500856 ## To scrape all, use the following:
857 ## namespaceSelector:
858 ## any: true
859 scrapeInterval: 30s
860 # honorLabels: true
861 targetLabels: []
862 relabelings: []
863 metricRelabelings: []
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500864 prometheusRule:
865 enabled: false
866 additionalLabels: {}
867 # namespace: ""
868 rules: []
Mohammed Naser65cda132024-05-02 14:34:08 -0400869 # # These are just examples rules, please adapt them to your needs
870 # - alert: NGINXConfigFailed
871 # expr: count(nginx_ingress_controller_config_last_reload_successful == 0) > 0
872 # for: 1s
873 # labels:
874 # severity: critical
875 # annotations:
876 # description: bad ingress config - nginx config test failed
877 # summary: uninstall the latest ingress changes to allow config reloads to resume
878 # # By default a fake self-signed certificate is generated as default and
879 # # it is fine if it expires. If `--default-ssl-certificate` flag is used
880 # # and a valid certificate passed please do not filter for `host` label!
881 # # (i.e. delete `{host!="_"}` so also the default SSL certificate is
882 # # checked for expiration)
883 # - alert: NGINXCertificateExpiry
884 # expr: (avg(nginx_ingress_controller_ssl_expire_time_seconds{host!="_"}) by (host) - time()) < 604800
885 # for: 1s
886 # labels:
887 # severity: critical
888 # annotations:
889 # description: ssl certificate(s) will expire in less then a week
890 # summary: renew expiring certificates to avoid downtime
891 # - alert: NGINXTooMany500s
892 # expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"5.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
893 # for: 1m
894 # labels:
895 # severity: warning
896 # annotations:
897 # description: Too many 5XXs
898 # summary: More than 5% of all requests returned 5XX, this requires your attention
899 # - alert: NGINXTooMany400s
900 # expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
901 # for: 1m
902 # labels:
903 # severity: warning
904 # annotations:
905 # description: Too many 4XXs
906 # summary: More than 5% of all requests returned 4XX, this requires your attention
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500907 # -- Improve connection draining when ingress controller pod is deleted using a lifecycle hook:
908 # With this new hook, we increased the default terminationGracePeriodSeconds from 30 seconds
909 # to 300, allowing the draining of connections up to five minutes.
910 # If the active connections end before that, the pod will terminate gracefully at that time.
911 # To effectively take advantage of this feature, the Configmap feature
912 # worker-shutdown-timeout new value is 240s instead of 10s.
913 ##
914 lifecycle:
915 preStop:
916 exec:
917 command:
918 - /wait-shutdown
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500919 priorityClassName: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500920# -- Rollback limit
921##
922revisionHistoryLimit: 10
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500923## Default 404 backend
924##
925defaultBackend:
926 ##
927 enabled: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500928 name: defaultbackend
929 image:
Mohammed Naser65cda132024-05-02 14:34:08 -0400930 registry: registry.k8s.io
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500931 image: defaultbackend-amd64
932 ## for backwards compatibility consider setting the full image url via the repository value below
933 ## use *either* current default registry/image or repository format or installing chart by providing the values.yaml will fail
934 ## repository:
935 tag: "1.5"
936 pullPolicy: IfNotPresent
Mohammed Naser65cda132024-05-02 14:34:08 -0400937 runAsNonRoot: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500938 # nobody user -> uid 65534
939 runAsUser: 65534
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500940 allowPrivilegeEscalation: false
Mohammed Naser65cda132024-05-02 14:34:08 -0400941 seccompProfile:
942 type: RuntimeDefault
943 readOnlyRootFilesystem: true
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500944 # -- Use an existing PSP instead of creating one
945 existingPsp: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500946 extraArgs: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500947 serviceAccount:
948 create: true
949 name: ""
950 automountServiceAccountToken: true
951 # -- Additional environment variables to set for defaultBackend pods
952 extraEnvs: []
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500953 port: 8080
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500954 ## Readiness and liveness probes for default backend
955 ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
956 ##
957 livenessProbe:
958 failureThreshold: 3
959 initialDelaySeconds: 30
960 periodSeconds: 10
961 successThreshold: 1
962 timeoutSeconds: 5
963 readinessProbe:
964 failureThreshold: 6
965 initialDelaySeconds: 0
966 periodSeconds: 5
967 successThreshold: 1
968 timeoutSeconds: 5
Mohammed Naser65cda132024-05-02 14:34:08 -0400969 # -- The update strategy to apply to the Deployment or DaemonSet
970 ##
971 updateStrategy: {}
972 # rollingUpdate:
973 # maxUnavailable: 1
974 # type: RollingUpdate
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500975
Mohammed Naser65cda132024-05-02 14:34:08 -0400976 # -- `minReadySeconds` to avoid killing pods before we are ready
977 ##
978 minReadySeconds: 0
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500979 # -- Node tolerations for server scheduling to nodes with taints
980 ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
981 ##
982 tolerations: []
983 # - key: "key"
984 # operator: "Equal|Exists"
985 # value: "value"
986 # effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
987
988 affinity: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400989 # -- Security context for default backend pods
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500990 podSecurityContext: {}
Mohammed Naser65cda132024-05-02 14:34:08 -0400991 # -- Security context for default backend containers
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500992 containerSecurityContext: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500993 # -- Labels to add to the pod container metadata
994 podLabels: {}
995 # key: value
996
997 # -- Node labels for default backend pod assignment
Mohammed Naser65cda132024-05-02 14:34:08 -0400998 ## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
Mohammed Naser9ad0d462023-01-15 20:36:37 -0500999 ##
1000 nodeSelector:
1001 kubernetes.io/os: linux
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001002 # -- Annotations to be added to default backend pods
1003 ##
1004 podAnnotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001005 replicaCount: 1
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001006 minAvailable: 1
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001007 resources: {}
1008 # limits:
1009 # cpu: 10m
1010 # memory: 20Mi
1011 # requests:
1012 # cpu: 10m
1013 # memory: 20Mi
1014
1015 extraVolumeMounts: []
1016 ## Additional volumeMounts to the default backend container.
1017 # - name: copy-portal-skins
1018 # mountPath: /var/lib/lemonldap-ng/portal/skins
1019
1020 extraVolumes: []
1021 ## Additional volumes to the default backend pod.
1022 # - name: copy-portal-skins
1023 # emptyDir: {}
1024
Mohammed Naser65cda132024-05-02 14:34:08 -04001025 extraConfigMaps: []
1026 ## Additional configmaps to the default backend pod.
1027 # - name: my-extra-configmap-1
1028 # labels:
1029 # type: config-1
1030 # data:
1031 # extra_file_1.html: |
1032 # <!-- Extra HTML content for ConfigMap 1 -->
1033 # - name: my-extra-configmap-2
1034 # labels:
1035 # type: config-2
1036 # data:
1037 # extra_file_2.html: |
1038 # <!-- Extra HTML content for ConfigMap 2 -->
1039
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001040 autoscaling:
1041 annotations: {}
1042 enabled: false
1043 minReplicas: 1
1044 maxReplicas: 2
1045 targetCPUUtilizationPercentage: 50
1046 targetMemoryUtilizationPercentage: 50
Mohammed Naser65cda132024-05-02 14:34:08 -04001047 # NetworkPolicy for default backend component.
1048 networkPolicy:
1049 # -- Enable 'networkPolicy' or not
1050 enabled: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001051 service:
1052 annotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001053 # clusterIP: ""
1054
1055 # -- List of IP addresses at which the default backend service is available
Mohammed Naser65cda132024-05-02 14:34:08 -04001056 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001057 ##
1058 externalIPs: []
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001059 # loadBalancerIP: ""
1060 loadBalancerSourceRanges: []
1061 servicePort: 80
1062 type: ClusterIP
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001063 priorityClassName: ""
1064 # -- Labels to be added to the default backend resources
1065 labels: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001066## Enable RBAC as per https://github.com/kubernetes/ingress-nginx/blob/main/docs/deploy/rbac.md and https://github.com/kubernetes/ingress-nginx/issues/266
1067rbac:
1068 create: true
1069 scope: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001070## If true, create & use Pod Security Policy resources
1071## https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1072podSecurityPolicy:
1073 enabled: false
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001074serviceAccount:
1075 create: true
1076 name: ""
1077 automountServiceAccountToken: true
1078 # -- Annotations for the controller service account
1079 annotations: {}
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001080# -- Optional array of imagePullSecrets containing private registry credentials
1081## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1082imagePullSecrets: []
1083# - name: secretName
1084
Mohammed Naser65cda132024-05-02 14:34:08 -04001085# -- TCP service key-value pairs
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001086## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
1087##
1088tcp: {}
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001089# "8080": "default/example-tcp-svc:9000"
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001090
Mohammed Naser65cda132024-05-02 14:34:08 -04001091# -- UDP service key-value pairs
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001092## Ref: https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/exposing-tcp-udp-services.md
1093##
1094udp: {}
Mohammed Naser7d1623e2024-06-17 09:12:39 -04001095# "53": "kube-system/kube-dns:53"
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001096
Mohammed Naser65cda132024-05-02 14:34:08 -04001097# -- Prefix for TCP and UDP ports names in ingress controller service
1098## Some cloud providers, like Yandex Cloud may have a requirements for a port name regex to support cloud load balancer integration
1099portNamePrefix: ""
Mohammed Naser9ad0d462023-01-15 20:36:37 -05001100# -- (string) A base64-encoded Diffie-Hellman parameter.
1101# This can be generated with: `openssl dhparam 4096 2> /dev/null | base64`
1102## Ref: https://github.com/kubernetes/ingress-nginx/tree/main/docs/examples/customization/ssl-dh-param
Mohammed Naser65cda132024-05-02 14:34:08 -04001103dhParam: ""