Раздача медиа отвечала 500 на каждую плитку, а под капотом был настоящий
ответ S3:
SignatureDoesNotMatch: The request signature we calculated does not match
the signature you provided
status code: 403, request id: 18CA4386CBFA3E5D
Ключ к разгадке — что ответ пришёл БЫСТРО (0.07 с) и с настоящим request id.
То есть это не таймаут до недоступного хоста: s3-proxy реально достучался до
чужого MinIO. В base адрес зашит внутри vault-шаблона:
AWS_API_ENDPOINT=https://minio.contour.infra.sarex.tech
и это домен другого контура. Наши ключи там не подходят — к счастью, иначе
контур молча читал бы и писал в чужое хранилище.
Ровно та же ловушка, что была у backend и celery: значение внутри шаблона
аннотации, через values не перекрывается, поэтому заменяется аннотация
целиком. Тогда я поправил два релиза из трёх и до s3-proxy не дошёл.
После правки чужой домен в рендере clusters/aero/apps не встречается ни разу.