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

50 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Билд и публикация
## 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/<namespace>/<name>/<version>/ для документации, отдельный префикс для бинарников по правилам 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/<namespace>/<name>/<version>/
## 4. Важные нюансы
- При смене домена обновлять registry и ключи подписи.
- Пресайнд URL через Ingress может ломаться — использовать proxy mode.
- В документации исключены технические папки, не предназначенные для публикации.
## 5. Операции (non-CRUD)
- Ops YAML (для всех операций): `./devops/01b_generate_ops_yamls.sh`
- Документация операций: `./devops/02b_generate_ops_docs.sh`