diff --git a/charts/mailpit/Chart.lock b/charts/mailpit/Chart.lock index de7d689..69cc4cd 100644 --- a/charts/mailpit/Chart.lock +++ b/charts/mailpit/Chart.lock @@ -1,6 +1,6 @@ dependencies: - name: common repository: oci://registry-1.docker.io/bitnamicharts - version: 2.15.3 -digest: sha256:6e497dd048074cf051470d6ee2a2357401f18bb46afa1d515b1440014152a987 -generated: "2024-02-17T13:55:40.081779373+01:00" + version: 2.19.0 +digest: sha256:5eade02d974e0d4ee0ec0701dc0962e3fa57cbb75a5e13aeca334153396a6f28 +generated: "2024-03-13T21:22:15.250616749+01:00" diff --git a/charts/mailpit/Chart.yaml b/charts/mailpit/Chart.yaml index 9e431fc..ca213cc 100644 --- a/charts/mailpit/Chart.yaml +++ b/charts/mailpit/Chart.yaml @@ -3,7 +3,7 @@ name: mailpit description: An email and SMTP testing tool with API for developers icon: https://raw.githubusercontent.com/axllent/mailpit/develop/server/ui/mailpit.svg type: application -version: 0.14.0 +version: 0.15.0 appVersion: 1.14.4 dependencies: - name: common diff --git a/charts/mailpit/ci/default-values.yaml b/charts/mailpit/ci/default-values.yaml index e69de29..0967ef4 100644 --- a/charts/mailpit/ci/default-values.yaml +++ b/charts/mailpit/ci/default-values.yaml @@ -0,0 +1 @@ +{} diff --git a/charts/mailpit/ci/loadbalancer-values.yaml b/charts/mailpit/ci/loadbalancer-values.yaml new file mode 100644 index 0000000..73dd9bb --- /dev/null +++ b/charts/mailpit/ci/loadbalancer-values.yaml @@ -0,0 +1,6 @@ +service: + http: + type: LoadBalancer + smtp: + type: LoadBalancer + loadBalancerIP: 1.2.3.4 diff --git a/charts/mailpit/ci/nodeport-values.yaml b/charts/mailpit/ci/nodeport-values.yaml new file mode 100644 index 0000000..e4ff7b1 --- /dev/null +++ b/charts/mailpit/ci/nodeport-values.yaml @@ -0,0 +1,6 @@ +service: + http: + type: NodePort + smtp: + type: NodePort + nodePort: 25252 diff --git a/charts/mailpit/templates/http-service.yaml b/charts/mailpit/templates/http-service.yaml index 7fa16d2..88127cf 100644 --- a/charts/mailpit/templates/http-service.yaml +++ b/charts/mailpit/templates/http-service.yaml @@ -9,10 +9,19 @@ metadata: {{- end }} spec: type: {{ .Values.service.http.type }} + {{- if or (eq .Values.service.http.type "LoadBalancer") (eq .Values.service.http.type "NodePort") }} + externalTrafficPolicy: {{ .Values.service.http.externalTrafficPolicy | quote }} + {{- end }} + {{- if and (eq .Values.service.http.type "LoadBalancer") (not (empty .Values.service.http.loadBalancerSourceRanges)) }} + loadBalancerSourceRanges: {{ .Values.service.http.loadBalancerSourceRanges }} + {{- end }} + {{- if and (eq .Values.service.http.type "LoadBalancer") (not (empty .Values.service.http.loadBalancerIP)) }} + loadBalancerIP: {{ .Values.service.http.loadBalancerIP }} + {{- end }} ports: - name: http port: 80 - {{- if and (or (eq .Values.service.http.type "NodePort") (eq .Values.service.http.type "LoadBalancer")) (not (empty .Values.service.http.nodePort)) }} + {{- if and (eq .Values.service.http.type "NodePort" "LoadBalancer") (gt (.Values.service.http.nodePort | int) 0) }} nodePort: {{ .Values.service.http.nodePort }} {{- end }} targetPort: http diff --git a/charts/mailpit/templates/smtp-service.yaml b/charts/mailpit/templates/smtp-service.yaml index 1d39bf1..b2aa7e1 100644 --- a/charts/mailpit/templates/smtp-service.yaml +++ b/charts/mailpit/templates/smtp-service.yaml @@ -9,10 +9,19 @@ metadata: {{- end }} spec: type: {{ .Values.service.smtp.type }} + {{- if or (eq .Values.service.smtp.type "LoadBalancer") (eq .Values.service.smtp.type "NodePort") }} + externalTrafficPolicy: {{ .Values.service.smtp.externalTrafficPolicy | quote }} + {{- end }} + {{- if and (eq .Values.service.smtp.type "LoadBalancer") (not (empty .Values.service.smtp.loadBalancerSourceRanges)) }} + loadBalancerSourceRanges: {{ .Values.service.smtp.loadBalancerSourceRanges }} + {{- end }} + {{- if and (eq .Values.service.smtp.type "LoadBalancer") (not (empty .Values.service.smtp.loadBalancerIP)) }} + loadBalancerIP: {{ .Values.service.smtp.loadBalancerIP }} + {{- end }} ports: - name: smtp port: 25 - {{- if and (or (eq .Values.service.smtp.type "NodePort") (eq .Values.service.smtp.type "LoadBalancer")) (not (empty .Values.service.smtp.nodePort)) }} + {{- if and (eq .Values.service.smtp.type "NodePort" "LoadBalancer") (gt (.Values.service.smtp.nodePort | int) 0) }} nodePort: {{ .Values.service.smtp.nodePort }} {{- end }} targetPort: smtp diff --git a/charts/mailpit/values.yaml b/charts/mailpit/values.yaml index 4732a22..84ecb67 100644 --- a/charts/mailpit/values.yaml +++ b/charts/mailpit/values.yaml @@ -190,14 +190,49 @@ service: ## @param service.http.nodePort nodeport bind for HTTP service ## type: ClusterIP + ## Node ports to expose + ## @param service.http.nodePort Node port for HTTP + ## nodePort: 0 + ## @param service.http.loadBalancerIP %%MAIN_CONTAINER_NAME%% service Load Balancer IP + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer + ## + loadBalancerIP: "" + ## @param service.http.loadBalancerSourceRanges %%MAIN_CONTAINER_NAME%% service Load Balancer sources + ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service + ## e.g: + ## loadBalancerSourceRanges: + ## - 10.10.10.0/24 + ## + loadBalancerSourceRanges: [] + ## @param service.http.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy + ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip + ## + externalTrafficPolicy: Cluster smtp: ## @param service.smtp.type service type ## @param service.smtp.nodePort nodeport bind for STMP service ## type: ClusterIP + ## Node ports to expose + ## @param service.smtp.nodePort Node port for HTTP + ## nodePort: 0 - + ## @param service.smtp.loadBalancerIP %%MAIN_CONTAINER_NAME%% service Load Balancer IP + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-loadbalancer + ## + loadBalancerIP: "" + ## @param service.smtp.loadBalancerSourceRanges %%MAIN_CONTAINER_NAME%% service Load Balancer sources + ## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service + ## e.g: + ## loadBalancerSourceRanges: + ## - 10.10.10.0/24 + ## + loadBalancerSourceRanges: [] + ## @param service.smtp.externalTrafficPolicy %%MAIN_CONTAINER_NAME%% service external traffic policy + ## ref http://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip + ## + externalTrafficPolicy: Cluster ## ingress parameters ## ref: http://kubernetes.io/docs/user-guide/ingress/