1## @section Global parameters
2## Global Docker image parameters
3## Please, note that this will override the image parameters, including dependencies, configured to use the global value
4## Current available global Docker image parameters: imageRegistry, imagePullSecrets and storageClass
7## @param global.imageRegistry Global Docker image registry
8## @param global.imagePullSecrets Global Docker registry secret names as an array
9## @param global.storageClass Global StorageClass for Persistent Volume(s)
15 ## - myRegistryKeySecretName
23## ref: https://hub.docker.com/r/bitnami/image/tags/
24## @param image.registry image registry
25## @param image.repository image repository
26## @param image.tag image tag (immutable tags are recommended)
27## @param image.digest image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag image tag (immutable tags are recommended)
28## @param image.pullPolicy image pull policy
29## @param image.pullSecrets image pull secrets
30## @param image.debug Enable image debug mode
34 repository: chainguard-private/mailpit
36 digest: sha256:b374a4a79a6ae278a8aacfa4faf50e47911e90400e5396bd735699927b521012
37 ## Specify a imagePullPolicy
38 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
39 ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
41 pullPolicy: IfNotPresent
42 ## Optionally specify an array of imagePullSecrets.
43 ## Secrets must be manually created in the namespace.
44 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
47 ## - myRegistryKeySecretName
53## @param commonLabels [object] Labels to add to all deployed objects
56 app.kubernetes.io/version: "{{ .Values.image.tag }}"
57## @param podLabels [object] Extra labels for pods
58## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
61 helm.sh/chart: "{{ .Chart.Name }}"
62## @param updateStrategy.type statefulset strategy type
63## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
67 ## Can be set to RollingUpdate or OnDelete
70## @param podSecurityContext [object] SecurityContext for pods
71## ref: https://kubernetes.io/docs/concepts/security/pod-security-standards/
76## @param containerSecurityContext [object] SecurityContext for pods
77## ref: https://kubernetes.io/docs/concepts/security/pod-security-standards/
79containerSecurityContext:
81 allowPrivilegeEscalation: false
88 readOnlyRootFilesystem: true
91## @param replicaCount Number of replicas to deploy
94## @param revisionHistoryLimit The number of old history to retain to allow rollback
96revisionHistoryLimit: 10
97## resource requests and limits
98## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
99## @param resourcesPreset Set container resources according to one common preset (allowed values: none, nano, small, medium, large, xlarge, 2xlarge). This is ignored if resources is set (resources is recommended for production).
100## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
102resourcesPreset: "nano"
103# Name of the priorityClass to apply to the Cluster Agent
104## @param priorityClassName Name of the priority class to assign to the pods
105## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
108## ref: http://kubernetes.io/docs/user-guide/compute-resources/
109## @param resources [object] The resources for the containers
112## @param affinity Pod affinity
113## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
116## @param args Override default container args (useful when using custom images)
119## @param extraEnvVars Array with extra environment variables to add to nodes
126## @param extraEnvVarsSecret Name of existing Secret containing extra env vars for containers
128extraEnvVarsSecret: ""
129## @param extraVolumes Optionally specify extra list of additional volumes for the pods
132## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the containers
135## @param livenessProbe [object] Enables the livenessProbe for mailpit
138 initialDelaySeconds: 2
143## @param readinessProbe [object] Enables the readinessProbe for mailpit
146 initialDelaySeconds: 2
151## @param nodeSelector Node labels for pod assignment
152## Ref: https://kubernetes.io/docs/user-guide/node-selection/
154## @param tolerations expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
157## - key: foo.bar.com/role
162## @param enableServiceLinks enabled by default https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26
163enableServiceLinks: true
164# https://github.com/axllent/mailpit/wiki/Basic-authentication
165# https://github.com/axllent/mailpit/wiki/HTTPS
167 ## @param mailpit.webroot Set the webroot for web UI & API
170 ## @param mailpit.ui.authFile.enabled Adding basic authentication to web UI
171 ## @param mailpit.ui.authFile.htpasswd htpasswd content
172 ## @param mailpit.ui.authFile.existingSecret Secret containing htpasswd content
177 ## @param mailpit.ui.tls.enabled Enable tls for web UI
178 ## @param mailpit.ui.tls.secretName tls secret for web UI
183 ## @param mailpit.smtp.authFile.enabled Adding SMTP authentication
184 ## @param mailpit.smtp.authFile.htpasswd htpasswd content
185 ## @param mailpit.smtp.authFile.existingSecret Secret containing htpasswd content
190 ## @param mailpit.smtp.tls.enabled Enable tls for SMTP
191 ## @param mailpit.smtp.tls.secretName tls secret for SMTP
196 ## @param mailpit.relay.enabled enable SMTP Relay configuration
197 ## @param mailpit.relay.config Mailpit SMTP relay configuration
198 ## @param mailpit.relay.relayAll Relay all messages to relay
202## @section Traffic Exposure Parameters
209 ## @param service.http.name service name, default to ${common.names.fullname}-http, e.g. mailpit-http
212 ## @param service.http.type service type
215 ## @param service.http.port port for http
218 ## @param service.http.nodePort nodeport bind for HTTP service
221 ## @param service.http.loadBalancerIP %%MAIN_CONTAINER_NAME%% service Load Balancer IP
222 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
225 ## @param service.http.loadBalancerSourceRanges %%MAIN_CONTAINER_NAME%% service Load Balancer sources
226 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
228 ## loadBalancerSourceRanges:
231 loadBalancerSourceRanges: []
232 ## @param service.http.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy
233 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
235 externalTrafficPolicy: Cluster
237 ## @param service.smtp.name service name, default to ${common.names.fullname}-smtp, e.g. mailpit-smtp
240 ## @param service.smtp.type service type
243 ## @param service.smtp.port port for SMTP
246 ## @param service.smtp.nodePort nodeport bind for STMP service
249 ## @param service.smtp.loadBalancerIP %%MAIN_CONTAINER_NAME%% service Load Balancer IP
250 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
253 ## @param service.smtp.loadBalancerSourceRanges %%MAIN_CONTAINER_NAME%% service Load Balancer sources
254 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
256 ## loadBalancerSourceRanges:
259 loadBalancerSourceRanges: []
260 ## @param service.smtp.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy
261 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
263 externalTrafficPolicy: Cluster
265## ref: http://kubernetes.io/docs/user-guide/ingress/
268 ## @param ingress.enabled Enable ingress record generation for %%MAIN_CONTAINER_NAME%%
271 ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
272 ## Use this parameter to set the required annotations for cert-manager, see
273 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
276 ## kubernetes.io/ingress.class: nginx
277 ## cert-manager.io/cluster-issuer: cluster-issuer-name
280 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
281 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
282 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
285 ## @param ingress.hostname Default host for the ingress record
287 hostname: hostname.local
288 ## @param ingress.path Default path for the ingress record
289 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
292 ## @param ingress.pathType Ingress path type
294 pathType: ImplementationSpecific
295 ## @param ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
296 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
298 ## - name: nginx.local
302 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
303 ## TLS certificates will be retrieved from a TLS secret
305 ## - Rely on cert-manager to create it by setting the corresponding annotations
308 ## @param ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
309 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
313 ## secretName: nginx.local-tls
316## Gateway API route parameters
317## ref: https://gateway-api.sigs.k8s.io/api-types/httproute/
321 ## @param route.http.enabled Enable HTTPRoute generation for the HTTP service
324 ## @param route.http.parentRefs References to the Gateways the HTTPRoute attaches to
327 ## @param route.http.hostnames Hostnames matched against the HTTP Host header
330 ## @param route.http.matches Rule matches (paths, headers, query params, method)
332 ## @param route.http.filters Filters applied to requests matched by the rule
335 ## @param route.http.timeouts Per-rule timeouts (request, backendRequest)
338## @section Persistence Parameters
341## Enable persistence using Persistent Volume Claims
342## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
345 ## @param persistence.enabled Enable persistence using Persistent Volume Claims
348 ## @param persistence.storageClass Storage class of backing PVC
349 ## If defined, storageClassName: <storageClass>
350 ## If set to "-", storageClassName: "", which disables dynamic provisioning
351 ## If undefined (the default) or set to null, no storageClassName spec is
352 ## set, choosing the default provisioner. (gp2 on AWS, standard on
353 ## GKE, AWS & OpenStack)
356 ## @param persistence.annotations Persistent Volume Claim annotations
359 ## @param persistence.labels Persistent Volume Claim labels
362 ## @param persistence.accessModes Persistent Volume Access Modes
366 ## @param persistence.size Size of data volume
369 ## @param persistence.existingClaim The name of an existing PVC to use for persistence
372 ## @param persistence.selector Selector to match an existing Persistent Volume for WordPress data PVC
373 ## If set, the PVC can't have a PV dynamically provisioned for it
380 ## @param persistence.dataSource Custom PVC data source
383 ## @param persistence.volumeName Custom PVC volumeName
386## @param extraDeploy Array of extra objects to deploy with the release
389# - apiVersion: networking.istio.io/v1alpha3
390# kind: VirtualService
396# - default/gtw-priv-http
398# - mailpit.yourhost.com