clean: удалён устаревший HOWTO-PUBLISH.md (заменён на HOWTO-UPLOAD.md)

This commit is contained in:
“Naeel”
2026-08-09 14:36:39 +04:00
parent 37d69ead42
commit 78be235ec5
-104
View File
@@ -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
```