Прекъсване заради печатна грешка в ConfigMap
Production спря за 2 часа. Причина: една печатна грешка.
Промяната:
# ConfigMap промяна
data:
DATABASE_CONNECITON_TIMEOUT: "30000" # Печатна грешка: CONNECITON
Какво се случи:
- Приложението търсеше DATABASE_CONNECTION_TIMEOUT
- Не го намери (печатна грешка)
- Нямаше стойност по подразбиране
- Таймаут = null → интерпретирано като 0
- Всяка заявка към базата данни изтичаше веднага
Защо не беше уловено:
- ConfigMaps са просто YAML—без схема
- Kubernetes не валидира имена на ключове
- PR прегледът пропусна грешката
- Интеграционните тестове използваха различна конфигурация
Решенията:
- Приложението валидира задължителни env променливи при стартиране
- Бърз отказ ако критична конфигурация липсва
- Валидация на схема за ConfigMaps в CI
- Canary внедрявания за ранно улавяне на проблеми
Урок: ConfigMaps не са код—третирайте ги сякаш са.