Files
infrastructure/event-bus/nats/k8s-deployment.yaml
2026-02-09 21:51:46 -08:00

97 lines
1.8 KiB
YAML

# NATS Server Kubernetes Deployment
apiVersion: v1
kind: Namespace
metadata:
name: event-bus
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nats-config
namespace: event-bus
data:
nats.conf: |
port: 4222
http_port: 8222
jetstream:
store_dir: /data/jetstream
max_mem: 2GB
max_file: 10GB
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: nats
namespace: event-bus
spec:
serviceName: nats
replicas: 3
selector:
matchLabels:
app: nats
template:
metadata:
labels:
app: nats
spec:
containers:
- name: nats
image: nats:2.10-alpine
args:
- -c
- /etc/nats/nats.conf
ports:
- name: client
containerPort: 4222
- name: cluster
containerPort: 6222
- name: monitor
containerPort: 8222
volumeMounts:
- name: config
mountPath: /etc/nats
- name: data
mountPath: /data/jetstream
resources:
requests:
memory: "512Mi"
cpu: "200m"
limits:
memory: "1Gi"
cpu: "500m"
volumes:
- name: config
configMap:
name: nats-config
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: standard
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
name: nats
namespace: event-bus
spec:
clusterIP: None
ports:
- port: 4222
targetPort: 4222
name: client
- port: 6222
targetPort: 6222
name: cluster
- port: 8222
targetPort: 8222
name: monitor
selector:
app: nats