Files
tf_provider/docs/help/build-and-publish.md
2026-06-30 15:45:24 +04:00

2.6 KiB
Raw Permalink Blame History

Билд и публикация

1. Сборка провайдера (universal_rebuild)

Общий цикл:

  1. Генерация YAML параметров для сервиса (service_params_gen).
  2. Генерация Go-ресурсов (tools/gen).
  3. Сборка бинарника go build.

Ключевые каталоги:

  • universal_rebuild/resources_yaml
  • universal_rebuild/internal/resources_gen
  • universal_rebuild/tools/gen

2. Публикация провайдера в Registry

  • Артефакты: zip, SHA256SUMS, SHA256SUMS.sig
  • Подпись: для .sig использовать бинарную detached подпись
  • Хранилище: S3 bucket terraform-registry
  • Префикс: docs//// для документации, отдельный префикс для бинарников по правилам registry-сервера

Важное про GPG ключи

  • Приватный ключ должен быть стабильным между релизами.
  • Если ключ перевыпущен, обнови публичный ключ в registry server (ASCII Armor в registry-server-build/main.go и operator/cmd/registry/main.go) и задеплой сервис.
  • Иначе terraform init упадет с authentication signature from unknown issuer.

One-time bootstrap

  1. Сгенерируй и экспортируй ключи в secrets/.
  2. Вставь ASCII Armor публичного ключа в:
    • registry-server-build/main.go
    • operator/cmd/registry/main.go
  3. Пересобери и задеплой registry server.
  4. Пересобери и загрузите артефакты провайдера.

3. Документация (MkDocs)

Сборка

  • Использовать Docker образ squidfunk/mkdocs-material
  • Результат: директория site/

Публикация

  • Использовать scripts/publish-docs.sh
  • Путь в S3: docs////

4. Важные нюансы

  • При смене домена обновлять registry и ключи подписи.
  • Пресайнд URL через Ingress может ломаться — использовать proxy mode.
  • В документации исключены технические папки, не предназначенные для публикации.

5. Операции (non-CRUD)

  • Ops YAML (для всех операций): ./devops/01b_generate_ops_yamls.sh
  • Документация операций: ./devops/02b_generate_ops_docs.sh