Skip to content

Instantly share code, notes, and snippets.

@vi7
Created August 2, 2023 12:02
Show Gist options
  • Save vi7/bebf3bf8d16f9427fd7175e0f06c841e to your computer and use it in GitHub Desktop.
Save vi7/bebf3bf8d16f9427fd7175e0f06c841e to your computer and use it in GitHub Desktop.
K8S deployment manifests for a dummy lightweight SMTP email server (smtp4dev) with WebUI useful for development and testing
---
apiVersion: v1
kind: Service
metadata:
name: smtp4dev
spec:
type: NodePort
selector:
app: smtp4dev
ports:
- name: smtp
protocol: TCP
port: 25
targetPort: 25
- name: http
protocol: TCP
port: 80
targetPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: smtp4dev
labels:
app: smtp4dev
spec:
replicas: 1
selector:
matchLabels:
app: smtp4dev
template:
metadata:
labels:
app: smtp4dev
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/os
operator: In
values:
- linux
containers:
- name: smtp4dev
image: rnwood/smtp4dev:3.2.0-ci20221023104
ports:
- containerPort: 80
- containerPort: 25
@vi7
Copy link
Author

vi7 commented Aug 2, 2023

Get IP address of the smtp4dev Service:

kubectl get svc smtp4dev -ojsonpath="{.spec.clusterIP}"

Get external SMTP port of the smtp4dev Service:

kubectl get svc smtp4dev -ojsonpath="{.spec.ports[?(@.name=='smtp')].nodePort}"

Get external HTTP port of the smtp4dev Service:

kubectl get svc smtp4dev -ojsonpath="{.spec.ports[?(@.name=='http')].nodePort}"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment