# Static Files Service for EveAI Dev Environment (v2 - PersistentVolume based) # File: static-files-service.yaml --- # Static Files ConfigMap (enhanced caching) apiVersion: v1 kind: ConfigMap metadata: name: static-files-config namespace: eveai-dev data: nginx.conf: | server { listen 80; server_name _; # Gzip compression gzip on; gzip_vary on; gzip_min_length 1024; gzip_types text/css application/javascript application/json image/svg+xml; location /static/ { alias /usr/share/nginx/html/static/; # Aggressive caching voor versioned assets location ~* \.(js|css)$ { expires 1y; add_header Cache-Control "public, immutable"; add_header X-Content-Type-Options nosniff; } # Moderate caching voor images location ~* \.(png|jpg|jpeg|gif|ico|svg)$ { expires 30d; add_header Cache-Control "public"; } # Default caching expires 1h; add_header Cache-Control "public"; } location /health { return 200 'OK'; add_header Content-Type text/plain; } } --- # Static Files Deployment (GEEN CUSTOM IMAGE!) apiVersion: apps/v1 kind: Deployment metadata: name: static-files namespace: eveai-dev labels: app: static-files environment: dev spec: replicas: 2 # Voor high availability selector: matchLabels: app: static-files template: metadata: labels: app: static-files spec: containers: - name: nginx image: nginx:alpine # 🎉 STANDARD IMAGE! ports: - containerPort: 80 volumeMounts: - name: nginx-config mountPath: /etc/nginx/conf.d - name: static-files 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-files persistentVolumeClaim: claimName: static-files-pvc --- # Service (ongewijzigd) 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