feat: migrate to S3 storage with automatic download and timestamped filenames

- Replace local file storage with S3-compatible object storage

- Add automatic PDF download after generation

- Include timestamps in filenames to ensure uniqueness

- Remove unused static volume from Kubernetes deployment

- Update ConfigMap to remove unused variables and add S3 configuration

- Configure S3 credentials via Kubernetes secrets for both dev and prod environments

- Add boto3 dependency for S3 integration
This commit is contained in:
2025-09-03 22:41:16 +02:00
parent a67db405f7
commit 75548dab2b
10 changed files with 164 additions and 67 deletions
-4
View File
@@ -7,8 +7,4 @@ data:
PORT: "8000"
LOG_LEVEL: "INFO"
MAX_REQUEST_SIZE: "10mb"
# Security configuration
SECURE_COOKIES: "true"
CORS_ORIGINS: "math-exercises.local"
REQUEST_TIMEOUT: "30s"
-8
View File
@@ -65,11 +65,3 @@ spec:
envFrom:
- configMapRef:
name: math-exercises-config
# Volume mounts for writable directories
volumeMounts:
- name: static-volume
mountPath: /app/app/static
# Volumes
volumes:
- name: static-volume
emptyDir: {}
@@ -16,6 +16,10 @@ spec:
value: development
- name: DEBUG
value: "false"
# Environment variables from S3 credentials secret
envFrom:
- secretRef:
name: s3-credentials
# Reduce resource consumption in development
resources:
requests:
@@ -17,4 +17,9 @@ images:
# Development-specific labels
commonLabels:
environment: development
security-level: standard
security-level: standard
secretGenerator:
- name: s3-credentials
envs:
- s3-credentials.env
@@ -8,7 +8,6 @@ metadata:
# Security annotations
seccomp.security.alpha.kubernetes.io/pod: docker/default
spec:
replicas: 1
template:
spec:
containers:
@@ -22,4 +22,9 @@ images:
# Production-specific labels
commonLabels:
environment: production
security-level: high
security-level: high
secretGenerator:
- name: s3-credentials
envs:
- s3-credentials.env
@@ -24,4 +24,8 @@ spec:
drop:
- ALL
add:
- NET_BIND_SERVICE
- NET_BIND_SERVICE
# Environment variables from S3 credentials secret
envFrom:
- secretRef:
name: s3-credentials