Чеклист prod hardening (Kubernetes / QMDeploy)
Краткий список для QMDeploy / чарта qm-project. Детали секретов и PAT — QMDeploy/README.md.
Сеть
- Ingress / TLS: включите
ingress.tls.enabledи корректныйsecretName; наружу только HTTPS. - NetworkPolicy (MySQL): задайте
networkPolicy.enabled: true— политикаmysql-in-namespace-onlyразрешает 3306 только подам сapp.kubernetes.io/part-of: qm-projectв том же namespace. Убедитесь, что все клиенты БД (QMServer, экспортеры, phpMyAdmin) остаются с этой меткой. Готовый фрагмент:QMDeploy/helm/qm-project/values-networkpolicy.yaml— подключайте вторым файлом:-f values-networkpolicy.yaml(см. комментарий в файле). - phpMyAdmin: по умолчанию выключен; в проде не выставляйте наружу без VPN / отдельного слоя доступа.
Данные и секреты
- Пароли и DSN только в Secret (
qm-mysql,qm-app), не вvalues*.yamlв открытом виде. - Резервное копирование MySQL: периодические снимки (Velero, облачный backup PVC,
mysqldumpпо runbook) и проверка восстановления.
Наблюдаемость
- Включите
monitoring.enabledпри готовности хранить метрики; см. также Наблюдаемость: базовый уровень.
QMWeb: воспроизводимость билда
- Скрипты предзагрузки данных (например предметы) могут менять сгенерированные JSON; фиксируйте версию скрипта и источник в CI; не коммитьте случайные диффы артефактов.