fix(ci,ecommerce): escanear el manifiesto renderizado y endurecer readOnlyRootFilesystem del frontend
- Trivy IaC escaneaba solo el patch aislado de Kustomize (workloads/ecommerce/frontend/patches/deployment.yaml), no lo que realmente corre en el clúster. Eso generaba falsos positivos en todo lo heredado del base remoto de platform-templates (runAsNonRoot, seccompProfile) porque el patch nunca los repite. Se instala kubectl, se renderiza el kustomization completo y se escanea ese output. - readOnlyRootFilesystem pasa de false a true en el contenedor del frontend: revisando next.config.ts (optimización de imágenes) y app/api/revalidate/route.ts (revalidateTag sin cache handler custom), la imagen sí escribe a ./.next/cache en runtime. Se agregan volúmenes emptyDir para .next/cache y /tmp.
This commit is contained in:
1 parent
3147cafaff
commit
2670727cfa
2 files changed
+50
-2
No files matched your search
@@ -64,9 +64,20 @@ spec:
|
||||
# binario de node para esto, pero eso solo funciona si el
|
||||
# bounding set del contenedor lo permite -- drop: ALL del base
|
||||
# lo bloquea igual, root o no root. Mismo motivo que docs-portal.
|
||||
#
|
||||
# readOnlyRootFilesystem: true -- revisado en código (2026-08-24,
|
||||
# aún no probado en vivo con este cambio) que esta imagen sí
|
||||
# escribe a disco en runtime, no solo en build: el servidor
|
||||
# standalone de Next.js cachea a ./.next/cache tanto el
|
||||
# optimizador de imágenes (next.config.ts trae remotePatterns,
|
||||
# sin "unoptimized: true") como el revalidateTag("medusa-products")
|
||||
# de app/api/revalidate/route.ts (cache handler por default, sin
|
||||
# uno custom tipo Redis). De ahí los dos volumeMounts de abajo:
|
||||
# sin ellos, con root filesystem de solo lectura, ambas rutas
|
||||
# fallarían al intentar escribir.
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: false
|
||||
readOnlyRootFilesystem: true
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
@@ -79,3 +90,13 @@ spec:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 768Mi
|
||||
volumeMounts:
|
||||
- name: next-cache
|
||||
mountPath: /app/.next/cache
|
||||
- name: tmp
|
||||
mountPath: /tmp
|
||||
volumes:
|
||||
- name: next-cache
|
||||
emptyDir: {}
|
||||
- name: tmp
|
||||
emptyDir: {}
|
||||
Reference in new issue
Block a user