Skip to content
Apothem
Runbooks

Criação de um novo adaptador de harness

Manual operacional para criar e publicar um novo adaptador de harness do Apothem.

Use este manual operacional ao criar um novo adaptador de harness para inclusão nativa no Apothem ou como um pacote de terceiros.

Pré-requisitos

  • Familiaridade com o protocolo HarnessAdapter
  • Compreensão do formato de configuração do harness de destino
  • Python 3.10+

Passos

1. Implemente o adaptador

Siga o exemplo Criação de um adaptador de harness para implementar HarnessAdapter para o harness de destino.

Se o adaptador gravar um template de texto simples (um arquivo que não é JSON nem YAML) com mode: write_text e ownership_class: operator-owned, uninstall exclui o arquivo somente enquanto ele for uma cópia não editada de um template que o Apothem entregou. Quando um lançamento posterior mudar o template, adicione o digest SHA-256 do texto anterior à lista earlier_digests dessa entrada do manifesto na mesma mudança, ou uninstall deixará no lugar toda cópia não editada que o lançamento anterior gravou. Obtenha o digest do texto na tag de lançamento mais recente com git show <tag>:<template path> | sha256sum; o template não deve conter nenhum token de caminho ${...}. tests/unit/test_template_digests.py falha quando um template entregue não está contabilizado.

2. Escreva a página de documentação

Crie site/content/docs/harnesses/<slug>.mdx cobrindo:

  • Fluxo de instalação
  • Mapeamento do perfil para a configuração nativa
  • Ressalvas de compatibilidade
  • Receitas de verificação
  • Receitas de atualização e desinstalação
  • Superfície da porta de conformidade
  • Tabela de resolução de problemas
  • Tabela de ajustes de configuração

3. Escreva os testes

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

Cobertura mínima de testes:

  • test_install_creates_expected_files
  • test_verify_passes_after_install
  • test_uninstall_removes_files

4. Verifique localmente

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

5. Envie o pull request

Abra um PR com:

  • A implementação do adaptador
  • A página de documentação em site/content/docs/harnesses/<slug>.mdx
  • Os testes
  • O registro do ponto de entrada em pyproject.toml, uma entrada HARNESS_REGISTRY em src/apothem/lib/harness_registry_data.py (incrementando SUPPORTED_HARNESS_COUNT ali) e o ID no enum harnessId de src/apothem/schemas/profile.schema.json
  • Entrada no CHANGELOG

On this page