Базовые эндпоинты 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-образов
/clustercid:<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 и безопасность