diff --git a/HISTORY/HOWTO-UPLOAD.md b/HISTORY/HOWTO-UPLOAD.md index 0673773..01200c8 100644 --- a/HISTORY/HOWTO-UPLOAD.md +++ b/HISTORY/HOWTO-UPLOAD.md @@ -1,94 +1,72 @@ -# Как залить провайдер в реестр +# Как залить провайдер в реестр (ПРОД) ## Конфигурация ### Реестр -- URL: `https://registry.containerk8s.dev.nubes.ru` -- S3: Ceph `http://ceph.tst.nubes.ru` -- Бакет: `terraform-registry` -- S3-префикс: `registry.containerk8s.dev.nubes.ru` +- 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 | Назначение | Права | |---|---|---| -| `3709:reader` | Реестр (только читает) | read + list | -| `3709:super` | Заливка провайдеров | write | +| `1112_terraform:reader` | Реестр (только читает) | read + list | +| `1112_terraform:super` | Заливка провайдеров | write | ``` -Reader: AAYTNYSZIM08DDWV3TK1 / xQVd9CeGXACPIXTBTH4KV6DIHEAyySOFSTrS17Lc -Super: 63A90SRCBP51XQ5TX8OB / euEJDZkueh0JHGP1B5jlAnAKriB8kYBR0t466GQ9 +Reader: 6DDP5PKQEE37WLSWXP07 / W0vV4YNeHIqMa2sRCXsR61ZuQfAJIZzVj2VgnBrT +Super: L9F0R8CYYKYIUW180203 / yJlgxoKsRBwCtJQh57Z0nwo5EBDYmyBNDDhG6NKw ``` ## Структура S3 ``` -terraform-registry/ -└── registry.containerk8s.dev.nubes.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 +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) -### ⚠️ Важно: S3_ENDPOINT с http:// -Ceph тестовый — HTTP, не HTTPS. Если задать `S3_ENDPOINT=ceph.tst.nubes.ru`, скрипт добавит `https://` → упадёт. -**Всегда:** `S3_ENDPOINT=http://ceph.tst.nubes.ru` (с префиксом `http://`). - ### Команды ```bash # 1. Настроить mc (один раз, креды SUPER) -mc alias set ceph http://ceph.tst.nubes.ru \ - 63A90SRCBP51XQ5TX8OB \ - euEJDZkueh0JHGP1B5jlAnAKriB8kYBR0t466GQ9 +mc alias set prod-s3 https://s3.msk-1.ngcloud.ru L9F0R8CYYKYIUW180203 yJlgxoKsRBwCtJQh57Z0nwo5EBDYmyBNDDhG6NKw # 2. Создать бакет (если ещё нет) -mc mb ceph/terraform-registry +mc mb prod-s3/nubes-terraform-registry # 3. Переменные для сборки export ROOT_DIR=~/tf_provider export PROVIDER_DIR=~/tf_provider/provider -export REGISTRY_HOSTNAME=registry.containerk8s.dev.nubes.ru -export NAMESPACE=nubes-test # nubes-test | nubes-dev | nubes +export REGISTRY_HOSTNAME=tf-registry.containerk8s.services.ngcloud.ru +export NAMESPACE=nubes-test export PROVIDER_NAME=nubes -export S3_ENDPOINT=http://ceph.tst.nubes.ru # ← http:// обязательно! -export S3_ACCESS_KEY=63A90SRCBP51XQ5TX8OB # super -export S3_SECRET_KEY=euEJDZkueh0JHGP1B5jlAnAKriB8kYBR0t466GQ9 # super -export S3_BUCKET=terraform-registry +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 ``` -### Что делает скрипт -1. Компилирует Go → linux/windows/darwin × amd64 -2. Упаковывает в zip -3. Генерирует SHA256SUMS -4. Подписывает GPG (ключ `secrets/private_key.asc`) -5. Заливает в S3 - -### Требования -- `~/tf_provider/secrets/private_key.asc` — приватный GPG-ключ -- `~/tf_provider/provider/` — исходники Go-провайдера -- `mc` (MinIO Client) установлен -- `go` установлен - ## Проверка после заливки ```bash -# API -curl https://registry.containerk8s.dev.nubes.ru/v1/providers/nubes-test/nubes/versions - -# Полный тест -bash ~/tf_registry/tests/smoke.sh +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'ы @@ -104,16 +82,9 @@ Terraform-конфиг пользователя: terraform { required_providers { nubes = { - source = "registry.containerk8s.dev.nubes.ru/nubes-test/nubes" + source = "tf-registry.containerk8s.services.ngcloud.ru/nubes-test/nubes" version = "5.1.17" } } } ``` - -## Уроки из диалога с чатом сборки - -1. **S3_ENDPOINT** — всегда с протоколом (`http://` или `https://`). Без протокола скрипт форсит `https://`. -2. **Бакет** — может не существовать на новом Ceph. Создать через `mc mb`. -3. **Префикс** — должен совпадать с `REGISTRY_HOSTNAME`. Если домен поменялся — обновить и в скрипте, и в Dockerfile реестра. -4. **Креды** — для заливки нужны super (write), для реестра — reader (read+list).