Skip to content
/ pike Public

Плагин к cargo с функциями для упрощения разработки плагинов к Пикодате.

License

Notifications You must be signed in to change notification settings

picodata/pike

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8ae34a5 · Jan 28, 2025

History

79 Commits
Jan 28, 2025
Jan 28, 2025
Jan 28, 2025
Jan 27, 2025
Dec 20, 2024
Jan 27, 2025
Jan 28, 2025
Oct 3, 2024
Dec 20, 2024
Jan 28, 2025
Jan 28, 2025

Repository files navigation

Cargo plugin for Picodata plugins

Плагин к cargo с функциями для упрощения разработки плагинов к Пикодате.

Установка

cargo install picodata-pike

Quickstart

Начнем работу с новым плагином:

cargo pike plugin new test_plugin

cd test_plugin

Запустим кластер, конфигурацию которого можно задать в ./topology.toml

cargo pike run

В вашем распоряжении окажется рабочий кластер с установленным плагином. Остановим кластер комбинацией Ctrl+C или же командой cargo pike stop в отдельном окне.

Если вам нужно собрать архив для поставки на сервера, это можно сделать командой:

cargo pike plugin pack

В папке target появиться желанный архив.

Команды

--help

Для всех команд есть флаг --help выводящий справку по использованию.

cargo pike --help

run

Запуск кластера пикодаты по файлу topology.toml. Автоматически запускает плагины указанные в топологии.

Пример топологии:

[tier.default]
replicasets = 2
replication_factor = 2

[plugin.sp]
migration_context = [
    { name = "example_name", value = "example_value" },
]

[plugin.sp.service.main]
tiers = ["default"]
cargo pike run --topology topology.toml --data-dir ./tmp

Для отключения автоматической установки и включения плагинов можно использовать опцию --disable-install-plugins.

Доступные опции

  • -t, --topology <TOPOLOGY> - Путь к файлу топологии. Значение по умолчанию: topology.toml
  • --data-dir <DATA_DIR> - Путь к директории хранения файлов кластера. Значение по умолчанию: ./tmp
  • --disable-install-plugins - Отключение автоматической установки плагинов
  • --base-http-port <BASE_HTTP_PORT> - Базовый http-порт, с которого начнут открываться http-порты отдельных инстансов. Значение по умолчанию: 8000
  • --base-pg-port <BASE_PG_PORT> - Базовый порт постгрес протокола, с которого начнут открываться порты отдельных инстансов. Значение по умолчанию: 5432
  • --picodata-path <BINARY_PATH> - Путь до исполняемого файла Пикодаты. Значение по умолчанию: picodata
  • --release - Сборка и запуск релизной версии плагина
  • --target-dir <TARGET_DIR> - Директория собранных бинарных файлов. Значение по умолчанию: target
  • -d, --daemon - Запуск кластера в режиме демона
  • --disable-colors - Отключает раскрашивание имён инстансов в разные цвета в логах

config.yaml

Пайк позволяет использовать файл конфигурации Пикодаты вместе с запущенным кластером. Пример файла сразу генерируется командами new и init. Документацию к параметрам можно найти в документации к Пикодате.

Настройка нескольких тиров

Для настройки необходимо добавить нужные тиры в конфигурацию кластера (файл config.yaml). И после указать их в файле топологии topology.toml.

Пример добавления тира inokentiy:

# config.yaml

cluster:
  tier:
    default:
      replication_factor: 2
    inokentiy: # новый тир
      replication_factor: 1
# topology.toml

# ...

[tier.compute] # новый тир
replicasets = 1
replication_factor = 1

stop

Остановить кластер можно либо комбинацией клавиш Ctrl+C в терминале, где вызывалась команда cargo pike run, либо в другом окне командой:

cargo pike stop --data-dir ./tmp

При помощи --data-dir указывается путь до директории с файлами кластера (значение по умолчанию: ./tmp)

Вывод:

[*] stopping picodata cluster, data folder: ./tmp
[*] stopping picodata instance: i1
[*] stopping picodata instance: i2
[*] stopping picodata instance: i3
[*] stopping picodata instance: i4

Доступные опции

  • --data-dir <DATA_DIR> - Путь к директории хранения файлов кластера. Значение по умолчанию: ./tmp

plugin clean

Очистка дата-каталогов пикодаты.

cargo pike clean

Доступные опции

  • --data-dir <DATA_DIR> - Путь к директории хранения файлов кластера. Значение по умолчанию: ./tmp

plugin new

Создание нового проекта плагина из шаблона.

cargo pike plugin new name_of_new_plugin

Автоматически инициализирует в проект git. Для отключения этого поведения можно воспользоваться флагом --without-git.

Доступные опции

  • --without-git - Отключение автоматической инициализации git-репозитория
  • --workspace - Создание проекта плагина как воркспейса

plugin init

Создание нового проекта плагина из шаблона в текущей папке.

cargo pike plugin init

Автоматически инициализирует в проект git. Для отключения этого поведения можно воспользоваться флагом --without-git.

Доступные опции

  • --without-git - Отключение автоматической инициализации git-репозитория
  • --workspace - Создание проекта плагина как воркспейса

plugin pack

Сборка всех нужных для поставки плагина файлов в один архив (для деплоя или поставки).

cargo pike plugin pack

Команда plugin pack соберёт релизную версию плагина в новый архив в директории target проекта.

Доступные опции

  • --debug - Сборка и упаковка debug-версии плагина
  • --target-dir <TARGET_DIR> - Директория собранных бинарных файлов. Значение по умолчанию: target

plugin build

Альяс для команды cargo build.

cargo pike plugin build

Доступные опции

  • --release - Сборка release-версии плагина

config apply

Применение конфигурации сервисов плагина к запущенному командой run кластеру пикодаты.

Пример файла конфигурации сервисов:

# plugin_config.yaml

main: # имя сервиса
  value: changed # пример параметра конфигурации
cargo pike config apply

Доступные опции

  • -c, --config-path <CONFIG> - Путь к файлу конфига. Значение по умолчанию: plugin_config.yaml
  • --data-dir <DATA_DIR> - Путь к директории хранения файлов кластера. Значение по умолчанию: ./tmp

About

Плагин к cargo с функциями для упрощения разработки плагинов к Пикодате.

Resources

License

Stars

Watchers

Forks