98 lines
3.1 KiB
Markdown
98 lines
3.1 KiB
Markdown
# Как залить провайдер в реестр (ПРОД)
|
|
|
|
## Конфигурация
|
|
|
|
### Реестр
|
|
- URL: `https://tf-registry.containerk8s.services.ngcloud.ru`
|
|
- S3: `s3.msk-1.ngcloud.ru` (HTTPS)
|
|
- Бакет: `nubes-terraform-registry`
|
|
- S3-префикс: `tf-registry.containerk8s.services.ngcloud.ru`
|
|
|
|
### Креды (аккаунт `1112_terraform`)
|
|
|
|
| Subuser | Назначение | Права |
|
|
|---|---|---|
|
|
| `1112_terraform:reader` | Реестр (только читает) | read + list |
|
|
| `1112_terraform:super` | Заливка провайдеров | write |
|
|
|
|
```
|
|
Reader: 6DDP5PKQEE37WLSWXP07 / W0vV4YNeHIqMa2sRCXsR61ZuQfAJIZzVj2VgnBrT
|
|
Super: L9F0R8CYYKYIUW180203 / yJlgxoKsRBwCtJQh57Z0nwo5EBDYmyBNDDhG6NKw
|
|
```
|
|
|
|
## Структура S3
|
|
|
|
```
|
|
nubes-terraform-registry/
|
|
└── tf-registry.containerk8s.services.ngcloud.ru/
|
|
└── {namespace}/
|
|
└── {provider}/
|
|
└── {version}/
|
|
├── terraform-provider-{name}_{ver}_linux_amd64.zip
|
|
├── terraform-provider-{name}_{ver}_windows_amd64.zip
|
|
├── terraform-provider-{name}_{ver}_darwin_amd64.zip
|
|
├── terraform-provider-{name}_{ver}_SHA256SUMS
|
|
└── terraform-provider-{name}_{ver}_SHA256SUMS.sig
|
|
```
|
|
|
|
## Заливка (build-provider.sh)
|
|
|
|
### Требования
|
|
- `~/tf_registry/` — склонирован этот репозиторий
|
|
- `~/tf_provider/` — склонирован репозиторий провайдера
|
|
- `~/tf_provider/secrets/private_key.asc` — приватный GPG-ключ для подписи
|
|
- `go` установлен
|
|
- `mc` (MinIO Client) установлен
|
|
|
|
### Команды
|
|
|
|
```bash
|
|
# 1. Настроить mc (один раз, креды SUPER)
|
|
mc alias set prod-s3 https://s3.msk-1.ngcloud.ru L9F0R8CYYKYIUW180203 yJlgxoKsRBwCtJQh57Z0nwo5EBDYmyBNDDhG6NKw
|
|
|
|
# 2. Создать бакет (если ещё нет)
|
|
mc mb prod-s3/nubes-terraform-registry
|
|
|
|
# 3. Переменные для сборки
|
|
export ROOT_DIR=~/tf_provider
|
|
export PROVIDER_DIR=~/tf_provider/provider
|
|
export REGISTRY_HOSTNAME=tf-registry.containerk8s.services.ngcloud.ru
|
|
export NAMESPACE=nubes-test
|
|
export PROVIDER_NAME=nubes
|
|
export S3_ENDPOINT=https://s3.msk-1.ngcloud.ru
|
|
export S3_ACCESS_KEY=L9F0R8CYYKYIUW180203
|
|
export S3_SECRET_KEY=yJlgxoKsRBwCtJQh57Z0nwo5EBDYmyBNDDhG6NKw
|
|
export S3_BUCKET=nubes-terraform-registry
|
|
|
|
# 4. Запуск
|
|
cd ~/tf_provider
|
|
bash ~/tf_registry/server/build-provider.sh 5.1.17
|
|
```
|
|
|
|
## Проверка после заливки
|
|
|
|
```bash
|
|
curl https://tf-registry.containerk8s.services.ngcloud.ru/v1/providers/nubes-test/nubes/versions
|
|
bash ~/tf_registry/tests/smoke.sh https://tf-registry.containerk8s.services.ngcloud.ru
|
|
```
|
|
|
|
## Namespace'ы
|
|
|
|
| Namespace | Назначение |
|
|
|---|---|
|
|
| `nubes-test` | Тестовый стенд |
|
|
| `nubes-dev` | Dev-стенд |
|
|
| `nubes` | Прод |
|
|
|
|
Terraform-конфиг пользователя:
|
|
```hcl
|
|
terraform {
|
|
required_providers {
|
|
nubes = {
|
|
source = "tf-registry.containerk8s.services.ngcloud.ru/nubes-test/nubes"
|
|
version = "5.1.17"
|
|
}
|
|
}
|
|
}
|
|
```
|