add: documentation
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Билд и публикация
|
||||
|
||||
## 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`
|
||||
Reference in New Issue
Block a user