Модуль 6: Тестирование и отладка
Обзор
Теперь, когда вы умеете создавать совершенные операторы с вебхуками (Модуль 5), пришло время научиться эффективно их тестировать и отлаживать. Этот модуль охватывает модульное тестирование с envtest, интеграционное тестирование, приёмы отладки и паттерны наблюдаемости, которые делают операторы готовыми к продакшену.
Продолжительность: 6–7 часов
Предварительные требования:
- Завершение Модуля 1: Глубокое погружение в архитектуру Kubernetes
- Завершение Модуля 2: Введение в операторы
- Завершение Модуля 3: Создание кастомных контроллеров
- Завершение Модуля 4: Продвинутые паттерны согласования
- Завершение Модуля 5: Вебхуки и контроль допуска
- Понимание основ тестирования на Go
Цели обучения
К концу этого модуля вы:
- Напишете исчерпывающие модульные тесты с использованием envtest
- Создадите наборы интеграционных тестов с Ginkgo/Gomega
- Научитесь эффективно отлаживать операторы с помощью Delve и логов
- Добавите наблюдаемость с помощью метрик, логирования и событий
- Разберётесь в лучших практиках тестирования операторов
Структура модуля
- Урок 6.1: Основы тестирования
- Урок 6.2: Модульное тестирование с envtest
- Урок 6.3: Интеграционное тестирование
- Урок 6.4: Отладка и наблюдаемость
Проверка предварительных требований
Перед началом убедитесь, что вы завершили:
- ✅ Модуль 5: оператор с вебхуками
- ✅ Понимаете тестирование на Go из Модуля 2
- ✅ Имеете рабочий оператор из Модулей 3/4/5
- ✅ Базовое понимание тестирования на Go (
go test)
Если вы не завершили Модуль 5, начните с Модуля 5: Вебхуки и контроль допуска.
Что вы создадите
На протяжении этого модуля вы добавите тестирование и наблюдаемость в свой оператор Database:
- Модульные тесты для логики согласования
- Интеграционные тесты для сквозных (end-to-end) сценариев
- Настройку отладки для локальной разработки
- Метрики и логирование для наблюдаемости
Настройка
Перед началом этого модуля:
- Подготовьте свой оператор Database из Модулей 3/4/5:
- Должен быть рабочий оператор
- Реализованы вебхуки (из Модуля 5)
- Готов к добавлению тестов
- Убедитесь, что среда разработки готова:
./scripts/setup-dev-environment.sh - Установите инструменты тестирования:
# Install Ginkgo and Gomega go install github.com/onsi/ginkgo/v2/ginkgo@latest # Install Delve debugger go install github.com/go-delve/delve/cmd/dlv@latest
Практические лабораторные работы
Каждый урок включает практические упражнения, которые добавляют тестирование и наблюдаемость в ваш оператор.
- Лабораторная 6.1: Настройка среды тестирования
- Лабораторная 6.2: Написание модульных тестов
- Лабораторная 6.3: Создание интеграционных тестов
- Лабораторная 6.4: Добавление наблюдаемости
Решения
Полные рабочие решения для всех лабораторных доступны в каталоге решений:
- Решения лабораторной 6.1 — настройка набора тестов
- Решения лабораторной 6.2 — примеры модульных тестов
- Решения лабораторной 6.3 — примеры интеграционных тестов
- Решения лабораторной 6.4 — метрики, Решения лабораторной 6.4 — наблюдаемость — примеры наблюдаемости