Подготовить безопасный production rollout
This commit is contained in:
@@ -325,8 +325,8 @@ kubectl auth can-i update secret/tenants-secret \
|
||||
--as="system:serviceaccount:magistr:${BACKEND_SERVICE_ACCOUNT}" -n magistr
|
||||
```
|
||||
|
||||
Production rollout и проверка реальных pod являются внешними операциями и без отдельного
|
||||
разрешения из этой рабочей копии не выполнялись.
|
||||
Production rollout и проверка реальных pod являются внешними операциями и выполняются из
|
||||
этой рабочей копии только по отдельному разрешению владельца.
|
||||
|
||||
### Ручное обновление backend и frontend
|
||||
|
||||
@@ -368,12 +368,16 @@ Deployment-файлов запрещено.
|
||||
jobs также возвращают registry digest каждого образа.
|
||||
4. Отдельный обязательный job сканирует опубликованные digests закреплённым Trivy `0.63.0` и
|
||||
блокирует deploy при исправимых `HIGH`/`CRITICAL` уязвимостях.
|
||||
5. Deploy job устанавливает фиксированный `kubectl v1.33.12` только после SHA-256 проверки.
|
||||
Java Agent также имеет точную версию и checksum.
|
||||
5. Push в `main` выполняет проверки, сборку, публикацию и scan, но не меняет production.
|
||||
Deploy job запускается только вручную через `workflow_dispatch` и устанавливает
|
||||
фиксированный `kubectl v1.33.12` после SHA-256 проверки. Java Agent также имеет точную
|
||||
версию и checksum.
|
||||
6. `scripts/deploy-images.sh` принимает только `image@sha256:...`, сохраняет предыдущие
|
||||
ссылки, применяет оба digest и ждёт rollout. При отказе автоматически возвращает оба
|
||||
предыдущих образа и повторно проверяет их готовность.
|
||||
7. Workflow-wide concurrency lock не допускает одновременные production deployment.
|
||||
7. Gitea 1.25 игнорирует `environment` и `concurrency`, поэтому workflow не полагается на
|
||||
них как на защиту production. Оператор не должен запускать второй ручной deploy, пока
|
||||
первый не завершён.
|
||||
|
||||
`scripts/check-artifact-pinning.sh` проверяет Dockerfile, Compose, Actions, checksum и CI
|
||||
gates. При передаче `K8S_DIR=../k8s` он дополнительно требует digest у каждого production
|
||||
|
||||
Reference in New Issue
Block a user