Here's my full yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: nodeslist
data:
nodes: typesense-0.typesense.default.svc.cluster.local81078108,typesense-1.typesense.default.svc.cluster.local81078108,typesense-2.typesense.default.svc.cluster.local81078108
---
apiVersion: v1
kind: Service
metadata:
name: typesense
spec:
publishNotReadyAddresses: true
clusterIP: None
selector:
app: typesense
ports:
- name: api
port: 8108
- name: peering
port: 8107
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: typesense
labels:
app: typesense
spec:
serviceName: "typesense"
replicas: 3
podManagementPolicy: Parallel
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
app: typesense
template:
metadata:
labels:
app: typesense
spec:
dnsPolicy: ClusterFirst
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: "app"
operator: In
values:
- typesense
tolerations:
- key: "deployment"
operator: "Equal"
value: "typesense"
effect: "NoSchedule"
containers:
- name: typesense
image: typesense/typesense:27.1
imagePullPolicy: Always
env:
- name: TYPESENSE_DATA_DIR
value: /typesense-data
- name: TYPESENSE_API_KEY
value: key-value
- name: TYPESENSE_NODES_FILE
value: /etc/typesense/nodes
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
args:
- --data-dir
- /typesense-data
- --api-key
- $(TYPESENSE_API_KEY)
- --api-address
- 0.0.0.0
- --api-port
- "8108"
- --peering-address
- $(POD_IP)
- --peering-port
- "8107"
- --nodes
- /etc/typesense/nodes
- --reset-peers-on-error
- "true"
volumeMounts:
- name: typesense-data
mountPath: /typesense-data
- name: nodes
mountPath: /etc/typesense
# readinessProbe:
# httpGet:
# path: /health
# port: 8108
# initialDelaySeconds: 5
# periodSeconds: 10
# timeoutSeconds: 2
# livenessProbe:
# httpGet:
# path: /metrics.json
# port: 8108
# initialDelaySeconds: 5
# periodSeconds: 10
# timeoutSeconds: 2
volumes:
- name: nodes
configMap:
name: nodeslist
volumeClaimTemplates:
- metadata:
name: typesense-data
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 50Gi
---
apiVersion: v1
kind: Service
metadata:
name: typesense-external
spec:
publishNotReadyAddresses: true
selector:
app: typesense
type: NodePort
ports:
- port: 8108
targetPort: 8108
nodePort: 32000
name: api
- port: 8107
targetPort: 8107
nodePort: 32001
name: peering