clean: удалён устаревший HOWTO-PUBLISH.md (заменён на HOWTO-UPLOAD.md)
This commit is contained in:
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user