1# This file has been modified by Chainguard, Inc.
3# Copyright Chainguard, Inc. All Rights Reserved.
4# Chainguard, Inc. modifications are subject to the license
5# available at: https://www.chainguard.dev/legal/software-license-agreement
7# Copyright Broadcom, Inc. All Rights Reserved.
8# SPDX-License-Identifier: APACHE-2.0
10## @section Global parameters
11## Global Docker image parameters
12## Please, note that this will override the image parameters, including dependencies, configured to use the global value
13## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
15## @param global.imageRegistry Global Docker image registry
16## @param global.imagePullSecrets Global Docker registry secret names as an array
22 ## - myRegistryKeySecretName
25 ## Security parameters
28 ## @param global.security.allowInsecureImages Allows skipping image verification
29 allowInsecureImages: false
30 ## Compatibility adaptations for Kubernetes platforms
33 ## Compatibility adaptations for Openshift
36 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
38 adaptSecurityContext: auto
40## @section Common parameters
42## @param kubeVersion Force target Kubernetes version (using Helm capabilities if not set)
45## @param nameOverride String to partially override common.names.fullname
48## @param fullnameOverride String to fully override common.names.fullname
51## @param namespaceOverride String to fully override common.names.namespace
54## @param commonLabels Add labels to all the deployed resources
57## @param commonAnnotations Add annotations to all the deployed resources
60## @param extraDeploy Array of extra objects to deploy with the release
63## @param clusterDomain Kubernetes cluster domain name
65clusterDomain: cluster.local
66## @section Nginx Ingress Controller parameters
68## Iamguarded NGINX Ingress controller image version
69## ref: https://hub.docker.com/r/iamguarded/nginx-ingress-controller/tags/
70## @param image.registry [default: REGISTRY_NAME] Nginx Ingress Controller image registry
71## @param image.repository [default: REPOSITORY_NAME/nginx-ingress-controller] Nginx Ingress Controller image repository
72## @skip image.tag Nginx Ingress Controller image tag (immutable tags are recommended)
73## @param image.digest Nginx Ingress Controller image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
74## @param image.pullPolicy Nginx Ingress Controller image pull policy
75## @param image.pullSecrets Specify docker-registry secret names as an array
79 repository: chainguard-private/ingress-nginx-controller-iamguarded
82 ## Specify a imagePullPolicy
83 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
85 pullPolicy: IfNotPresent
86 ## Optionally specify an array of imagePullSecrets.
87 ## Secrets must be manually created in the namespace.
88 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
91 ## - myRegistryKeySecretName
94## @param containerPorts.http Nginx Ingress Controller HTTP port
95## @param containerPorts.https Nginx Ingress Controller HTTPS port
96## @param containerPorts.defaultServer Nginx Ingress Controller default server port
97## @param containerPorts.metrics Nginx Ingress Controller metrics port
98## @param containerPorts.profiler Nginx Ingress Controller profiler port
99## @param containerPorts.status Nginx Ingress Controller status port
100## @param containerPorts.stream Nginx Ingress Controller stream port
110## @param automountServiceAccountToken Mount Service Account token in pod
112automountServiceAccountToken: true
113## @param hostAliases Deployment pod host aliases
114## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
117## @param config Custom configuration options for NGINX
118## ref: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/
121## @param proxySetHeaders Custom headers before sending traffic to backends
122## ref: https://github.com/kubernetes/ingress-nginx/tree/master/docs/examples/customization/custom-headers
125## @param addHeaders Custom headers before sending response traffic to the client
126## ref: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#add-headers
129## @param defaultBackendService Default 404 backend service; required only if `defaultBackend.enabled = false`
130## Must be <namespace>/<service_name>
132defaultBackendService: ""
133## @param electionID Election ID to use for status update
135electionID: ingress-controller-leader
136## @param allowSnippetAnnotations Allow users to set snippet annotations
138allowSnippetAnnotations: false
139## @param reportNodeInternalIp If using `hostNetwork=true`, setting `reportNodeInternalIp=true`, will pass the flag `report-node-internal-ip-address` to Nginx Ingress Controller
140## Bare-metal considerations via the host network
141## ref: https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#via-the-host-network
143reportNodeInternalIp: false
144## @param watchIngressWithoutClass Process Ingress objects without ingressClass annotation/ingressClassName field
146watchIngressWithoutClass: false
147## Configuring this doesn't affect `kubernetes.io/ingress.class` annotation. See `extraArgs` below how to configure processing of custom annotation.
148## @param ingressClassResource.name Name of the IngressClass resource
149## @param ingressClassResource.enabled Create the IngressClass resource
150## @param ingressClassResource.default Set the created IngressClass resource as default class
151## @param ingressClassResource.controllerClass IngressClass identifier for the controller
152## @param ingressClassResource.parameters Optional parameters for the controller
158 controllerClass: "k8s.io/ingress-nginx"
160## Allows customization of the external service
161## the ingress will be bound to via DNS
164 ## @param publishService.enabled Set the endpoint records on the Ingress objects to reflect those on the service
167 ## @param publishService.pathOverride Allows overriding of the publish service to bind to
168 ## Must be <namespace>/<service_name>
171## @param scope.enabled Limit the scope of the controller.
172## @param scope.namespace Scope namespace. Defaults to `.Release.Namespace`
177## @param configMapNamespace Allows customization of the configmap / nginx-configmap namespace
178## Defaults to .Release.Namespace
180configMapNamespace: ""
181## @param tcpConfigMapNamespace Allows customization of the tcp-services-configmap namespace
182## Defaults to .Release.Namespace
184tcpConfigMapNamespace: ""
185## @param udpConfigMapNamespace Allows customization of the udp-services-configmap namespace
186## Defaults to .Release.Namespace
188udpConfigMapNamespace: ""
189## @param maxmindLicenseKey License key used to download Geolite2 database
192## @param dhParam A base64ed Diffie-Hellman parameter
193## This can be generated with: openssl dhparam 4096 2> /
194## Ref: https://github.com/krmichel/ingress-nginx/blob/master/docs/examples/customization/ssl-dh-param
196## @param tcp TCP service key:value pairs
197## ref: https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/tcp
200## 8080: "default/example-tcp-svc:9000"
203## @param udp UDP service key:value pairs
204## ref: https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/udp
207## 53: "kube-system/kube-dns:53"
210## @param svcPortNamesPrefix Prefix for TCP and UDP ports names in ingress controller service
211## Some cloud providers, like Yandex Cloud may have a requirements for a port name regex to support cloud load balancer integration
213svcPortNamesPrefix: ""
214## @param command Override default container command (useful when using custom images)
217## @param args Override default container args (useful when using custom images)
220## @param lifecycleHooks for the %%MAIN_CONTAINER_NAME%% container(s) to automate configuration before or after startup
223## @param extraArgs Additional command line arguments to pass to nginx-ingress-controller
224## E.g. to specify the default SSL certificate you can use
226## default-ssl-certificate: "<namespace>/<secret_name>"
227## ingress-class: nginx
230## @param extraEnvVars Extra environment variables to be set on Nginx Ingress container
237## name: secret-resource
240## @param extraEnvVarsCM Name of a existing ConfigMap containing extra environment variables
243## @param extraEnvVarsSecret Name of a existing Secret containing extra environment variables
245extraEnvVarsSecret: ""
246## @section Nginx Ingress deployment / daemonset parameters
248## @param kind Install as Deployment or DaemonSet
251## Daemonset configuration
254 ## @param daemonset.useHostPort If `kind` is `DaemonSet`, this will enable `hostPort` for `TCP/80` and `TCP/443`
257 ## @param daemonset.hostPorts [object] HTTP and HTTPS ports
262## @param replicaCount Desired number of Controller pods
265## @param updateStrategy Strategy to use to update Pods
266## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
269## @param revisionHistoryLimit The number of old history to retain to allow rollback
271revisionHistoryLimit: 10
272## Controller pods' Security Context
273## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
274## @param podSecurityContext.enabled Enable Controller pods' Security Context
275## @param podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
276## @param podSecurityContext.sysctls Set kernel settings using the sysctl interface
277## @param podSecurityContext.supplementalGroups Set filesystem extra groups
278## @param podSecurityContext.fsGroup Group ID for the container filesystem
282 fsGroupChangePolicy: Always
284 supplementalGroups: []
286## Controller containers' Security Context (only main container)
287## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
288## @param containerSecurityContext.enabled Enable Controller containers' Security Context
289## @param containerSecurityContext.allowPrivilegeEscalation Switch to allow priviledge escalation on the Controller container
290## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
291## @param containerSecurityContext.runAsUser User ID for the Controller container
292## @param containerSecurityContext.runAsGroup Group ID for the Controller container
293## @param containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
294## @param containerSecurityContext.capabilities.drop [array] Linux Kernel capabilities that should be dropped
295## @param containerSecurityContext.capabilities.add [array] Linux Kernel capabilities that should be added
296## @param containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
297## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
299containerSecurityContext:
301 allowPrivilegeEscalation: false
305 readOnlyRootFilesystem: true
308 add: ["NET_BIND_SERVICE"]
311 type: "RuntimeDefault"
312## @param minReadySeconds How many seconds a pod needs to be ready before killing the next, during update
315## Controller containers' resource requests and limits
316## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
317## We usually recommend not to specify default resources and to leave this as a conscious
318## choice for the user. This also increases chances charts run on environments with little
319## resources, such as Minikube. If you do want to specify resources, uncomment the following
320## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
321## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
322## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
324resourcesPreset: "nano"
325## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
336## Controller containers' liveness probe. Evaluated as a template.
337## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
338## @param livenessProbe.enabled Enable livenessProbe
339## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
340## @param livenessProbe.periodSeconds Period seconds for livenessProbe
341## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
342## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
343## @param livenessProbe.successThreshold Success threshold for livenessProbe
348 initialDelaySeconds: 10
352## Controller containers' readiness probe. Evaluated as a template.
353## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
354## @param readinessProbe.enabled Enable readinessProbe
355## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
356## @param readinessProbe.periodSeconds Period seconds for readinessProbe
357## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
358## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
359## @param readinessProbe.successThreshold Success threshold for readinessProbe
364 initialDelaySeconds: 10
368## Controller containers' startup probe. Evaluated as a template.
369## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
370## @param startupProbe.enabled Enable startupProbe
371## @param startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
372## @param startupProbe.periodSeconds Period seconds for startupProbe
373## @param startupProbe.timeoutSeconds Timeout seconds for startupProbe
374## @param startupProbe.failureThreshold Failure threshold for startupProbe
375## @param startupProbe.successThreshold Success threshold for startupProbe
380 initialDelaySeconds: 10
384## @param customLivenessProbe Override default liveness probe
386customLivenessProbe: {}
387## @param customReadinessProbe Override default readiness probe
389customReadinessProbe: {}
390## @param customStartupProbe Custom liveness probe for the Web component
392customStartupProbe: {}
393## @param lifecycle LifecycleHooks to set additional configuration at startup
396## @param podLabels Extra labels for Controller pods
397## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
400## @param podAnnotations Annotations for Controller pods
401## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
404## @param priorityClassName Controller priorityClassName
405## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
408## @param schedulerName Name of the k8s scheduler (other than default)
409## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
412## @param hostNetwork If the Nginx deployment / daemonset should run on the host's network namespace
413## Required on CNI based K8s installations, since CNI and hostport don't mix yet
414## Can be deprecated once https://github.com/kubernetes/kubernetes/issues/23920 is merged
417## @param dnsPolicy By default, while using host network, name resolution uses the host's DNS
418## Optionally, change this to ClusterFirstWithHostNet in case you have 'hostNetwork: true' if you wish nginx-controller
419## to keep resolving names inside the Kubernetes network
421dnsPolicy: ClusterFirst
422## @param dnsConfig is an object with optional parameters to pass to the DNS resolver
423## The dnsConfig field is optional and it can work with any dnsPolicy settings.
424## However, when a Pod's dnsPolicy is set to "None", the dnsConfig field has to be specified.
427## @param terminationGracePeriodSeconds How many seconds to wait before terminating a pod
429terminationGracePeriodSeconds: 60
430## @param podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
431## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
434## @param podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
435## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
437podAntiAffinityPreset: soft
438## Node affinity preset
439## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
442 ## @param nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
445 ## @param nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set.
447 ## key: "kubernetes.io/e2e-az-name"
450 ## @param nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set.
457## @param affinity Affinity for pod assignment. Evaluated as a template.
458## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
459## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
462## @param nodeSelector Node labels for pod assignment. Evaluated as a template.
463## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
466## @param tolerations Tolerations for pod assignment. Evaluated as a template.
467## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
470## @param extraVolumes Optionally specify extra list of additional volumes for Controller pods
473## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for Controller container(s)
476## @param initContainers Add init containers to the controller pods
479## - name: your-image-name
481## imagePullPolicy: Always
484## containerPort: 1234
487## @param sidecars Add sidecars to the controller pods.
490## - name: your-image-name
492## imagePullPolicy: Always
495## containerPort: 1234
498## @param customTemplate [object] Override NGINX template
503## @param topologySpreadConstraints Topology spread constraints rely on node labels to identify the topology domain(s) that each Node is in
504## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
506## topologySpreadConstraints:
508## topologyKey: failure-domain.beta.kubernetes.io/zone
509## whenUnsatisfiable: DoNotSchedule
512## app.kubernetes.io/instance: ingress-nginx-internal
514topologySpreadConstraints: []
515## @param podSecurityPolicy.enabled Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
516## https://kubernetes.io/docs/concepts/policy/pod-security-policy/
520## @section Default backend parameters
522## Default 404 backend
525 ## @param defaultBackend.enabled Enable a default backend based on NGINX
528 ## @param defaultBackend.automountServiceAccountToken Mount Service Account token in pod
530 automountServiceAccountToken: true
531 ## @param defaultBackend.hostAliases Add deployment host aliases
532 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
535 ## Iamguarded NGINX image
536 ## ref: https://hub.docker.com/r/iamguarded/nginx/tags/
537 ## @param defaultBackend.image.registry [default: REGISTRY_NAME] Default backend image registry
538 ## @param defaultBackend.image.repository [default: REPOSITORY_NAME/nginx] Default backend image repository
539 ## @skip defaultBackend.image.tag Default backend image tag (immutable tags are recommended)
540 ## @param defaultBackend.image.digest Default backend image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
541 ## @param defaultBackend.image.pullPolicy Image pull policy
542 ## @param defaultBackend.image.pullSecrets Specify docker-registry secret names as an array
546 repository: chainguard-private/nginx-iamguarded
549 ## Specify a imagePullPolicy
550 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
552 pullPolicy: IfNotPresent
553 ## Optionally specify an array of imagePullSecrets.
554 ## Secrets must be manually created in the namespace.
555 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
558 ## - myRegistryKeySecretName
561 ## @param defaultBackend.extraArgs Additional command line arguments to pass to Nginx container
564 ## @param defaultBackend.containerPort HTTP container port number
567 ## @param defaultBackend.serverBlockConfig [string] NGINX backend default server block configuration
568 ## Should be compliant with: https://kubernetes.github.io/ingress-nginx/user-guide/default-backend/
570 serverBlockConfig: |-
578 ## @param defaultBackend.replicaCount Desired number of default backend pods
581 ## Default backend pods' Security Context
582 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
583 ## @param defaultBackend.podSecurityContext.enabled Enable Default backend pods' Security Context
584 ## @param defaultBackend.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
585 ## @param defaultBackend.podSecurityContext.sysctls Set kernel settings using the sysctl interface
586 ## @param defaultBackend.podSecurityContext.supplementalGroups Set filesystem extra groups
587 ## @param defaultBackend.podSecurityContext.fsGroup Group ID for the container filesystem
591 fsGroupChangePolicy: Always
593 supplementalGroups: []
595 ## Default backend containers' Security Context (only main container)
596 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
597 ## @param defaultBackend.containerSecurityContext.enabled Enable Default backend containers' Security Context
598 ## @param defaultBackend.containerSecurityContext.capabilities.drop [array] Linux Kernel capabilities that should be dropped
599 ## @param defaultBackend.containerSecurityContext.allowPrivilegeEscalation Switch to allow priviledge escalation on the container
600 ## @param defaultBackend.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
601 ## @param defaultBackend.containerSecurityContext.runAsUser User ID for the Default backend container
602 ## @param defaultBackend.containerSecurityContext.runAsGroup Group ID for the Default backend container
603 ## @param defaultBackend.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
604 ## @param defaultBackend.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
605 ## @param defaultBackend.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
607 containerSecurityContext:
609 allowPrivilegeEscalation: false
613 readOnlyRootFilesystem: true
618 type: "RuntimeDefault"
619 ## Default backend containers' resource requests and limits
620 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
621 ## We usually recommend not to specify default resources and to leave this as a conscious
622 ## choice for the user. This also increases chances charts run on environments with little
623 ## resources, such as Minikube. If you do want to specify resources, uncomment the following
624 ## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
625 ## @param defaultBackend.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if defaultBackend.resources is set (defaultBackend.resources is recommended for production).
626 ## More information: https://github.com/iamguarded/charts/blob/main/iamguarded/common/templates/_resources.tpl#L15
628 resourcesPreset: "nano"
629 ## @param defaultBackend.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
640 ## Default backend containers' liveness probe. Evaluated as a template.
641 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
642 ## @param defaultBackend.livenessProbe.enabled Enable livenessProbe
643 ## @param defaultBackend.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
644 ## @param defaultBackend.livenessProbe.periodSeconds Period seconds for livenessProbe
645 ## @param defaultBackend.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
646 ## @param defaultBackend.livenessProbe.failureThreshold Failure threshold for livenessProbe
647 ## @param defaultBackend.livenessProbe.successThreshold Success threshold for livenessProbe
652 initialDelaySeconds: 30
656 ## Default backend containers' readiness probe. Evaluated as a template.
657 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
658 ## @param defaultBackend.readinessProbe.enabled Enable readinessProbe
659 ## @param defaultBackend.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
660 ## @param defaultBackend.readinessProbe.periodSeconds Period seconds for readinessProbe
661 ## @param defaultBackend.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
662 ## @param defaultBackend.readinessProbe.failureThreshold Failure threshold for readinessProbe
663 ## @param defaultBackend.readinessProbe.successThreshold Success threshold for readinessProbe
668 initialDelaySeconds: 0
672 ## Default backend containers' startup probe. Evaluated as a template.
673 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
674 ## @param defaultBackend.startupProbe.enabled Enable startupProbe
675 ## @param defaultBackend.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
676 ## @param defaultBackend.startupProbe.periodSeconds Period seconds for startupProbe
677 ## @param defaultBackend.startupProbe.timeoutSeconds Timeout seconds for startupProbe
678 ## @param defaultBackend.startupProbe.failureThreshold Failure threshold for startupProbe
679 ## @param defaultBackend.startupProbe.successThreshold Success threshold for startupProbe
684 initialDelaySeconds: 0
688 ## @param defaultBackend.customStartupProbe Custom liveness probe for the Web component
690 customStartupProbe: {}
691 ## @param defaultBackend.customLivenessProbe Custom liveness probe for the Web component
693 customLivenessProbe: {}
694 ## @param defaultBackend.customReadinessProbe Custom readiness probe for the Web component
696 customReadinessProbe: {}
697 ## @param defaultBackend.podLabels Extra labels for Controller pods
698 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
701 ## @param defaultBackend.podAnnotations Annotations for Controller pods
702 ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
705 ## @param defaultBackend.priorityClassName priorityClassName
706 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
708 priorityClassName: ""
709 ## @param defaultBackend.schedulerName Name of the k8s scheduler (other than default)
710 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
713 ## @param defaultBackend.terminationGracePeriodSeconds In seconds, time the given to the pod to terminate gracefully
714 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
716 terminationGracePeriodSeconds: 60
717 ## @param defaultBackend.topologySpreadConstraints Topology Spread Constraints for pod assignment
718 ## https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/
719 ## The value is evaluated as a template
721 topologySpreadConstraints: []
722 ## @param defaultBackend.podAffinityPreset Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
723 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
725 podAffinityPreset: ""
726 ## @param defaultBackend.podAntiAffinityPreset Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
727 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
729 podAntiAffinityPreset: soft
730 ## Node affinity preset
731 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
734 ## @param defaultBackend.nodeAffinityPreset.type Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
737 ## @param defaultBackend.nodeAffinityPreset.key Node label key to match. Ignored if `affinity` is set.
739 ## key: "kubernetes.io/e2e-az-name"
742 ## @param defaultBackend.nodeAffinityPreset.values Node label values to match. Ignored if `affinity` is set.
749 ## @param defaultBackend.command Override default container command (useful when using custom images)
752 ## @param defaultBackend.args Override default container args (useful when using custom images)
755 ## @param defaultBackend.lifecycleHooks for the %%MAIN_CONTAINER_NAME%% container(s) to automate configuration before or after startup
758 ## @param defaultBackend.extraEnvVars Array with extra environment variables to add to %%MAIN_CONTAINER_NAME%% nodes
765 ## @param defaultBackend.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for %%MAIN_CONTAINER_NAME%% nodes
768 ## @param defaultBackend.extraEnvVarsSecret Name of existing Secret containing extra env vars for %%MAIN_CONTAINER_NAME%% nodes
770 extraEnvVarsSecret: ""
771 ## @param defaultBackend.extraVolumes Optionally specify extra list of additional volumes for the %%MAIN_CONTAINER_NAME%% pod(s)
774 ## @param defaultBackend.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the %%MAIN_CONTAINER_NAME%% container(s)
776 extraVolumeMounts: []
777 ## @param defaultBackend.sidecars Add additional sidecar containers to the %%MAIN_CONTAINER_NAME%% pod(s)
780 ## - name: your-image-name
782 ## imagePullPolicy: Always
785 ## containerPort: 1234
788 ## @param defaultBackend.initContainers Add additional init containers to the %%MAIN_CONTAINER_NAME%% pod(s)
789 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
792 ## - name: your-image-name
794 ## imagePullPolicy: Always
795 ## command: ['sh', '-c', 'echo "hello world"']
798 ## @param defaultBackend.affinity Affinity for pod assignment
799 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
800 ## Note: defaultBackend.podAffinityPreset, defaultBackend.podAntiAffinityPreset, and defaultBackend.nodeAffinityPreset will be ignored when it's set
803 ## @param defaultBackend.nodeSelector Node labels for pod assignment
804 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
807 ## @param defaultBackend.tolerations Tolerations for pod assignment
808 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
811 ## Default backend Service parameters
814 ## @param defaultBackend.service.type Kubernetes Service type for default backend
817 ## @param defaultBackend.service.ports.http Default backend service HTTP port
821 ## @param defaultBackend.service.annotations Annotations for the default backend service
825 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
828 ## @param defaultBackend.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
831 ## @param defaultBackend.networkPolicy.allowExternal Don't require server label for connections
832 ## The Policy model to apply. When set to false, only pods with the correct
833 ## server label will have network access to the ports server is listening
834 ## on. When true, server will accept connections from any source
835 ## (with the correct destination port).
838 ## @param defaultBackend.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
840 allowExternalEgress: true
841 ## @param defaultBackend.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
851 ## - matchExpressions:
857 ## @param defaultBackend.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
867 ## - matchExpressions:
874 ## @param defaultBackend.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
875 ## @param defaultBackend.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
877 ingressNSMatchLabels: {}
878 ingressNSPodMatchLabels: {}
879 ## Default backend Pod Disruption Budget configuration
880 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
883 ## @param defaultBackend.pdb.create Enable/disable a Pod Disruption Budget creation for Default backend
886 ## @param defaultBackend.pdb.minAvailable Minimum number/percentage of Default backend pods that should remain scheduled
889 ## @param defaultBackend.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `defaultBackend.pdb.minAvailable` and `defaultBackend.pdb.maxUnavailable` are empty.
892## @section Traffic exposure parameters
897 ## @param service.type Kubernetes Service type for Controller
900 ## @param service.ports [object] Service ports
905 ## @param service.targetPorts [object] Map the controller service HTTP/HTTPS port
910 ## @param service.nodePorts [object] Specify the nodePort value(s) for the LoadBalancer and NodePort service types.
911 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
918 ## @param service.annotations Annotations for controller service
919 ## This can be used to set the LoadBalancer service type to internal only.
920 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
923 ## @param service.labels Labels for controller service
926 ## @param service.clusterIP Controller Internal Cluster Service IP (optional)
929 ## @param service.externalIPs Controller Service external IP addresses
930 ## Ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
933 ## @param service.ipFamilyPolicy Controller Service ipFamilyPolicy (optional, cloud specific)
934 ## This can be either SingleStack, PreferDualStack or RequireDualStack
935 ## ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
938 ## @param service.ipFamilies Controller Service ipFamilies (optional, cloud specific)
939 ## This can be either ["IPv4"], ["IPv6"], ["IPv4", "IPv6"] or ["IPv6", "IPv4"]
940 ## ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
943 ## @param service.loadBalancerClass Load balancer class if service type is `LoadBalancer`
944 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
946 loadBalancerClass: ""
947 ## @param service.loadBalancerIP Kubernetes LoadBalancerIP to request for Controller (optional, cloud specific)
948 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
951 ## @param service.loadBalancerSourceRanges List of IP CIDRs allowed access to load balancer (if supported)
952 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
954 loadBalancerSourceRanges: []
955 ## @param service.extraPorts Extra ports to expose (normally used with the `sidecar` value)
958 ## @param service.externalTrafficPolicy Set external traffic policy to: "Local" to preserve source IP on providers supporting it
959 ## Enable client source IP preservation
960 ## Ref: https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer
962 externalTrafficPolicy: ""
963 ## @param service.healthCheckNodePort Set this to the managed health-check port the kube-proxy will expose. If blank, a random port in the `NodePort` range will be assigned
965 healthCheckNodePort: 0
966 ## @param service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
967 ## If "ClientIP", consecutive client requests will be directed to the same Pod
968 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
970 sessionAffinity: None
971 ## @param service.sessionAffinityConfig Additional settings for the sessionAffinity
972 ## sessionAffinityConfig:
974 ## timeoutSeconds: 300
976 sessionAffinityConfig: {}
978## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
981 ## @param networkPolicy.enabled Specifies whether a NetworkPolicy should be created
984 ## @param networkPolicy.allowExternal Don't require server label for connections
985 ## The Policy model to apply. When set to false, only pods with the correct
986 ## server label will have network access to the ports server is listening
987 ## on. When true, server will accept connections from any source
988 ## (with the correct destination port).
991 ## @param networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
993 allowExternalEgress: true
994 ## @param networkPolicy.kubeAPIServerPorts [array] List of possible endpoints to kube-apiserver (limit to your cluster settings to increase security)
996 kubeAPIServerPorts: [443, 6443, 8443]
997 ## @param networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1007 ## - matchExpressions:
1013 ## @param networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1023 ## - matchExpressions:
1030 ## @param networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1031 ## @param networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1033 ingressNSMatchLabels: {}
1034 ingressNSPodMatchLabels: {}
1035## @section RBAC parameters
1037## Pods Service Account
1038## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1041 ## @param serviceAccount.create Enable the creation of a ServiceAccount for Controller pods
1044 ## @param serviceAccount.name Name of the created ServiceAccount
1045 ## If not set and create is true, a name is generated using the metrics-server.fullname template
1047 ## @param serviceAccount.annotations Annotations for service account.
1048 ## Only used if `create` is `true`.
1051 ## @param serviceAccount.automountServiceAccountToken Automount service account token for the server service account
1053 automountServiceAccountToken: false
1055## Ref: https://kubernetes.io/docs/admin/authorization/rbac/
1058 ## @param rbac.create Specifies whether RBAC rules should be created
1061 ## @param rbac.rules Custom RBAC rules
1073## @section Other parameters
1075## Controller Pod Disruption Budget configuration
1076## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
1079 ## @param pdb.create Enable/disable a Pod Disruption Budget creation for Controller
1082 ## @param pdb.minAvailable Minimum number/percentage of Controller pods that should remain scheduled
1085 ## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `pdb.minAvailable` and `pdb.maxUnavailable` are empty.
1088## Controller Autoscaling configuration
1089## @param autoscaling.enabled Enable autoscaling for Controller
1090## @param autoscaling.minReplicas Minimum number of Controller replicas
1091## @param autoscaling.maxReplicas Maximum number of Controller replicas
1092## @param autoscaling.targetCPU Target CPU utilization percentage
1093## @param autoscaling.targetMemory Target Memory utilization percentage
1101## @section Metrics parameters
1103## Prometheus exporter parameters
1106 ## @param metrics.enabled Enable exposing Controller statistics
1109 ## Prometheus exporter service parameters
1112 ## @param metrics.service.type Type of Prometheus metrics service to create
1115 ## @param metrics.service.ports.metrics Service HTTP management port
1119 ## @param metrics.service.annotations [object] Annotations for the Prometheus exporter service
1122 prometheus.io/scrape: "true"
1123 prometheus.io/port: "{{ coalesce .Values.metrics.service.ports.metrics .Values.metrics.service.port }}"
1124 ## @param metrics.service.labels Labels for the Prometheus exporter service
1127 ## Prometheus Operator ServiceMonitor configuration
1130 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor resource for scraping metrics using PrometheusOperator
1133 ## @param metrics.serviceMonitor.namespace Namespace in which Prometheus is running
1136 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1139 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped
1140 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1143 ## @param metrics.serviceMonitor.scrapeTimeout Specify the timeout after which the scrape is ended
1144 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1146 ## scrapeTimeout: 10s
1149 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
1150 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
1153 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
1154 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
1156 metricRelabelings: []
1157 ## @param metrics.serviceMonitor.selector ServiceMonitor selector labels
1158 ## ref: https://github.com/iamguarded/charts/tree/main/iamguarded/prometheus-operator#prometheus-configuration
1161 ## prometheus: my-prometheus
1164 ## @param metrics.serviceMonitor.annotations Extra annotations for the ServiceMonitor
1167 ## @param metrics.serviceMonitor.labels Extra labels for the ServiceMonitor
1170 ## @param metrics.serviceMonitor.honorLabels honorLabels chooses the metric's labels on collisions with target labels
1173 ## @param metrics.prometheusRule.enabled Create PrometheusRules resource for scraping metrics using PrometheusOperator
1174 ## @param metrics.prometheusRule.additionalLabels Used to pass Labels that are required by the Installed Prometheus Operator
1175 ## @param metrics.prometheusRule.namespace Namespace which Prometheus is running in
1176 ## @param metrics.prometheusRule.rules Rules to be prometheus in YAML format, check values for an example
1180 additionalLabels: {}