Skip to content

Commit

Permalink
Infra: k8s pubsub and cache left setup
Browse files Browse the repository at this point in the history
  • Loading branch information
vanshpatelx committed Feb 14, 2025
1 parent dc3e12b commit 0120a47
Show file tree
Hide file tree
Showing 4 changed files with 275 additions and 5 deletions.
92 changes: 92 additions & 0 deletions Infra/k8s/cache/dummyCache.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Secrets
apiVersion: v1
kind: Secret
metadata:
name: dummycache-secrets
namespace: cache
type: Opaque
data:
REDIS_PASSWORD: cGFzc3dvcmQ= # base64 for 'password'
---
# StatefulSet (Redis)
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: dummy-redis
namespace: cache
spec:
serviceName: dummy-redis
replicas: 1
selector:
matchLabels:
app: dummy-redis
template:
metadata:
labels:
app: dummy-redis
spec:
restartPolicy: Always
containers:
- name: redis
image: redis:latest
command:
- "redis-server"
- "--requirepass"
- "$(REDIS_PASSWORD)"
ports:
- containerPort: 6379
env:
- name: REDIS_PASSWORD
valueFrom:
secretKeyRef:
name: dummycache-secrets
key: REDIS_PASSWORD
livenessProbe:
exec:
command: ["redis-cli", "-a", "$(REDIS_PASSWORD)", "ping"]
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
readinessProbe:
exec:
command: ["redis-cli", "-a", "$(REDIS_PASSWORD)", "ping"]
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 2
volumeMounts:
- name: redis-data
mountPath: /data
volumes:
- name: redis-data
persistentVolumeClaim:
claimName: dummy-redis-pvc
---
# PersistentVolumeClaim (Redis)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: dummy-redis-pvc
namespace: cache
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
# Headless Service (Redis)
apiVersion: v1
kind: Service
metadata:
name: dummy-redis
namespace: cache
spec:
selector:
app: dummy-redis
ports:
- protocol: TCP
port: 6379
targetPort: 6379
clusterIP: None
5 changes: 0 additions & 5 deletions Infra/k8s/pub-sub/rabbitMQ.yaml

This file was deleted.

79 changes: 79 additions & 0 deletions Infra/k8s/pubsub/configMap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: rabbitmq-config
namespace: pubsub
data:
rabbitmq.conf: |
listeners.tcp.default = 5672
management.listener.port = 15672
management.listener.ip = 0.0.0.0
load_definitions = /etc/rabbitmq/definitions.json
definitions.json: |
{
"rabbit_version": "3.9",
"users": [
{
"name": "admin",
"password_hash": "hwfOs1TkA3AQ4u4y/6HpIY/kr0AistV3xEsXykEQy1bmCooq",
"hashing_algorithm": "rabbit_password_hashing_sha256",
"tags": ["administrator"]
}
],
"vhosts": [{"name": "/"}],
"permissions": [
{
"user": "admin",
"vhost": "/",
"configure": ".*",
"write": ".*",
"read": ".*"
}
],
"queues": [
{
"name": "auth_registered_queue",
"vhost": "/",
"durable": true,
"arguments": {
"x-dead-letter-exchange": "dlx_exchange",
"x-dead-letter-routing-key": "auth.dlx"
}
},
{
"name": "auth_dlq",
"vhost": "/",
"durable": true
}
],
"exchanges": [
{
"name": "auth_exchange",
"vhost": "/",
"type": "direct",
"durable": true
},
{
"name": "dlx_exchange",
"vhost": "/",
"type": "direct",
"durable": true
}
],
"bindings": [
{
"source": "auth_exchange",
"vhost": "/",
"destination": "auth_registered_queue",
"destination_type": "queue",
"routing_key": "auth.registered"
},
{
"source": "dlx_exchange",
"vhost": "/",
"destination": "auth_dlq",
"destination_type": "queue",
"routing_key": "auth.dlx"
}
]
}
104 changes: 104 additions & 0 deletions Infra/k8s/pubsub/rabbitMQ.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# statefulset
# service
# PVC
# Secrets
# configMaps
apiVersion: v1
kind: Secret
metadata:
name: rabbitmq-secret
namespace: pubsub
type: Opaque
data:
RABBITMQ_DEFAULT_USER: YWRtaW4= # base64 for 'admin'
RABBITMQ_DEFAULT_PASS: cGFzc3dvcmQ= # base64 for 'password'
RABBITMQ_ERLANG_COOKIE: c2VjcmV0LWNvb2tpZQ== # base64 for 'secret-cookie'
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: rabbitmq-pvc
namespace: pubsub
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
namespace: pubsub
spec:
serviceName: rabbitmq
replicas: 1
selector:
matchLabels:
app: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
restartPolicy: Always
containers:
- name: rabbitmq
image: rabbitmq:3-management
ports:
- containerPort: 5672
- containerPort: 15672
env:
- name: RABBITMQ_DEFAULT_USER
valueFrom:
secretKeyRef:
name: rabbitmq-secret
key: RABBITMQ_DEFAULT_USER
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: rabbitmq-secret
key: RABBITMQ_DEFAULT_PASS
- name: RABBITMQ_ERLANG_COOKIE
valueFrom:
secretKeyRef:
name: rabbitmq-secret
key: RABBITMQ_ERLANG_COOKIE
- name: RABBITMQ_LOAD_DEFINITIONS
value: "/etc/rabbitmq/definitions.json"
volumeMounts:
- name: rabbitmq-data
mountPath: /var/lib/rabbitmq
- name: config-volume
mountPath: /etc/rabbitmq/rabbitmq.conf
subPath: rabbitmq.conf
- name: config-volume
mountPath: /etc/rabbitmq/definitions.json
subPath: definitions.json
volumes:
- name: config-volume
configMap:
name: rabbitmq-config
- name: rabbitmq-data
persistentVolumeClaim:
claimName: rabbitmq-pvc
---
apiVersion: v1
kind: Service
metadata:
name: rabbitmq
namespace: pubsub
spec:
selector:
app: rabbitmq
ports:
- name: amqp
protocol: TCP
port: 5672
targetPort: 5672
- name: management
protocol: TCP
port: 15672
targetPort: 15672
clusterIP: None

0 comments on commit 0120a47

Please sign in to comment.