Skip to content

Commit 08a44b1

Browse files
committed
feat: add mailpit for email test capture
1 parent f44b3cf commit 08a44b1

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed

scripts/k8s-local-start.sh

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,61 @@ initialize_foundationdb() {
323323
return 0
324324
}
325325

326+
deploy_mailpit() {
327+
log_info "Deploying Mailpit (email catcher for testing)..."
328+
329+
kubectl apply -f - <<EOF
330+
apiVersion: apps/v1
331+
kind: Deployment
332+
metadata:
333+
name: mailpit
334+
namespace: ${NAMESPACE}
335+
spec:
336+
replicas: 1
337+
selector:
338+
matchLabels:
339+
app: mailpit
340+
template:
341+
metadata:
342+
labels:
343+
app: mailpit
344+
spec:
345+
containers:
346+
- name: mailpit
347+
image: axllent/mailpit:latest
348+
ports:
349+
- containerPort: 1025
350+
name: smtp
351+
- containerPort: 8025
352+
name: http
353+
---
354+
apiVersion: v1
355+
kind: Service
356+
metadata:
357+
name: mailpit
358+
namespace: ${NAMESPACE}
359+
spec:
360+
selector:
361+
app: mailpit
362+
ports:
363+
- name: smtp
364+
port: 1025
365+
targetPort: 1025
366+
- name: http
367+
port: 8025
368+
targetPort: 8025
369+
nodePort: 30025
370+
type: NodePort
371+
EOF
372+
373+
log_info "Waiting for Mailpit to be ready..."
374+
kubectl wait --for=condition=available deployment/mailpit -n "${NAMESPACE}" --timeout=60s
375+
376+
log_info "Mailpit deployed ✓"
377+
log_info " - SMTP: mailpit:1025 (internal)"
378+
log_info " - Web UI: http://localhost:30025"
379+
}
380+
326381
deploy_control() {
327382
log_info "Deploying Control..."
328383

@@ -386,6 +441,17 @@ spec:
386441
# Audience for engine-to-control JWT auth (must match engine's MESH__URL)
387442
- name: CONTROL_API_AUDIENCE
388443
value: "http://inferadb-control:9092"
444+
# Email configuration (using Mailpit for testing)
445+
- name: INFERADB__CONTROL__EMAIL__HOST
446+
value: "mailpit"
447+
- name: INFERADB__CONTROL__EMAIL__PORT
448+
value: "1025"
449+
- name: INFERADB__CONTROL__EMAIL__ADDRESS
450+
value: "test@inferadb.local"
451+
- name: INFERADB__CONTROL__EMAIL__NAME
452+
value: "InferaDB Test"
453+
- name: INFERADB__CONTROL__EMAIL__INSECURE
454+
value: "true"
389455
volumeMounts:
390456
- name: fdb-cluster-file
391457
mountPath: /var/fdb
@@ -598,6 +664,7 @@ show_status() {
598664
log_info "Access URLs:"
599665
echo " Engine: http://localhost:8080"
600666
echo " Control: http://localhost:9090"
667+
echo " Mailpit: http://localhost:30025 (email web UI)"
601668
echo ""
602669

603670
log_info "Useful Commands:"
@@ -631,6 +698,7 @@ main() {
631698
deploy_rbac
632699
deploy_foundationdb
633700
initialize_foundationdb
701+
deploy_mailpit
634702
deploy_control
635703
deploy_engine
636704

scripts/k8s-local-update.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,17 @@ spec:
135135
value: "${NAMESPACE}"
136136
- name: CONTROL_API_AUDIENCE
137137
value: "http://inferadb-control:9092"
138+
# Email configuration (using Mailpit for testing)
139+
- name: INFERADB__CONTROL__EMAIL__HOST
140+
value: "mailpit"
141+
- name: INFERADB__CONTROL__EMAIL__PORT
142+
value: "1025"
143+
- name: INFERADB__CONTROL__EMAIL__ADDRESS
144+
value: "test@inferadb.local"
145+
- name: INFERADB__CONTROL__EMAIL__NAME
146+
value: "InferaDB Test"
147+
- name: INFERADB__CONTROL__EMAIL__INSECURE
148+
value: "true"
138149
volumeMounts:
139150
- name: fdb-cluster-file
140151
mountPath: /var/fdb

0 commit comments

Comments
 (0)