diff --git a/HISTORY/HOWTO-PUBLISH.md b/HISTORY/HOWTO-PUBLISH.md deleted file mode 100644 index 6703cda..0000000 --- a/HISTORY/HOWTO-PUBLISH.md +++ /dev/null @@ -1,104 +0,0 @@ -# Инструкция: как опубликовать провайдер в реестре - -Реестр: `https://go-registry.containerk8s.dev.nubes.ru` - -## 1. Структура S3 - -``` -{prefix}/{namespace}/{name}/{version}/ -├── terraform-provider-{name}_{version}_{os}_{arch}.zip ← бинарник -├── terraform-provider-{name}_{version}_SHA256SUMS ← контрольные суммы -└── terraform-provider-{name}_{version}_SHA256SUMS.sig ← GPG-подпись -``` - -Где: -- `{prefix}` — сейчас `registry.kube5s.ru` (будет сменён) -- `{namespace}` — `nubes-test`, `nubes-dev`, `nubes` (PROD) -- `{name}` — `nubes` -- `{os}_{arch}` — `linux_amd64`, `windows_amd64`, `darwin_amd64` - -Пример: -``` -registry.kube5s.ru/nubes-test/nubes/5.1.17/terraform-provider-nubes_5.1.17_linux_amd64.zip -``` - -## 2. Как загрузить в S3 - -### Нужны креды -``` -S3_ENDPOINT=s3.msk-1.ngcloud.ru -S3_ACCESS_KEY=... -S3_SECRET_KEY=... -S3_BUCKET=terraform-registry -``` - -### Утилита `mc` (MinIO Client) -```bash -mc alias set nubes-s3 https://s3.msk-1.ngcloud.ru $S3_ACCESS_KEY $S3_SECRET_KEY - -# Загрузка -mc cp ./terraform-provider-nubes_5.1.17_linux_amd64.zip \ - nubes-s3/terraform-registry/registry.kube5s.ru/nubes-test/nubes/5.1.17/ -mc cp ./SHA256SUMS nubes-s3/terraform-registry/registry.kube5s.ru/nubes-test/nubes/5.1.17/ -mc cp ./SHA256SUMS.sig nubes-s3/terraform-registry/registry.kube5s.ru/nubes-test/nubes/5.1.17/ -``` - -### Или `awscli` -```bash -aws s3 cp ... s3://terraform-registry/registry.kube5s.ru/nubes-test/nubes/5.1.17/ \ - --endpoint-url https://s3.msk-1.ngcloud.ru -``` - -## 3. GPG-подпись (обязательно) - -Terraform требует подпись SHA256SUMS. - -### Приватный ключ -Хранится в `secrets/private_key.asc`. Публичный ключ (KEY ID: `3EC4673EB798238A`) вшит в реестр. - -### Подписать -```bash -gpg --import secrets/private_key.asc -gpg --detach-sign --armor SHA256SUMS -# → SHA256SUMS.asc (переименовать в SHA256SUMS.sig) -``` - -## 4. Документация - -``` -docs/{namespace}/{name}/{version}/index.html -docs/{namespace}/{name}/{version}/...любые файлы... -``` - -Заливаешь в S3 — автоматом доступна по: -``` -https://go-registry.containerk8s.dev.nubes.ru/docs/{ns}/{name}/{ver}/ -``` - -## 5. Использование пользователем - -```hcl -terraform { - required_providers { - nubes = { - source = "go-registry.containerk8s.dev.nubes.ru/nubes-test/nubes" - version = "5.1.17" - } - } -} -``` - -Terraform сам найдёт реестр, скачает провайдер, проверит SHA256 и GPG-подпись. - -## 6. Скрипт автоматизации - -В репозитории `tf_registry` есть скрипт `server/build-provider.sh` — он делает всё сам: -- Компилирует провайдер под linux/windows/darwin × amd64 -- Упаковывает в zip -- Генерирует SHA256SUMS -- Подписывает GPG -- Заливает в S3 - -```bash -VERSION=5.1.17 NAMESPACE=nubes-test ./server/build-provider.sh -```