Files

3.1 KiB

Как залить провайдер в реестр (ПРОД)

Конфигурация

Реестр

  • 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) установлен

Команды

# 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

Проверка после заливки

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-конфиг пользователя:

terraform {
  required_providers {
    nubes = {
      source  = "tf-registry.containerk8s.services.ngcloud.ru/nubes-test/nubes"
      version = "5.1.17"
    }
  }
}