Skip to content
Apothem
Руководства по эксплуатации

Создание нового адаптера окружения

Руководство по созданию и публикации нового адаптера окружения Apothem.

Используйте это руководство при создании нового адаптера окружения для встроенного включения в Apothem или как стороннего пакета.

Предварительные требования

Шаги

1. Реализуйте адаптер

Следуйте примеру Создание адаптера окружения, чтобы реализовать HarnessAdapter для целевого окружения.

Если адаптер записывает текстовый шаблон (файл не в формате JSON или YAML) с mode: write_text и ownership_class: operator-owned, uninstall удаляет файл только пока он остаётся неотредактированной копией шаблона, поставленного Apothem. Когда более поздний релиз меняет шаблон, добавьте дайджест SHA-256 предыдущего текста в список earlier_digests этой записи манифеста в том же изменении, иначе uninstall оставит на месте каждую неотредактированную копию, записанную более ранним релизом. Получите дайджест текста на последнем теге релиза с помощью git show <tag>:<template path> | sha256sum; шаблон не должен содержать токен пути ${...}. tests/unit/test_template_digests.py завершается ошибкой, когда поставленный шаблон не учтён.

2. Напишите страницу документации

Создайте site/content/docs/harnesses/<slug>.mdx, охватывающую:

  • Процесс установки
  • Сопоставление профиля с нативной конфигурацией
  • Оговорки о совместимости
  • Рецепты проверки
  • Рецепты обновления и удаления
  • Поверхность шлюза соответствия
  • Таблицу устранения неполадок
  • Таблицу параметров конфигурации

3. Напишите тесты

tests/packaging/test_<slug>_adapter.py
tests/unit/test_<slug>_adapter.py

Минимальное покрытие тестами:

  • test_install_creates_expected_files
  • test_verify_passes_after_install
  • test_uninstall_removes_files

4. Проверьте локально

apothem install --harness <slug>
apothem verify --harness <slug>
python -m apothem.conformity.gate --all .

5. Отправьте запрос на включение изменений

Откройте PR с:

  • реализация адаптера
  • страница документации по адресу site/content/docs/harnesses/<slug>.mdx
  • тесты
  • регистрация точки входа в pyproject.toml, запись HARNESS_REGISTRY в src/apothem/lib/harness_registry_data.py (с увеличением там SUPPORTED_HARNESS_COUNT) и идентификатор в перечислении harnessId в src/apothem/schemas/profile.schema.json
  • запись в журнале изменений

On this page