Files
twcloud-scaler/docs/DEPLOY.md
Sergey Vanyushkin 191cdd108f feat: add Timeweb Cloud provider for Woodpecker CI autoscaler
- Implement timewebcloud provider with DeployAgent, RemoveAgent, ListDeployedAgentNames
- Add minimal HTTP API client for Timeweb Cloud (create/list/delete servers)
- Register provider in main.go with CLI flags
- Add timeweb-list and timeweb-tester utilities
- Include Dockerfile and docker-compose.yml for deployment
- Update DEPLOY.md with verified OS/preset IDs
2026-05-16 13:09:07 +03:00

93 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Инструкция по развертыванию
## 1. Получение API-токена Timeweb Cloud
1. Войдите в панель управления Timeweb Cloud: https://timeweb.cloud
2. Перейдите в раздел **"API и Terraform"**.
3. Создайте новый токен:
- Задайте имя (например, `woodpecker-autoscaler`).
- Выберите права: управление серверами (Servers).
- Можно отключить подтверждение через Telegram для автоматизации.
- Сохраните токен — он отображается только один раз.
## 2. Определение параметров сервера
Проверенные параметры для CI-агента:
| Параметр | Значение | Описание |
|----------|----------|----------|
| OS ID | `79` | Ubuntu 22.04 LTS |
| Preset ID | `2451` | Cloud-40 (2 CPU, 2GB RAM, 40GB NVMe, 800 руб/мес) |
| Availability Zone | `spb-1` | Санкт-Петербург (ru-1) |
Другие варианты:
- Ubuntu 24.04: `os_id=99`
- Debian 12: `os_id=95`
- Москва: `zone=msk-1`, `preset_id=4799` (Cloud MSK 40)
- Новосибирск: `zone=nsk-1`, `preset_id=4241` (Cloud NSK 40)
Для получения полного списка:
```bash
./timeweb-list
```
## 3. Настройка Woodpecker Autoscaler
Создайте `.env` файл:
```bash
# Woodpecker Server
WOODPECKER_SERVER=http://woodpecker-server:8000
WOODPECKER_TOKEN=your-woodpecker-admin-token
WOODPECKER_GRPC_ADDR=woodpecker-server:9000
WOODPECKER_GRPC_SECURE=false
# Autoscaler
WOODPECKER_POOL_ID=twcloud
WOODPECKER_MIN_AGENTS=0
WOODPECKER_MAX_AGENTS=5
WOODPECKER_WORKFLOWS_PER_AGENT=2
WOODPECKER_AGENT_IDLE_TIMEOUT=10m
WOODPECKER_RECONCILIATION_INTERVAL=1m
WOODPECKER_PROVIDER=timewebcloud
# Timeweb Cloud
WOODPECKER_TIMEWEBCLOUD_API_TOKEN=your-jwt-token
WOODPECKER_TIMEWEBCLOUD_OS_ID=79
WOODPECKER_TIMEWEBCLOUD_PRESET_ID=2451
WOODPECKER_TIMEWEBCLOUD_AVAILABILITY_ZONE=spb-1
# Опционально: SSH-ключи для доступа к агентам
# WOODPECKER_TIMEWEBCLOUD_SSH_KEY_IDS=1234
```
## 4. Запуск через Docker Compose
```bash
docker-compose up -d
```
Просмотр логов:
```bash
docker-compose logs -f woodpecker-autoscaler
```
## 5. Проверка
1. Запушьте коммит в репозиторий, подключенный к Woodpecker.
2. В логах autoscaler должно появиться `create agent` и `create server`.
3. В панели Timeweb Cloud должен создаться новый сервер с именем `pool-twcloud-agent-<random>`.
4. Через 2-3 минуты агент подключится к серверу и заберет задачу.
5. После завершения задачи и истечения `AGENT_IDLE_TIMEOUT` сервер будет удален.
## 6. Тестирование API (опционально)
Для проверки корректности API-клиента:
```bash
# Список ОС и тарифов
./timeweb-list
# Тест создания/удаления сервера
TIMEWEB_API_TOKEN=your-token ./timeweb-tester
```