Skip to content

Commit ebe594f

Browse files
committed
chore: add ws-server deployment
1 parent 2ea0e00 commit ebe594f

File tree

3 files changed

+134
-0
lines changed

3 files changed

+134
-0
lines changed

nix/cardano-services/deployments/backend-ingress.nix

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,16 @@
104104
};
105105
}
106106
]
107+
++ lib.optionals values.ws-server.enabled [
108+
{
109+
pathType = "Exact";
110+
path = "/ws";
111+
backend.service = {
112+
name = "${chart.name}-ws-server";
113+
port.name = "http";
114+
};
115+
}
116+
]
107117
++ values.cardano-services.additionalRoutes;
108118
})
109119
values.backend.hostnames;

nix/cardano-services/deployments/default.nix

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,12 @@ in
135135
resources.requests = mkPodResources "150Mi" "200m";
136136
};
137137

138+
ws-server = {
139+
enabled = false;
140+
resources.limits = mkPodResources "300Mi" "300m";
141+
resources.requests = mkPodResources "150Mi" "200m";
142+
};
143+
138144
backend = {
139145
allowedOrigins = lib.concatStringsSep "," allowedOrigins;
140146
passHandleDBArgs = true;
@@ -169,6 +175,7 @@ in
169175
};
170176
imports = [
171177
./options.nix
178+
./ws-server.deployment.nix
172179
./provider.resource.nix
173180
./projector.resource.nix
174181
./backend.provider.nix
@@ -209,6 +216,7 @@ in
209216
};
210217

211218
values = {
219+
ws-server.enabled = true;
212220
stakepool.databaseName = "stakepoolv2";
213221
cardano-services = {
214222
ingresOrder = 99;
@@ -255,6 +263,7 @@ in
255263
};
256264

257265
values = {
266+
ws-server.enabled = true;
258267
blockfrost-worker.enabled = false;
259268
pg-boss-worker.enabled = true;
260269

@@ -322,6 +331,7 @@ in
322331
};
323332

324333
values = {
334+
ws-server.enabled = true;
325335
ingress.enabled = false;
326336
pg-boss-worker.enabled = true;
327337
stakepool.databaseName = "stakepoolv2";
@@ -358,6 +368,7 @@ in
358368
};
359369

360370
values = {
371+
ws-server.enabled = true;
361372
cardano-services = {
362373
ingresOrder = 99;
363374
additionalRoutes = [
@@ -406,6 +417,7 @@ in
406417
};
407418

408419
values = {
420+
ws-server.enabled = true;
409421
stakepool.databaseName = "stakepoolv2";
410422
backend.allowedOrigins = lib.concatStringsSep "," allowedOriginsDev;
411423

@@ -445,6 +457,7 @@ in
445457
};
446458

447459
values = {
460+
ws-server.enabled = true;
448461
stakepool.databaseName = "stakepoolv2";
449462
blockfrost-worker.enabled = true;
450463
pg-boss-worker.enabled = true;
@@ -870,6 +883,7 @@ in
870883
};
871884

872885
values = {
886+
ws-server.enabled = true;
873887
cardano-services = {
874888
ingresOrder = 99;
875889
};
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
{
2+
lib,
3+
utils,
4+
values,
5+
chart,
6+
config,
7+
...
8+
}: {
9+
templates.ws-server-service = lib.mkIf values.ws-server.enabled {
10+
apiVersion = "v1";
11+
kind = "Service";
12+
metadata = {
13+
name = "${chart.name}-ws-server";
14+
labels = utils.appLabels "ws-server";
15+
};
16+
spec = {
17+
ports = [
18+
{
19+
name = "http";
20+
protocol = "TCP";
21+
port = 3000;
22+
targetPort = 3000;
23+
}
24+
];
25+
selector = utils.appLabels "ws-server";
26+
};
27+
};
28+
29+
templates.ws-server-deployment = lib.mkIf values.ws-server.enabled {
30+
apiVersion = "apps/v1";
31+
kind = "Deployment";
32+
metadata = {
33+
name = "${chart.name}-ws-server";
34+
labels = utils.appLabels "ws-server";
35+
};
36+
spec = {
37+
selector.matchLabels = utils.appLabels "ws-server";
38+
template = {
39+
metadata.labels = utils.appLabels "ws-server";
40+
spec = {
41+
imagePullSecrets = [
42+
{
43+
name = "dockerconfigjson";
44+
}
45+
];
46+
containers = [
47+
{
48+
inherit (values.cardano-services) image;
49+
inherit (values.ws-server) resources;
50+
name = "ws-server";
51+
ports = [
52+
{
53+
containerPort = 3000;
54+
name = "http";
55+
}
56+
];
57+
livenessProbe = {
58+
httpGet = {
59+
path = "/health";
60+
port = 3000;
61+
};
62+
};
63+
securityContext = {
64+
runAsUser = 0;
65+
runAsGroup = 0;
66+
};
67+
args = ["start-ws-server"];
68+
env = utils.mkPodEnv ({
69+
NETWORK = config.network;
70+
DB_CACHE_TTL = "7200";
71+
OGMIOS_URL = "ws://${config.namespace}-cardano-core.${config.namespace}.svc.cluster.local:1337";
72+
73+
POSTGRES_POOL_MAX_DB_SYNC = "2";
74+
POSTGRES_HOST_DB_SYNC = values.postgresName;
75+
POSTGRES_PORT_DB_SYNC = "5432";
76+
POSTGRES_DB_DB_SYNC = "cardano";
77+
POSTGRES_PASSWORD_DB_SYNC = {
78+
valueFrom.secretKeyRef = {
79+
name = "cardano-owner-user.${values.postgresName}.credentials.postgresql.acid.zalan.do";
80+
key = "password";
81+
};
82+
};
83+
POSTGRES_USER_DB_SYNC = {
84+
valueFrom.secretKeyRef = {
85+
name = "cardano-owner-user.${values.postgresName}.credentials.postgresql.acid.zalan.do";
86+
key = "username";
87+
};
88+
};
89+
POSTGRES_SSL_DB_SYNC = "true";
90+
POSTGRES_SSL_CA_FILE_DB_SYNC = "/tls/ca.crt";
91+
});
92+
volumeMounts = [
93+
{
94+
mountPath = "/tls";
95+
name = "tls";
96+
}
97+
];
98+
}
99+
];
100+
volumes = [
101+
{
102+
name = "tls";
103+
secret.secretName = "postgresql-server-cert";
104+
}
105+
];
106+
};
107+
};
108+
};
109+
};
110+
}

0 commit comments

Comments
 (0)