2.6 KiB
2.6 KiB
Билд и публикация
1. Сборка провайдера (universal_rebuild)
Общий цикл:
- Генерация YAML параметров для сервиса (service_params_gen).
- Генерация Go-ресурсов (tools/gen).
- Сборка бинарника 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
- Сгенерируй и экспортируй ключи в
secrets/. - Вставь ASCII Armor публичного ключа в:
registry-server-build/main.gooperator/cmd/registry/main.go
- Пересобери и задеплой registry server.
- Пересобери и загрузите артефакты провайдера.
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