Skip to content

Commit 0dea880

Browse files
cd: update helm charts and related files
1 parent 661d735 commit 0dea880

File tree

10 files changed

+321
-3
lines changed

10 files changed

+321
-3
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ .Release.Name }}-chat-service
5+
labels:
6+
app: {{ .Chart.Name }}
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: {{ .Release.Name }}-chat-service
12+
template:
13+
metadata:
14+
labels:
15+
app: {{ .Release.Name }}-chat-service
16+
spec:
17+
containers:
18+
- name: chat-service
19+
image: {{ .Values.image.chat_service.repository }}:{{ .Values.image.chat_service.tag }}
20+
ports:
21+
- containerPort: 50052
22+
env:
23+
- name: RUST_LOG
24+
value: info
25+
- name: SCYLLA_HOST
26+
value: scylladb:9042
27+
- name: RABBITMQ_URL
28+
value: amqp://admin:password@rabbitmq:5672
29+
- name: GRPC_ADDR
30+
value: "[::]:50052"

hell_charts/templates/configmap.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ data:
88
PASS_RESET_LINK : {{ .Values.passResetLink | quote }}
99
SMTP_HOST: {{ .Values.smtp.smtpHost | quote }}
1010
SMTP_USERNAME: {{ .Values.smtp.smtpUsername | quote }}
11+
REDIS_URL: {{ printf "redis://%s-redis:6379/" .Release.Name | quote }}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ .Release.Name }}-per-oxo
5+
labels:
6+
app: {{ .Chart.Name }}
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: {{ .Release.Name }}-per-oxo
12+
template:
13+
metadata:
14+
labels:
15+
app: {{ .Release.Name }}-per-oxo
16+
spec:
17+
containers:
18+
- name: per-oxo
19+
image: {{ .Values.image.per_oxo.repository }}:{{ .Values.image.per_oxo.tag }}
20+
ports:
21+
- containerPort: 50051
22+
- containerPort: 3000
23+
env:
24+
- name: RUST_LOG
25+
value: debug
26+
- name: GRPC_ADDR
27+
value: "[::]:50051"
28+
- name: CHAT_SERVICE_ADDR
29+
value: http://chat-service:50052
30+
- name: PER_OXO_SERVICE_ADDR
31+
value: 0.0.0.0:3000
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
# ScyllaDB Service (internal only)
3+
apiVersion: v1
4+
kind: Service
5+
metadata:
6+
name: {{ .Release.Name }}-scylladb
7+
labels:
8+
app: {{ .Chart.Name }}
9+
spec:
10+
type: ClusterIP
11+
selector:
12+
app: {{ .Release.Name }}-scylladb
13+
ports:
14+
- name: cql
15+
port: 9042
16+
targetPort: 9042
17+
- name: thrift
18+
port: 9160
19+
targetPort: 9160
20+
- name: intra-node
21+
port: 7000
22+
targetPort: 7000
23+
- name: intra-node-tls
24+
port: 7001
25+
targetPort: 7001
26+
27+
---
28+
# RabbitMQ Service (internal only)
29+
apiVersion: v1
30+
kind: Service
31+
metadata:
32+
name: {{ .Release.Name }}-rabbitmq
33+
labels:
34+
app: {{ .Chart.Name }}
35+
spec:
36+
type: ClusterIP
37+
selector:
38+
app: {{ .Release.Name }}-rabbitmq
39+
ports:
40+
- name: amqp
41+
port: 5672
42+
targetPort: 5672
43+
- name: management
44+
port: 15672
45+
targetPort: 15672
46+
47+
---
48+
# Chat-Service (internal only)
49+
apiVersion: v1
50+
kind: Service
51+
metadata:
52+
name: {{ .Release.Name }}-chat-service
53+
labels:
54+
app: {{ .Chart.Name }}
55+
spec:
56+
type: ClusterIP
57+
selector:
58+
app: {{ .Release.Name }}-chat-service
59+
ports:
60+
- name: grpc
61+
port: 50052
62+
targetPort: 50052
63+
64+
---
65+
# Rabbit-Consumer (internal only)
66+
apiVersion: v1
67+
kind: Service
68+
metadata:
69+
name: {{ .Release.Name }}-rabbit-consumer
70+
labels:
71+
app: {{ .Chart.Name }}
72+
spec:
73+
type: ClusterIP
74+
selector:
75+
app: {{ .Release.Name }}-rabbit-consumer
76+
ports:
77+
- name: app
78+
port: 8080
79+
targetPort: 8080
80+
protocol: TCP
81+
82+
---
83+
# Per-Oxo Service (exposed to the outside world)
84+
apiVersion: v1
85+
kind: Service
86+
metadata:
87+
name: {{ .Release.Name }}-per-oxo
88+
labels:
89+
app: {{ .Chart.Name }}
90+
spec:
91+
type: LoadBalancer
92+
selector:
93+
app: {{ .Release.Name }}-per-oxo
94+
ports:
95+
- name: grpc
96+
port: 50051
97+
targetPort: 50051
98+
- name: http
99+
port: 4001
100+
targetPort: 3000

hell_charts/templates/pvc.yaml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ spec:
88
resources:
99
requests:
1010
storage: 1Gi
11+
1112
---
1213
apiVersion: v1
1314
kind: PersistentVolumeClaim
@@ -19,3 +20,33 @@ spec:
1920
resources:
2021
requests:
2122
storage: 1Gi
23+
24+
---
25+
apiVersion: v1
26+
kind: PersistentVolumeClaim
27+
metadata:
28+
name: scylla-data
29+
labels:
30+
app: {{ .Chart.Name }}
31+
spec:
32+
accessModes:
33+
- ReadWriteOnce
34+
resources:
35+
requests:
36+
storage: {{ .Values.persistence.scylla.size }}
37+
storageClassName: {{ .Values.persistence.scylla.storageClassName }}
38+
39+
---
40+
apiVersion: v1
41+
kind: PersistentVolumeClaim
42+
metadata:
43+
name: rabbitmq-data
44+
labels:
45+
app: {{ .Chart.Name }}
46+
spec:
47+
accessModes:
48+
- ReadWriteOnce
49+
resources:
50+
requests:
51+
storage: {{ .Values.persistence.rabbitmq.size }}
52+
storageClassName: {{ .Values.persistence.rabbitmq.storageClassName }}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ .Release.Name }}-rabbit-consumer
5+
labels:
6+
app: {{ .Chart.Name }}
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: {{ .Release.Name }}-rabbit-consumer
12+
template:
13+
metadata:
14+
labels:
15+
app: {{ .Release.Name }}-rabbit-consumer
16+
spec:
17+
containers:
18+
- name: rabbit-consumer
19+
image: {{ .Values.image.rabbit_consumer.repository }}:{{ .Values.image.rabbit_consumer.tag }}
20+
env:
21+
- name: RUST_LOG
22+
value: info
23+
- name: SCYLLA_HOST
24+
value: scylladb:9042
25+
- name: RABBITMQ_URL
26+
value: amqp://admin:password@rabbitmq:5672
27+
28+
volumeMounts:
29+
- name: rabbitmq-data
30+
mountPath: /var/lib/rabbitmq
31+
volumes:
32+
- name: rabbitmq-data
33+
persistentVolumeClaim:
34+
claimName: rabbitmq-data
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ .Release.Name }}-rabbitmq
5+
labels:
6+
app: {{ .Chart.Name }}
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: {{ .Release.Name }}-rabbitmq
12+
template:
13+
metadata:
14+
labels:
15+
app: {{ .Release.Name }}-rabbitmq
16+
spec:
17+
containers:
18+
- name: rabbitmq
19+
image: {{ .Values.image.rabbitmq.repository }}:{{ .Values.image.rabbitmq.tag }}
20+
ports:
21+
- containerPort: 5672
22+
- containerPort: 15672
23+
env:
24+
- name: RABBITMQ_DEFAULT_USER
25+
valueFrom:
26+
secretKeyRef:
27+
name: {{ .Release.Name }}-secret
28+
key: rabbitmq-user
29+
- name: RABBITMQ_DEFAULT_PASS
30+
valueFrom:
31+
secretKeyRef:
32+
name: {{ .Release.Name }}-secret
33+
key: rabbitmq-password
34+
volumeMounts:
35+
- name: rabbitmq-data
36+
mountPath: /var/lib/rabbitmq
37+
volumes:
38+
- name: rabbitmq-data
39+
persistentVolumeClaim:
40+
claimName: rabbitmq-data
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ .Release.Name }}-scylladb
5+
labels:
6+
app: {{ .Chart.Name }}
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: {{ .Release.Name }}-scylladb
12+
template:
13+
metadata:
14+
labels:
15+
app: {{ .Release.Name }}-scylladb
16+
spec:
17+
containers:
18+
- name: scylladb
19+
image: {{ .Values.image.scylladb.repository }}:{{ .Values.image.scylladb.tag }}
20+
ports:
21+
- containerPort: 9042
22+
- containerPort: 9160
23+
- containerPort: 7000
24+
- containerPort: 7001
25+
env:
26+
- name: SCYLLA_CLUSTER_NAME
27+
value: chat_cluster
28+
- name: SCYLLA_DC
29+
value: datacenter1
30+
- name: SCYLLA_RACK
31+
value: rack1
32+
volumeMounts:
33+
- name: scylla-data
34+
mountPath: /var/lib/scylla
35+
volumes:
36+
- name: scylla-data
37+
persistentVolumeClaim:
38+
claimName: scylla-data

src/lib.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ use sea_orm::Database;
1212
use tokio::sync::Mutex;
1313
use tower_http::cors::{AllowOrigin, CorsLayer};
1414

15+
use crate::utils::constants::REDIS_URL;
16+
1517
mod bcrypts;
1618
mod configs;
1719
mod errors;
@@ -22,6 +24,14 @@ mod routes;
2224
mod utils;
2325

2426
pub async fn run() -> Router<()> {
27+
// tracing_subscriber::registry()
28+
// .with(
29+
// tracing_subscriber::EnvFilter::try_from_default_env()
30+
// .unwrap_or_else(|_| "debug".into()),
31+
// )
32+
// .with(tracing_subscriber::fmt::layer().compact())
33+
// .init();
34+
2535
let db_string = (*utils::constants::DATABASE_URL).clone();
2636

2737
// Use ALLOWED_ORIGINS from constants.rs
@@ -79,10 +89,9 @@ pub struct RedisClient {
7989
}
8090

8191
impl RedisClient {
82-
// Initialize RedisClient with a new connection
8392
pub fn new() -> Self {
84-
// let client = Client::open("redis://127.0.0.1:6379/").expect("Invalid Redis URL");
85-
let client = Client::open("redis://redis:6379/").expect("Invalid Redis URL");
93+
println!("Connecting to Redis at: {}", REDIS_URL.to_string());
94+
let client = Client::open(REDIS_URL.to_string()).expect("Invalid Redis URL");
8695
let connection = client.get_connection().expect("Failed to connect to Redis");
8796
Self {
8897
connection: Arc::new(Mutex::new(connection)),

src/utils/constants.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ lazy_static! {
3636
env::var("PASS_RESET_LINK").expect("PASS_RESET_LINK must be set")
3737
};
3838

39+
pub static ref REDIS_URL: String = {
40+
env::var("REDIS_URL").expect("REDIS_URL must be set")
41+
};
42+
3943
pub static ref ALLOWED_ORIGINS: Vec<String> = {
4044
match env::var("ALLOWED_ORIGINS") {
4145
Ok(allowed_origins_env) => {

0 commit comments

Comments
 (0)