19bd727bac827a1a2a492383ccd61c09ac4aefee
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 (до правок) |
Languages
Go
62.5%
Shell
24.1%
HTML
10.1%
Dockerfile
3.3%