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:1ae4fd317fa4fdeb3959ae4773adc1daa299998eef762edf3cf74b82c6e4fc99
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 livenessProbe [object] Enables the livenessProbe for mailpit
132 initialDelaySeconds: 2
137## @param readinessProbe [object] Enables the readinessProbe for mailpit
140 initialDelaySeconds: 2
145## @param nodeSelector Node labels for pod assignment
146## Ref: https://kubernetes.io/docs/user-guide/node-selection/
148## @param tolerations expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
151## - key: foo.bar.com/role
156## @param enableServiceLinks enabled by default https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26
157enableServiceLinks: true
158# https://github.com/axllent/mailpit/wiki/Basic-authentication
159# https://github.com/axllent/mailpit/wiki/HTTPS
161 ## @param mailpit.webroot Set the webroot for web UI & API
164 ## @param mailpit.ui.authFile.enabled Adding basic authentication to web UI
165 ## @param mailpit.ui.authFile.htpasswd htpasswd content
166 ## @param mailpit.ui.authFile.existingSecret Secret containing htpasswd content
171 ## @param mailpit.ui.tls.enabled Enable tls for web UI
172 ## @param mailpit.ui.tls.secretName tls secret for web UI
177 ## @param mailpit.smtp.authFile.enabled Adding SMTP authentication
178 ## @param mailpit.smtp.authFile.htpasswd htpasswd content
179 ## @param mailpit.smtp.authFile.existingSecret Secret containing htpasswd content
184 ## @param mailpit.smtp.tls.enabled Enable tls for SMTP
185 ## @param mailpit.smtp.tls.secretName tls secret for SMTP
190 ## @param mailpit.relay.enabled enable SMTP Relay configuration
191 ## @param mailpit.relay.config Mailpit SMTP relay configuration
192 ## @param mailpit.relay.relayAll Relay all messages to relay
196## @section Traffic Exposure Parameters
203 ## @param service.http.name service name, default to ${common.names.fullname}-http, e.g. mailpit-http
206 ## @param service.http.type service type
209 ## @param service.http.port port for http
212 ## @param service.http.nodePort nodeport bind for HTTP service
215 ## @param service.http.loadBalancerIP %%MAIN_CONTAINER_NAME%% service Load Balancer IP
216 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
219 ## @param service.http.loadBalancerSourceRanges %%MAIN_CONTAINER_NAME%% service Load Balancer sources
220 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
222 ## loadBalancerSourceRanges:
225 loadBalancerSourceRanges: []
226 ## @param service.http.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy
227 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
229 externalTrafficPolicy: Cluster
231 ## @param service.smtp.name service name, default to ${common.names.fullname}-smtp, e.g. mailpit-smtp
234 ## @param service.smtp.type service type
237 ## @param service.smtp.port port for SMTP
240 ## @param service.smtp.nodePort nodeport bind for STMP service
243 ## @param service.smtp.loadBalancerIP %%MAIN_CONTAINER_NAME%% service Load Balancer IP
244 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
247 ## @param service.smtp.loadBalancerSourceRanges %%MAIN_CONTAINER_NAME%% service Load Balancer sources
248 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
250 ## loadBalancerSourceRanges:
253 loadBalancerSourceRanges: []
254 ## @param service.smtp.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy
255 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
257 externalTrafficPolicy: Cluster
259## ref: http://kubernetes.io/docs/user-guide/ingress/
262 ## @param ingress.enabled Enable ingress record generation for %%MAIN_CONTAINER_NAME%%
265 ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
266 ## Use this parameter to set the required annotations for cert-manager, see
267 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
270 ## kubernetes.io/ingress.class: nginx
271 ## cert-manager.io/cluster-issuer: cluster-issuer-name
274 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
275 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
276 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
279 ## @param ingress.hostname Default host for the ingress record
281 hostname: hostname.local
282 ## @param ingress.path Default path for the ingress record
283 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
286 ## @param ingress.pathType Ingress path type
288 pathType: ImplementationSpecific
289 ## @param ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
290 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
292 ## - name: nginx.local
296 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
297 ## TLS certificates will be retrieved from a TLS secret
299 ## - Rely on cert-manager to create it by setting the corresponding annotations
302 ## @param ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
303 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
307 ## secretName: nginx.local-tls
310## @section Persistence Parameters
313## Enable persistence using Persistent Volume Claims
314## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
317 ## @param persistence.enabled Enable persistence using Persistent Volume Claims
320 ## @param persistence.storageClass Storage class of backing PVC
321 ## If defined, storageClassName: <storageClass>
322 ## If set to "-", storageClassName: "", which disables dynamic provisioning
323 ## If undefined (the default) or set to null, no storageClassName spec is
324 ## set, choosing the default provisioner. (gp2 on AWS, standard on
325 ## GKE, AWS & OpenStack)
328 ## @param persistence.annotations Persistent Volume Claim annotations
331 ## @param persistence.labels Persistent Volume Claim labels
334 ## @param persistence.accessModes Persistent Volume Access Modes
338 ## @param persistence.size Size of data volume
341 ## @param persistence.existingClaim The name of an existing PVC to use for persistence
344 ## @param persistence.selector Selector to match an existing Persistent Volume for WordPress data PVC
345 ## If set, the PVC can't have a PV dynamically provisioned for it
352 ## @param persistence.dataSource Custom PVC data source
355 ## @param persistence.volumeName Custom PVC volumeName
358## extraDeploy could be utilized to add dynamic manifests via values
362# - apiVersion: networking.istio.io/v1alpha3
363# kind: VirtualService
369# - default/gtw-priv-http
371# - mailpit.yourhost.com