Terraform Provider Registry

Реестр Terraform-провайдеров по протоколу HashiCorp. Деплой: Docker-контейнер в Nubes Cloud (containerk8s).

URL: https://registry.containerk8s.dev.nubes.ru

Структура

├── server/           # Go-код HTTP-сервера
│   ├── main.go       # Роуты, S3, структуры
│   ├── gpg_key.go    # GPG-ключи (2 шт.)
│   ├── docs.go       # Статика документации из S3
│   ├── build-provider.sh  # Сборка и заливка провайдера
│   ├── go.mod / go.sum
│   └── gpg/
├── tests/
│   └── smoke.sh      # 9 интеграционных тестов
├── secrets/          # Креды (в .gitignore)
├── HISTORY/          # Документация, планы, ревью
├── Dockerfile        # Multi-stage сборка (ветка go-container)
└── .gitignore

Эндпоинты

Метод URL Ответ
GET / HTML с версией
GET /.well-known/terraform.json {"providers.v1":"/v1/providers/"}
GET /v1/providers/{ns}/{name}/versions JSON: список версий и платформ
GET /v1/providers/{ns}/{name}/{ver}/download/{os}/{arch} JSON: download_url, shasum, GPG
GET /v1/proxy?key=... Стриминг файла из S3
GET /docs/{ns}/{name}/{ver}/... Статика документации из S3
GET /healthz ok 200
GET /readyz ok 200 (проверяет S3)

Сборка и деплой

# Сборка образа (на ВМ)
ssh naeel@5.172.178.213
cd ~/tf_registry && git checkout go-container
docker build -t gitea.services.ngcloud.ru/nail/tf_registry:latest .
docker push gitea.services.ngcloud.ru/nail/tf_registry:latest

# Редеплой — через UI modify или пересоздать инстанс

Заливка провайдера

Подробно: HISTORY/HOWTO-UPLOAD.md

Кратко:

export REGISTRY_HOSTNAME=registry.containerk8s.dev.nubes.ru
export S3_ENDPOINT=http://ceph.tst.nubes.ru
export S3_ACCESS_KEY=...   # super-креды
export S3_SECRET_KEY=...
bash server/build-provider.sh 5.1.17

Тесты

bash tests/smoke.sh

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

Где Что
jsonEnv (UI) Только S3_ACCESS_KEY, S3_SECRET_KEY (reader)
Dockerfile ENV S3_ENDPOINT, S3_BUCKET, S3_PREFIX, REGISTRY_HOSTNAME, PORT, S3_USE_SSL

Подробно: HISTORY/env-config.md

Ветки

Ветка Назначение
master Основная, чистый код
go-container Сборка: Go + Dockerfile
with-flask-legacy Архив Flask-версии
golang Архив исходного Go (до правок)
S
Description
No description provided
Readme
228 KiB
Languages
Go 62.5%
Shell 24.1%
HTML 10.1%
Dockerfile 3.3%