Skip to content

Commit f4093d2

Browse files
author
Mateus Medeiros
committed
chore(infra): wire redis password parameter and secret-based overlays
1 parent 82eed5f commit f4093d2

14 files changed

Lines changed: 130 additions & 41 deletions

File tree

.github/workflows/deploy-infra.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ env:
2626
GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }}
2727
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
2828
MINIO_ROOT_PASSWORD: ${{ secrets.MINIO_ROOT_PASSWORD }}
29+
REDIS_PASSWORD: ${{ secrets.REDIS_PASSWORD }}
2930

3031
jobs:
3132
deploy:
@@ -49,6 +50,7 @@ jobs:
4950
GHCR_TOKEN \
5051
POSTGRES_PASSWORD \
5152
MINIO_ROOT_PASSWORD \
53+
REDIS_PASSWORD \
5254
CLOUDFLARE_API_TOKEN
5355
5456
- name: Install .NET

.github/workflows/deploy-users.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ env:
2020
GHCR_USERNAME: ${{ secrets.GHCR_USERNAME }}
2121
GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }}
2222
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
23+
REDIS_PASSWORD: ${{ secrets.REDIS_PASSWORD }}
2324
APPLICATIONINSIGHTS_CONNECTION_STRING: ${{ secrets.APPLICATIONINSIGHTS_CONNECTION_STRING }}
2425

2526
jobs:
@@ -56,6 +57,7 @@ jobs:
5657
GHCR_USERNAME \
5758
GHCR_TOKEN \
5859
POSTGRES_PASSWORD \
60+
REDIS_PASSWORD \
5961
APPLICATIONINSIGHTS_CONNECTION_STRING \
6062
Authentication__ExternalRedirect__AllowedReturnUrls__0
6163

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,13 +222,15 @@ cd src/host/WriteFluency.AppHost
222222
aspirate generate --skip-build --non-interactive \
223223
-pa wf-infra-minio-user=minioadmin \
224224
-pa wf-infra-minio-password=admin123 \
225-
-pa wf-infra-postgres-password=postgres
225+
-pa wf-infra-postgres-password=postgres \
226+
-pa wf-infra-redis-password=admin123
226227
```
227228

228229
Parameters passed with `-pa`:
229230
- `wf-infra-minio-user`: MinIO root user.
230231
- `wf-infra-minio-password`: MinIO root password.
231232
- `wf-infra-postgres-password`: Postgres password.
233+
- `wf-infra-redis-password`: Redis password.
232234

233235
### Deploy to Kubernetes
234236
```bash

src/host/WriteFluency.AppHost/AppHost.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
var postgresdb = postgres.AddDatabase("wf-propositions-postgresdb");
2424
var usersdb = postgres.AddDatabase("wf-users-postgresdb");
2525

26+
var redisPassword = builder.AddParameter("wf-infra-redis-password", "admin123", secret: true);
2627
var redis = builder.AddRedis("wf-infra-redis", port: 6379)
28+
.WithPassword(redisPassword)
2729
.WithArgs("--maxmemory", "500mb", "--maxmemory-policy", "allkeys-lru")
2830
.WithDataVolume("writefluency-redis-data");
2931

src/host/WriteFluency.AppHost/aspirate-output/wf-infra-redis/deployment.yaml

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
resources:
2-
- deployment.yaml
2+
- statefulset.yaml
33
- service.yaml
44

55
generatorOptions:
66
disableNameSuffixHash: true
77

8+
configMapGenerator:
9+
- name: wf-infra-redis-env
10+
literals:
11+
- REDIS_PASSWORD=admin123
812

src/host/WriteFluency.AppHost/aspirate-output/wf-infra-redis/service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ spec:
88
selector:
99
app: wf-infra-redis
1010
ports:
11-
- name: redis
11+
- name: tcp
1212
port: 6379
1313
targetPort: 6379
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
apiVersion: apps/v1
3+
kind: StatefulSet
4+
metadata:
5+
name: wf-infra-redis
6+
labels:
7+
app: wf-infra-redis
8+
spec:
9+
serviceName: "wf-infra-redis"
10+
replicas: 1
11+
selector:
12+
matchLabels:
13+
app: wf-infra-redis
14+
template:
15+
metadata:
16+
labels:
17+
app: wf-infra-redis
18+
spec:
19+
containers:
20+
- name: wf-infra-redis
21+
image: docker.io/library/redis:8.2
22+
imagePullPolicy: Always
23+
command:
24+
- /bin/sh
25+
args:
26+
- '-c'
27+
- 'redis-server --requirepass $REDIS_PASSWORD --save 60 1'
28+
- '--maxmemory'
29+
- '500mb'
30+
- '--maxmemory-policy'
31+
- 'allkeys-lru'
32+
ports:
33+
- containerPort: 6379
34+
envFrom:
35+
- configMapRef:
36+
name: wf-infra-redis-env
37+
volumeMounts:
38+
- name: writefluency-redis-data
39+
mountPath: /data
40+
volumeClaimTemplates:
41+
- metadata:
42+
name: writefluency-redis-data
43+
spec:
44+
accessModes: ["ReadWriteOnce"]
45+
resources:
46+
requests:
47+
storage: 1Gi

src/host/WriteFluency.AppHost/aspirate-output/wf-users-api/kustomization.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,13 @@ configMapGenerator:
2222
- WF_USERS_POSTGRESDB_URI=postgresql://postgres:{wf-infra-postgres-password-uri-encoded.value}@wf-infra-postgres:5432/wf-users-postgresdb
2323
- WF_USERS_POSTGRESDB_JDBCCONNECTIONSTRING=jdbc:postgresql://wf-infra-postgres:5432/wf-users-postgresdb
2424
- WF_USERS_POSTGRESDB_DATABASENAME=wf-users-postgresdb
25+
- ConnectionStrings__wf-infra-redis=wf-infra-redis:6379,password=admin123
26+
- WF_INFRA_REDIS_HOST=wf-infra-redis
27+
- WF_INFRA_REDIS_PORT=6379
28+
- WF_INFRA_REDIS_PASSWORD=admin123
29+
- WF_INFRA_REDIS_URI=redis://:{wf-infra-redis-password-uri-encoded.value}@wf-infra-redis:6379
2530
- Smtp__FromEmail=noreply@writefluency.com
2631
- Smtp__FromName=WriteFluency
27-
- ConnectionStrings__wf-infra-redis=wf-infra-redis:6379
2832
- Smtp__Host=wf-infra-smtp
2933
- Smtp__Port=2525
3034
- RESOURCE_NAME=wf-users-api

src/host/WriteFluency.AppHost/aspirate-overlays-infra/kustomization.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,7 @@ patches:
1212
target:
1313
kind: StatefulSet
1414
name: wf-infra-postgres
15+
- path: wf-infra-redis/statefulset-patch.yaml
16+
target:
17+
kind: StatefulSet
18+
name: wf-infra-redis

0 commit comments

Comments
 (0)