feat(bot): 🚧 Start migrating to k8s.

This commit is contained in:
Nyeki.py
2024-10-30 15:38:00 -03:00
parent 01c4a95ff3
commit 345e44137a
17 changed files with 304 additions and 40 deletions
+40
View File
@@ -0,0 +1,40 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: discord-bot
labels:
app: discord-bot
spec:
replicas: 11
selector:
matchLabels:
app: discord-bot
template:
metadata:
labels:
app: discord-bot
spec:
containers:
- name: bot
image: nekidev/payphone:latest
env:
- name: IS_DEBUG
value: "false"
- name: SHARD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: TOTAL_SHARDS
value: "11"
- name: REDIS_HOST
value: "redis"
- name: REDIS_PORT
value: "6379"
resources:
limits:
cpu: "500m"
memory: "512Mi"
requests:
cpu: "250m"
memory: "256Mi"
restartPolicy: Always
+57
View File
@@ -0,0 +1,57 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: citus-coordinator
spec:
replicas: 1
selector:
matchLabels:
app: citus
role: coordinator
template:
metadata:
labels:
app: citus
role: coordinator
spec:
containers:
- name: coordinator
image: citusdata/citus:latest
env:
- name: POSTGRES_DB
value: "payphone"
- name: POSTGRES_USER
value: "payphone"
- name: POSTGRES_PASSWORD
value: "payphone"
volumeMounts:
- name: citus-coordinator-storage
mountPath: /var/lib/postgresql/data
ports:
- containerPort: 5432
resources:
requests:
memory: "2Gi"
cpu: "1"
limits:
memory: "2Gi"
cpu: "2"
volumes:
- name: citus-coordinator-storage
persistentVolumeClaim:
claimName: citus-coordinator-pvc
---
apiVersion: v1
kind: Service
metadata:
name: citus-coordinator
spec:
selector:
app: citus
role: coordinator
ports:
- protocol: TCP
port: 5432
targetPort: 5432
type: ClusterIP
+22
View File
@@ -0,0 +1,22 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: citus-coordinator-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi # Change this size as needed
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: citus-worker-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi # Change this size as needed
+63
View File
@@ -0,0 +1,63 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: citus-worker
spec:
replicas: 2 # Increase as needed for more workers
selector:
matchLabels:
app: citus
role: worker
serviceName: citus-worker-headless
template:
metadata:
labels:
app: citus
role: worker
spec:
containers:
- name: worker
image: citusdata/citus:latest
env:
- name: POSTGRES_DB
value: "payphone"
- name: POSTGRES_USER
value: "payphone"
- name: POSTGRES_PASSWORD
value: "payphone"
ports:
- containerPort: 5432
resources:
requests:
memory: "2Gi"
cpu: "1"
limits:
memory: "2Gi"
cpu: "2"
volumeMounts:
- name: citus-worker-storage
mountPath: /var/lib/postgresql/data
volumeClaimTemplates:
- metadata:
name: citus-worker-storage
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "standard" # Update based on your storage class
resources:
requests:
storage: 5Gi # Size per worker
---
apiVersion: v1
kind: Service
metadata:
name: citus-worker-headless
spec:
selector:
app: citus
role: worker
ports:
- protocol: TCP
port: 5432
targetPort: 5432
clusterIP: None # Defines the service as headless, allowing direct pod DNS entries
+40
View File
@@ -0,0 +1,40 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:7.4.1-alpine
ports:
- containerPort: 6379
resources:
requests:
memory: "1Gi"
cpu: "1"
limits:
memory: "2Gi"
cpu: "1"
---
apiVersion: v1
kind: Service
metadata:
name: redis
spec:
selector:
app: redis
ports:
- protocol: TCP
port: 6379
targetPort: 6379
type: ClusterIP