Базовые эндпоинты API
May 4, 2022 · View on GitHub
Описание
MyB API является расширяемым API, в котором вы можете в зависимости от задач, убирать и добавлять любые новые endpoint, которые могут как задействовать богатые возможности CBSD фреймворка, так и написать свой собственный плагин, доступный через уникальный endpoint.
Так, базовые возможности CBSD позволяют при необходимости запускать микросервисы или конфигураторы для создания чекпоинтов виртуальных машин ( /api/v1/checkpoint ), управление дисковым снэпшотами - создание, revert и клонирование ( /api/v1/snapshot ), живая миграция ( /api/v1/migrate ), проброс GPU и PCI устройств в гостей, доступ к хелперам/CBSD forms ( хотите создать собственный marketplace на базе CBSD/MyB ? Рекомендуем прочитать как работает CBSD с темплейтами: FreeBSD Journal January/February 2022: CBSD part 1 ) и т.д. и т.п.
В зависимости от того, какой собственый продукт вы хотите создать на базе MyB/CBSD - еще один Proxmox ? Тогда набор API будет одним. Хотите создать аналог Amazon AWS ? В этом случае, набор endpoint будет другим. Другими словами, ваш API никогда не будет перенасыщен ненужными вам endpoint-ами и будет содержать только то, что вам необходимо.
В базовой инсталляции, API MyB настолько упрощен, насколько это возможно для выполнения таких задач, как создание и получение виртуальных окружений в частном облаке. Ниже перечислены endpoint-ы, доступные сразу после инсталляции MyB.
| :bangbang: | :information_source: Обратите внимание! Большинство операций работает через токен. Токен может быть как классическим JWT, так и получаемый любой кастомной логикой. Например, для вашего удобства и упрощения API, в качестве токена используется md5(ваш публючный ключ). Помните, что эта схема подразумевает использование MyB только в частном облаке (trusted environments), но это также является конфигурируемой логикой. |
|---|
| окружение | endpoint | требуется cid? | описание |
|---|---|---|---|
| /images | получение списка зарегистрированных gold-образов | ||
| /cluster | cid:<cid> | сводная информация о всех ваших окружениях | |
| jail, VM, kubernetes | /api/v1/create/<X> | cid:<cid> | создать новое окружение <X> |
| jail, VM, kubernetes | /api/v1/status/<X> | cid:<cid> | сводная информация по окружению <X> |
| jail, VM, kubernetes | /api/v1/start/<X> | cid:<cid> | запустить окружение <X>, если оно в состоянии 'stopped' |
| jail, VM, kubernetes | /api/v1/stop/<X> | cid:<cid> | остановить окружение <X>, если оно в состоянии 'running' |
| jail, VM, kubernetes | /api/v1/destroy/<X> | cid:<cid> | уничтожить окружение <X> |
| kubernetes | /api/v1/kubeconfig/<X> | cid:<cid> | получить kubeconfig кластера <X>, для ~/.kube/config |
:construction: Подключая новые плагины и расширяя API endpoints, вы можете строить решения любых сложностей и любых возможностей . :construction:
Дальше: ACL и безопасность