Об этом проекте
Rancher Desktop — это открытое десктопное приложение, обеспечивающее управление Kubernetes и контейнерами в Windows, macOS и Linux. Проект представляет собой приложение на Electron, написанное в основном на TypeScript, объединяющее несколько технологий в один целостный инструмент. Он включает утилиту командной строки rdctl, написанную на Go.
README ориентирован на разработчиков, работающих над самим Rancher Desktop. Информация для пользователей находится на rancherdesktop.io, а документация для пользователей — на docs.rancherdesktop.io.
Процесс разработки:
- Большинство задач (сборки для разработки, упаковка, модульные тесты, сквозные тесты) выполняются через скрипты yarn; существуют некоторые исключения, например тесты BATS.
- Настройка Windows предлагается в двух формах: виртуальная машина для разработки под Microsoft Windows 10 с автоматизированным скриптом настройки PowerShell или ручное окружение с использованием WSL, Scoop, nvm, Visual Studio с рабочей нагрузкой Desktop development with C++ и Windows SDK, а также настройкой окончаний строк в git.
- Настройка macOS использует nvm для установки Node 22, yarn и Go через Homebrew. На машинах Apple M1 перед установкой зависимостей и запуском скриптов необходимо задать переменную окружения M1.
- Настройка Linux требует Node.js v22 с пакетами для разработки, yarn classic, Go 1.22 или более поздней версии и инструментальной цепочки C/C++ для node-gyp, чтобы собрать пакет ffi-napi.
Запуск и тестирование:
- yarn dev запускает версию для разработки.
- yarn test запускает модульные тесты; yarn test:e2e запускает интеграционные тесты.
- yarn build и yarn package создают выходные данные сборки в dist/. Кросс-компиляция не поддерживается.
Отладка:
- Удалённую отладку Chrome можно включить с помощью флагов --remote-debugging-port и --remote-allow-origins в Linux, macOS и Windows, а затем получить доступ через Chrome на локальном порту. Расширения можно удалённо отлаживать таким же образом после загрузки расширения.
- GoLand (и аналогичные IDE JetBrains) могут отлаживать среду разработки с помощью плагина Node.js и конфигурации запуска Node.js, указывающей на scripts/ts-wrapper.js scripts/dev.ts.
Сборки для разработки:
- В Windows и macOS каждый коммит запускает GitHub Actions, которые загружают артефакты .exe и .dmg.
- В Linux GitHub Actions выполняет часть процесса, а Open Build Service завершает его. Существуют каналы dev и stable; сборки dev берутся из ветки main и веток release-*, а версии имеют формат priority.branch.commit_time.commit. Приведены инструкции по добавлению репозиториев разработки .deb и .rpm и по доступу к сборкам AppImage для разработки.
API:
- Rancher Desktop поддерживает ограниченный HTTP API, определённый в pkg/rancher-desktop/assets/specs/command-api.yaml, с примерами клиента в go/src/rdctl. API имеет версию 1, но считается внутренним и экспериментальным и может изменяться без предварительного уведомления.
Участие и дополнительная информация:
- Документ CONTRIBUTING.md и каталог docs/development/ содержат дополнительную документацию для разработчиков.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.