- Functional control plan

This commit is contained in:
Josako
2025-08-18 11:44:23 +02:00
parent 066f579294
commit 84a9334c80
17 changed files with 3619 additions and 55 deletions

View File

@@ -0,0 +1,114 @@
# Static Files Service for EveAI Dev Environment
# File: static-files-service.yaml
---
# Static Files ConfigMap for nginx configuration
apiVersion: v1
kind: ConfigMap
metadata:
name: static-files-config
namespace: eveai-dev
data:
nginx.conf: |
server {
listen 80;
server_name _;
location /static/ {
alias /usr/share/nginx/html/static/;
expires 1y;
add_header Cache-Control "public, immutable";
add_header X-Content-Type-Options nosniff;
}
location /health {
return 200 'OK';
add_header Content-Type text/plain;
}
}
---
# Static Files Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: static-files
namespace: eveai-dev
labels:
app: static-files
environment: dev
spec:
replicas: 1
selector:
matchLabels:
app: static-files
template:
metadata:
labels:
app: static-files
spec:
initContainers:
- name: copy-static-files
image: registry.ask-eve-ai-local.com/josakola/nginx:latest
command: ['sh', '-c']
args:
- |
echo "Copying static files..."
cp -r /etc/nginx/static/* /static-data/static/ 2>/dev/null || true
ls -la /static-data/static/
echo "Static files copied successfully"
volumeMounts:
- name: static-data
mountPath: /static-data
containers:
- name: nginx
image: nginx:alpine
ports:
- containerPort: 80
volumeMounts:
- name: nginx-config
mountPath: /etc/nginx/conf.d
- name: static-data
mountPath: /usr/share/nginx/html
livenessProbe:
httpGet:
path: /health
port: 80
initialDelaySeconds: 10
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 80
initialDelaySeconds: 5
periodSeconds: 5
resources:
requests:
memory: "64Mi"
cpu: "50m"
limits:
memory: "128Mi"
cpu: "100m"
volumes:
- name: nginx-config
configMap:
name: static-files-config
- name: static-data
emptyDir: {}
---
# Static Files Service
apiVersion: v1
kind: Service
metadata:
name: static-files-service
namespace: eveai-dev
labels:
app: static-files
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 80
protocol: TCP
selector:
app: static-files