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

3.2 KiB
Raw Permalink Blame History

Инструкция по развертыванию

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)

Для получения полного списка:

./timeweb-list

3. Настройка Woodpecker Autoscaler

Создайте .env файл:

# 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

docker-compose up -d

Просмотр логов:

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-клиента:

# Список ОС и тарифов
./timeweb-list

# Тест создания/удаления сервера
TIMEWEB_API_TOKEN=your-token ./timeweb-tester