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
22## @param clusterDomain Kubernetes Cluster Domain
24clusterDomain: cluster.local
26## ref: https://hub.docker.com/r/bitnami/image/tags/
27## @param image.registry image registry
28## @param image.repository image repository
29## @param image.tag image tag (immutable tags are recommended)
30## @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)
31## @param image.pullPolicy image pull policy
32## @param image.pullSecrets image pull secrets
33## @param image.debug Enable image debug mode
37 repository: chainguard-private/mailpit
39 digest: sha256:2da5fddc82878a4a8263645a16be173f25fabb81d3e45bc3d77eaeb6ba20facf
40 ## Specify a imagePullPolicy
41 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
42 ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
44 pullPolicy: IfNotPresent
45 ## Optionally specify an array of imagePullSecrets.
46 ## Secrets must be manually created in the namespace.
47 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
50 ## - myRegistryKeySecretName
56## @param commonLabels [object] Labels to add to all deployed objects
59 app.kubernetes.io/version: "{{ .Values.image.tag }}"
60## @param podLabels [object] Extra labels for pods
61## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
64 helm.sh/chart: "{{ .Chart.Name }}"
65## @param updateStrategy.type statefulset strategy type
66## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
70 ## Can be set to RollingUpdate or OnDelete
73## @param podSecurityContext [object] SecurityContext for pods
74## ref: https://kubernetes.io/docs/concepts/security/pod-security-standards/
79## @param containerSecurityContext [object] SecurityContext for pods
80## ref: https://kubernetes.io/docs/concepts/security/pod-security-standards/
82containerSecurityContext:
84 allowPrivilegeEscalation: false
91 readOnlyRootFilesystem: true
94## @param replicaCount Number of replicas to deploy
97## @param revisionHistoryLimit The number of old history to retain to allow rollback
99revisionHistoryLimit: 10
100## resource requests and limits
101## ref: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
102## @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).
103## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
105resourcesPreset: "nano"
106# Name of the priorityClass to apply to the Cluster Agent
107## @param priorityClassName Name of the priority class to assign to the pods
108## Ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
111## ref: http://kubernetes.io/docs/user-guide/compute-resources/
112## @param resources [object] The resources for the containers
115## @param affinity Pod affinity
116## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity
119## @param args Override default container args (useful when using custom images)
122## @param extraEnvVars Array with extra environment variables to add to nodes
129## @param extraEnvVarsSecret Name of existing Secret containing extra env vars for containers
131extraEnvVarsSecret: ""
132## @param extraVolumes Optionally specify extra list of additional volumes for the pods
135## @param extraVolumeMounts Optionally specify extra list of additional volumeMounts for the containers
138## @param livenessProbe [object] Enables the livenessProbe for mailpit
141 initialDelaySeconds: 2
146## @param readinessProbe [object] Enables the readinessProbe for mailpit
149 initialDelaySeconds: 2
154## @param nodeSelector Node labels for pod assignment
155## Ref: https://kubernetes.io/docs/user-guide/node-selection/
157## @param tolerations expects input structure as per specification https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#toleration-v1-core
160## - key: foo.bar.com/role
165## @param enableServiceLinks enabled by default https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26
166enableServiceLinks: true
167# https://github.com/axllent/mailpit/wiki/Basic-authentication
168# https://github.com/axllent/mailpit/wiki/HTTPS
170 ## @param mailpit.webroot Set the webroot for web UI & API
173 ## @param mailpit.ui.authFile.enabled Adding basic authentication to web UI
174 ## @param mailpit.ui.authFile.htpasswd htpasswd content
175 ## @param mailpit.ui.authFile.existingSecret Secret containing htpasswd content
180 ## @param mailpit.ui.tls.enabled Enable tls for web UI
181 ## @param mailpit.ui.tls.secretName tls secret for web UI
186 ## @param mailpit.smtp.authFile.enabled Adding SMTP authentication
187 ## @param mailpit.smtp.authFile.htpasswd htpasswd content
188 ## @param mailpit.smtp.authFile.existingSecret Secret containing htpasswd content
193 ## ref: https://mailpit.axllent.org/docs/configuration/certificates/#auto-generate-self-signed-certificates
194 ## @param mailpit.smtp.tls.enabled Enable TLS for SMTP
195 ## @param mailpit.smtp.tls.method TLS certificate source: generated by Mailpit (`auto`), cert-manager (`cert-manager`) or an existing Secret (`secret`)
196 ## @param mailpit.smtp.tls.secretName Existing TLS Secret for SMTP when method is secret
197 ## @param mailpit.smtp.tls.auto.dnsNames DNS names included in the certificate generated by Mailpit. Defaults to the SMTP Service names
198 ## @param mailpit.smtp.tls.certManager.dnsNames DNS names included in the certificate. Defaults to the SMTP Service names
199 ## @param mailpit.smtp.tls.certManager.issuerRef cert-manager issuer for the certificate
210 ## @param mailpit.relay.enabled enable SMTP Relay configuration
211 ## @param mailpit.relay.config Mailpit SMTP relay configuration
212 ## @param mailpit.relay.relayAll Relay all messages to relay
216## @section Traffic Exposure Parameters
223 ## @param service.http.name service name, default to ${common.names.fullname}-http, e.g. mailpit-http
226 ## @param service.http.type service type
229 ## @param service.http.port port for http
232 ## @param service.http.nodePort nodeport bind for HTTP service
235 ## @param service.http.loadBalancerIP %%MAIN_CONTAINER_NAME%% service Load Balancer IP
236 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
239 ## @param service.http.loadBalancerSourceRanges %%MAIN_CONTAINER_NAME%% service Load Balancer sources
240 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
242 ## loadBalancerSourceRanges:
245 loadBalancerSourceRanges: []
246 ## @param service.http.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy
247 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
249 externalTrafficPolicy: Cluster
251 ## @param service.smtp.name service name, default to ${common.names.fullname}-smtp, e.g. mailpit-smtp
254 ## @param service.smtp.type service type
257 ## @param service.smtp.port port for SMTP
260 ## @param service.smtp.nodePort nodeport bind for STMP service
263 ## @param service.smtp.loadBalancerIP %%MAIN_CONTAINER_NAME%% service Load Balancer IP
264 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer
267 ## @param service.smtp.loadBalancerSourceRanges %%MAIN_CONTAINER_NAME%% service Load Balancer sources
268 ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
270 ## loadBalancerSourceRanges:
273 loadBalancerSourceRanges: []
274 ## @param service.smtp.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy
275 ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
277 externalTrafficPolicy: Cluster
279## ref: http://kubernetes.io/docs/user-guide/ingress/
282 ## @param ingress.enabled Enable ingress record generation for %%MAIN_CONTAINER_NAME%%
285 ## @param ingress.annotations Additional annotations for the Ingress resource. To enable certificate autogeneration, place here your cert-manager annotations.
286 ## Use this parameter to set the required annotations for cert-manager, see
287 ## ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
290 ## kubernetes.io/ingress.class: nginx
291 ## cert-manager.io/cluster-issuer: cluster-issuer-name
294 ## @param ingress.ingressClassName IngressClass that will be be used to implement the Ingress (Kubernetes 1.18+)
295 ## This is supported in Kubernetes 1.18+ and required if you have more than one IngressClass marked as the default for your cluster .
296 ## ref: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
299 ## @param ingress.hostname Default host for the ingress record
301 hostname: hostname.local
302 ## @param ingress.path Default path for the ingress record
303 ## NOTE: You may need to set this to '/*' in order to use this with ALB ingress controllers
306 ## @param ingress.pathType Ingress path type
308 pathType: ImplementationSpecific
309 ## @param ingress.extraHosts The list of additional hostnames to be covered with this ingress record.
310 ## Most likely the hostname above will be enough, but in the event more hosts are needed, this is an array
312 ## - name: nginx.local
316 ## @param ingress.tls Enable TLS configuration for the host defined at `ingress.hostname` parameter
317 ## TLS certificates will be retrieved from a TLS secret
319 ## - Rely on cert-manager to create it by setting the corresponding annotations
322 ## @param ingress.extraTls The tls configuration for additional hostnames to be covered with this ingress record.
323 ## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
327 ## secretName: nginx.local-tls
330## Gateway API route parameters
331## ref: https://gateway-api.sigs.k8s.io/api-types/httproute/
335 ## @param route.http.enabled Enable HTTPRoute generation for the HTTP service
338 ## @param route.http.parentRefs References to the Gateways the HTTPRoute attaches to
341 ## @param route.http.hostnames Hostnames matched against the HTTP Host header
344 ## @param route.http.matches Rule matches (paths, headers, query params, method)
346 ## @param route.http.filters Filters applied to requests matched by the rule
349 ## @param route.http.timeouts Per-rule timeouts (request, backendRequest)
352## @section Persistence Parameters
355## Enable persistence using Persistent Volume Claims
356## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
359 ## @param persistence.enabled Enable persistence using Persistent Volume Claims
362 ## @param persistence.storageClass Storage class of backing PVC
363 ## If defined, storageClassName: <storageClass>
364 ## If set to "-", storageClassName: "", which disables dynamic provisioning
365 ## If undefined (the default) or set to null, no storageClassName spec is
366 ## set, choosing the default provisioner. (gp2 on AWS, standard on
367 ## GKE, AWS & OpenStack)
370 ## @param persistence.annotations Persistent Volume Claim annotations
373 ## @param persistence.labels Persistent Volume Claim labels
376 ## @param persistence.accessModes Persistent Volume Access Modes
380 ## @param persistence.size Size of data volume
383 ## @param persistence.existingClaim The name of an existing PVC to use for persistence
386 ## @param persistence.selector Selector to match an existing Persistent Volume for WordPress data PVC
387 ## If set, the PVC can't have a PV dynamically provisioned for it
394 ## @param persistence.dataSource Custom PVC data source
397 ## @param persistence.volumeName Custom PVC volumeName
400## @param extraDeploy Array of extra objects to deploy with the release
403# - apiVersion: networking.istio.io/v1alpha3
404# kind: VirtualService
410# - default/gtw-priv-http
412# - mailpit.yourhost.com