v0.5.0: 3 стенда — изоляция состояния, WSGI middleware, OpenAPI server selector, POLYGON_STANDS env

- loader.py: STANDS dict, get_services/get_ops_index per stand, POLYGON_STANDS env
- mock_state.py: get_state(stand_id) — ленивая инициализация
- app.py: StandMiddleware — перезапись PATH_INFO до Flask-роутинга
- Все роуты: LocalProxy(state), LocalProxy(SERVICES/OPS_INDEX) через g.stand_id
- openapi.py: _build_servers() — по одному серверу на стенд
- services/stand{1,2,3}/ — 37 YAML на стенд из STANDS/dev и STANDS/test
- tests/test_api.py: +4 multi-stand теста (изоляция, fail-next, OpenAPI servers)
- Обратная совместимость: /api/v1/svc/... → стенд по умолчанию
This commit is contained in:
2026-08-01 20:10:19 +04:00
parent 11f98738d0
commit 58d54f2a95
122 changed files with 25223 additions and 76 deletions
+53 -6
View File
@@ -1,7 +1,11 @@
"""
polygon v0.2.2 — Mock Nubes API.
polygon v0.5.0 — Mock Nubes API.
Эмулятор REST API облачной платформы Nubes для интеграционных тестов.
Поддержка нескольких стендов:
URL: /<stand_id>/api/v1/svc/... (stand_id из POLYGON_STANDS)
Состояние изолировано: у каждого стенда свой набор инстансов и операций.
Blueprint'ы (каждый — отдельный файл в routes/):
- root_bp → /health, / (HTML-страница)
- services_bp → /api/v1/svc/services, /services/<id>
@@ -15,16 +19,16 @@ Blueprint'ы (каждый — отдельный файл в routes/):
⛔ РОВНО 1 ВОРКЕР — состояние в памяти, не shared между процессами.
Переменные окружения:
POLYGON_STANDS — список стендов: name:path,name:path,...
MOCK_OP_DELAY — задержка операции в секундах (по умолчанию 0.1)
WEB_CONCURRENCY — число gunicorn-воркеров (принудительно 1)
"""
import os
from flask import Flask
from flask import Flask, g, request
# ⛔ Принудительно 1 воркер — состояние в памяти, иначе инстансы теряются.
# setdefault не перезапишет если Nubes/Procfile уже выставил WEB_CONCURRENCY=1.
os.environ.setdefault("WEB_CONCURRENCY", "1")
# Импорт blueprint'ов — каждый отвечает за свою группу маршрутов
@@ -36,14 +40,57 @@ from routes.run import bp as run_bp
from routes.mock_routes import bp as mock_bp
from routes.openapi import bp as openapi_bp
# Версия — единый источник правды в config/loader.py
from config.loader import VERSION
# config
import config.loader as _cfg
# Flask-приложение с Jinja2-шаблонами и статикой
app = Flask(__name__, template_folder="templates", static_folder="static")
# ═══════════════════════════════════════════════════════════════
# WSGI Middleware — перезапись PATH_INFO до Flask-роутинга
# ═══════════════════════════════════════════════════════════════
class StandMiddleware:
"""WSGI middleware: извлекает stand_id из URL и перезаписывает PATH_INFO.
/stand1/api/v1/svc/... → environ['stand_id']='stand1', PATH_INFO=/api/v1/svc/...
/api/v1/svc/... → environ['stand_id']=DEFAULT_STAND, без изменений
/health, /swagger, / → environ['stand_id']=DEFAULT_STAND, без изменений
Должен быть ДО Flask-роутинга, поэтому это middleware, а не before_request.
"""
def __init__(self, wsgi_app):
self.wsgi_app = wsgi_app
def __call__(self, environ, start_response):
path = environ.get("PATH_INFO", "/")
parts = path.split("/")
if len(parts) > 1 and parts[1] in _cfg.STANDS:
environ["polygon.stand_id"] = parts[1]
new_path = "/" + "/".join(parts[2:]) if len(parts) > 2 else "/"
environ["PATH_INFO"] = new_path
else:
environ["polygon.stand_id"] = _cfg.DEFAULT_STAND
return self.wsgi_app(environ, start_response)
app.wsgi_app = StandMiddleware(app.wsgi_app)
@app.before_request
def _set_stand():
"""Копирует stand_id из environ в g."""
g.stand_id = request.environ.get("polygon.stand_id", _cfg.DEFAULT_STAND)
# ═══════════════════════════════════════════════════════════════
# Регистрируем blueprint'ы.
# Префиксы уже заданы в url_prefix каждого blueprint'а (кроме root — он без префикса).
app.register_blueprint(root_bp) # /health, /
app.register_blueprint(services_bp) # /api/v1/svc/services
app.register_blueprint(instances_bp) # /api/v1/svc/instances
+59 -35
View File
@@ -1,74 +1,98 @@
"""
config/loader.py — загрузка сервисов и глобальные конфигурационные переменные.
Этот модуль загружает все YAML-конфиги сервисов при первом импорте и хранит их
как модульные переменные. Все routes/*.py импортируют SERVICES, OPS_INDEX, DELAY,
VERSION отсюда — без дублирования загрузки и без циклических импортов.
Поддержка нескольких стендов:
Переменная POLYGON_STANDS задаёт список стендов в формате:
имя:путь,имя:путь,...
Например:
POLYGON_STANDS=stand1:services/stand1,stand2:services/stand2,stand3:services/stand3
Переменные модуля (вычисляются ОДИН раз при старте):
VERSION — str, версия полигона (единая для app.py и root.py)
SERVICES — {service_id: service_def} все сервисы
OPS_INDEX — {svcOperationId: service_def} поиск сервиса по ID операции
DELAY — float, задержка операции из MOCK_OP_DELAY (по умолчанию 0.1)
По умолчанию — один стенд "default" из папки services/.
Переменные модуля:
VERSION — str, версия полигона
STANDS — {stand_id: {"SERVICES": ..., "OPS_INDEX": ...}}
DELAY — float, задержка операции
DEFAULT_STAND — str, ID стенда по умолчанию
"""
import os
import yaml
# Константы для загрузки YAML
_YAML_EXTS = (".yaml", ".yml")
_DEFAULT_SERVICES_DIR = "services"
def _load_all(services_dir=_DEFAULT_SERVICES_DIR):
"""Загружает все YAML-файлы из директории сервисов.
Возвращает кортеж (services, ops_index):
services — {service_id: {name, operations, cfsParams, stateParams, stateOut, ...}}
ops_index — {svcOperationId: service_def} для быстрого поиска «чей это opId»
"""
def _load_one(services_dir):
"""Загружает YAML из одной директории → (services, ops_index)."""
if not os.path.isdir(services_dir):
raise FileNotFoundError(f"Services directory not found: {services_dir}")
services = {}
ops_index = {}
# Итерируем ВСЕ .yaml/.yml — без хардкода количества сервисов
for fname in sorted(os.listdir(services_dir)):
if not fname.lower().endswith(_YAML_EXTS):
continue
path = os.path.join(services_dir, fname)
with open(path, "r", encoding="utf-8") as f:
cfg = yaml.safe_load(f)
if not cfg:
continue
svc_id = cfg["service_id"]
services[svc_id] = cfg
# Индекс: svcOperationId → service_def (нужен для поиска «чей это opId»)
for op in cfg.get("operations", []):
ops_index[op["svcOperationId"]] = cfg
return services, ops_index
# ---------------------------------------------------------------------------
# Модульные переменные — инициализируются ОДИН раз при первом импорте.
# Все routes/*.py импортируют SERVICES, OPS_INDEX, DELAY отсюда.
# ---------------------------------------------------------------------------
def _parse_stands(raw):
"""Парсит POLYGON_STANDS → {stand_id: services_dir}."""
stands = {}
for pair in raw.split(","):
pair = pair.strip()
if ":" not in pair:
continue
name, path = pair.split(":", 1)
stands[name.strip()] = path.strip()
return stands
# Загружаем конфиги сервисов (37+ YAML из services/)
SERVICES, OPS_INDEX = _load_all()
# Задержка операции в секундах (для синхронного sleep в /run).
# Меняется на лету через POST /_mock/delay/<s> — см. mock_routes.py.
# ⛔ Импортировать ТОЛЬКО через `import config.loader as _cfg` и читать `_cfg.DELAY` —
# иначе float копируется по значению и не реагирует на изменение.
# ── Загрузка ──
_raw = os.getenv("POLYGON_STANDS", "")
if _raw:
_stand_dirs = _parse_stands(_raw)
else:
_stand_dirs = {"default": _DEFAULT_SERVICES_DIR}
STANDS = {}
for _sid, _sdir in _stand_dirs.items():
_svc, _ops = _load_one(_sdir)
STANDS[_sid] = {"SERVICES": _svc, "OPS_INDEX": _ops}
DEFAULT_STAND = next(iter(STANDS.keys()))
# Для обратной совместимости (код который не использует g.stand_id)
_DF = STANDS[DEFAULT_STAND]
SERVICES = _DF["SERVICES"]
OPS_INDEX = _DF["OPS_INDEX"]
DELAY = float(os.getenv("MOCK_OP_DELAY", "0.1"))
VERSION = "0.5.0"
# Версия полигона — единый источник правды для app.py и routes/root.py.
# Меняется при КАЖДОМ изменении кода.
VERSION = "0.4.3"
def get_services(stand_id):
"""SERVICES для конкретного стенда."""
return STANDS[stand_id]["SERVICES"]
def get_ops_index(stand_id):
"""OPS_INDEX для конкретного стенда."""
return STANDS[stand_id]["OPS_INDEX"]
def list_stands():
"""Список ID всех стендов."""
return list(STANDS.keys())
+19 -1
View File
@@ -148,5 +148,23 @@ class MockState:
self.fail_next = False
# Глобальный синглтон
# ── Мульти-стенд: состояние на каждый стенд ──
_states = {}
def get_state(stand_id):
"""Получить (или создать лениво) MockState для стенда."""
if stand_id not in _states:
_states[stand_id] = MockState()
return _states[stand_id]
def reset_all():
"""Сбросить ВСЕ стенды (для тестов)."""
for s in _states.values():
s.reset()
# Глобальный синглтон (обратная совместимость)
state = MockState()
+9 -5
View File
@@ -10,10 +10,14 @@ Blueprint "instances" с префиксом /api/v1/svc/instances.
HttpClient.post() в app-autotest достаёт instanceUid ИМЕННО из Location.
"""
from flask import Blueprint, jsonify, make_response, request
from flask import Blueprint, g, jsonify, make_response, request
from werkzeug.local import LocalProxy
import mock_state
from config.loader import SERVICES
import config.loader as _cfg
state = LocalProxy(lambda: mock_state.get_state(g.stand_id))
SERVICES = LocalProxy(lambda: _cfg.get_services(g.stand_id))
bp = Blueprint("instances", __name__, url_prefix="/api/v1/svc/instances")
@@ -32,7 +36,7 @@ def list_instances():
"""
page_size = request.args.get("pageSize", 200, type=int)
page = request.args.get("page", 1, type=int)
result = mock_state.state.list_instances(page_size=page_size, page=page)
result = state.list_instances(page_size=page_size, page=page)
return jsonify(result)
@@ -45,7 +49,7 @@ def get_instance(uid):
Если инстанс не найден — 404 с JSON-ошибкой.
"""
inst = mock_state.state.get_instance(uid)
inst = state.get_instance(uid)
if not inst:
return jsonify({"error": "instance not found"}), 404
@@ -81,7 +85,7 @@ def create_instance():
return jsonify({"error": f"service {service_id} not found"}), 404
# Создать shell инстанса (статус "creating")
uid = mock_state.state.create_instance(service_id, display_name, svc_def)
uid = state.create_instance(service_id, display_name, svc_def)
# ⛔ Location ОБЯЗАТЕЛЕН — без него executor не получит instanceUid
resp = make_response(jsonify({"instanceUid": uid}), 201)
+9 -5
View File
@@ -10,10 +10,14 @@ Blueprint "mock" с префиксом /api/v1/svc/_mock.
import os
from flask import Blueprint, jsonify, request, abort
from flask import Blueprint, g, jsonify, request, abort
from werkzeug.local import LocalProxy
import mock_state
import config.loader as _cfg # для чтения/записи модульных переменных DELAY, SERVICES
import config.loader as _cfg
state = LocalProxy(lambda: mock_state.get_state(g.stand_id))
SERVICES = LocalProxy(lambda: _cfg.get_services(g.stand_id))
bp = Blueprint("mock", __name__, url_prefix="/api/v1/svc/_mock")
@@ -44,7 +48,7 @@ def mock_reset():
Удаляет ВСЕ инстансы, операции и параметры из MockState.
Используется в тестах (autouse fixture) для изоляции тестов друг от друга.
"""
mock_state.state.reset()
state.reset()
return jsonify({"reset": "ok"})
@@ -59,7 +63,7 @@ def mock_state_view():
Полезно для отладки тестов: «какие инстансы сейчас живы?», «завершилась ли
операция?». НЕ для production-использования.
"""
st = mock_state.state
st = state
return jsonify({
"instances": {
uid: {
@@ -146,5 +150,5 @@ def mock_fail_next():
После использования флаг сбрасывается (one-shot).
Позволяет тестировать негативные сценарии.
"""
mock_state.state.fail_next = True
state.fail_next = True
return jsonify({"fail_next": True})
+15 -7
View File
@@ -20,6 +20,17 @@ bp = Blueprint("openapi", __name__, url_prefix="/api/v1/svc")
_SERVER_URL = os.getenv("POLYGON_ENDPOINT", "https://polygon.pythonk8s.dev.nubes.ru")
def _build_servers():
"""Список серверов — по одному на каждый стенд."""
servers = []
for sid in _cfg.list_stands():
servers.append({
"url": f"{_SERVER_URL}/{sid}",
"description": f"Стенд: {sid}",
})
return servers
@bp.route("/openapi.json", methods=["GET"])
def openapi_spec():
"""GET /api/v1/svc/openapi.json — OpenAPI 3.1.0 спецификация.
@@ -56,18 +67,15 @@ def _build_spec():
"- Управляемый сброс через `/_mock/reset`\n"
"- Симуляция ошибок через `/_mock/fail-next`\n\n"
"### Авторизация\n"
f"Bearer-токен: `test-token-123` (настроен через `MOCK_AUTH_TOKEN`)"
"- Основные эндпоинты — без авторизации\n"
"- `_mock/*` — заголовок `X-Mock-Auth: test-token-123` "
"(настроен через `MOCK_AUTH_TOKEN`)"
),
"contact": {
"name": "Nubes Platform",
},
},
"servers": [
{
"url": _SERVER_URL,
"description": "Polygon (mock)",
},
],
"servers": _build_servers(),
"security": [],
"tags": [
{"name": "services", "description": "Сервисы (каталог)"},
+14 -9
View File
@@ -13,11 +13,16 @@ Blueprint "operations" с префиксом /api/v1/svc.
выше для ясности.
"""
from flask import Blueprint, jsonify, make_response, request
from flask import Blueprint, g, jsonify, make_response, request
from werkzeug.local import LocalProxy
import mock_state
import state_machine
from config.loader import SERVICES, OPS_INDEX
import config.loader as _cfg
state = LocalProxy(lambda: mock_state.get_state(g.stand_id))
SERVICES = LocalProxy(lambda: _cfg.get_services(g.stand_id))
OPS_INDEX = LocalProxy(lambda: _cfg.get_ops_index(g.stand_id))
bp = Blueprint("operations", __name__, url_prefix="/api/v1/svc")
@@ -135,7 +140,7 @@ def create_operation():
return jsonify({"error": "instanceUid is required"}), 400
# Проверка что инстанс существует
inst = mock_state.state.get_instance(instance_uid)
inst = state.get_instance(instance_uid)
if not inst:
return jsonify({"error": "instance not found"}), 404
@@ -165,7 +170,7 @@ def create_operation():
break
# Создать операцию в MockState (dtFinish=None — ещё не выполнена)
op_uid = mock_state.state.create_operation(instance_uid, svc_op_id, operation, kind, action)
op_uid = state.create_operation(instance_uid, svc_op_id, operation, kind, action)
# ⛔ Location ОБЯЗАТЕЛЕН — без него executor не получит opUid
resp = make_response(jsonify({"instanceOperationUid": op_uid}), 201)
@@ -192,7 +197,7 @@ def get_operation(uid):
app-autotest использует ?fields=dtFinish,isSuccessful для поллинга —
ждёт пока dtFinish != None.
"""
op = mock_state.state.get_operation(uid)
op = state.get_operation(uid)
if not op:
return jsonify({"error": "operation not found"}), 404
@@ -203,7 +208,7 @@ def get_operation(uid):
if "cfsParams" in fields:
svc_op_id = op.get("svcOperationId")
svc_def = OPS_INDEX.get(svc_op_id, {})
op_params = mock_state.state.get_params(uid)
op_params = state.get_params(uid)
result["cfsParams"] = _build_cfs_list(svc_def, svc_op_id, op_params)
return jsonify({"instanceOperation": result})
@@ -233,11 +238,11 @@ def set_operation_param():
return jsonify({"error": "instanceOperationUid and svcOperationCfsParamId required"}), 400
# Проверка что операция существует
if not mock_state.state.get_operation(op_uid):
if not state.get_operation(op_uid):
return jsonify({"error": "operation not found"}), 404
# Сохранить параметр (param_id — int, value — str)
mock_state.state.set_param(op_uid, param_id, value)
state.set_param(op_uid, param_id, value)
return jsonify({})
@@ -256,7 +261,7 @@ def validate_cfs(uid):
Если вернуть jsonify({}), app-autotest распарсит но логика та же.
Пустое тело — канонический ответ реального Nubes API для validate-cfs.
"""
if not mock_state.state.get_operation(uid):
if not state.get_operation(uid):
return jsonify({"error": "operation not found"}), 404
return "", 200
+6 -3
View File
@@ -7,12 +7,15 @@ Blueprint "root" регистрируется в app.py БЕЗ url_prefix.
"""
import os
from flask import Blueprint, render_template
from flask import Blueprint, g, render_template
from werkzeug.local import LocalProxy
import mock_state
import config.loader as _cfg
# Версия — из config/loader.py (единый источник правды)
state = LocalProxy(lambda: mock_state.get_state(g.stand_id))
SERVICES = LocalProxy(lambda: _cfg.get_services(g.stand_id))
VERSION = _cfg.VERSION
# Токен для авторизации в Swagger UI (предзаполняется)
@@ -44,7 +47,7 @@ def index():
Использует Jinja2-шаблон templates/index.html и внешний CSS из static/style.css.
"""
svc_count = len(_cfg.SERVICES)
inst_count = len(mock_state.state.instances)
inst_count = len(state.instances)
# Список сервисов для таблицы: name, id, кол-во операций
svc_list = []
+7 -3
View File
@@ -10,13 +10,17 @@ Blueprint "run" с префиксом /api/v1/svc.
import time
from flask import Blueprint, jsonify
from flask import Blueprint, g, jsonify
from werkzeug.local import LocalProxy
import mock_state
import state_machine
import config.loader as _cfg
from utils.now import now as _now
state = LocalProxy(lambda: mock_state.get_state(g.stand_id))
SERVICES = LocalProxy(lambda: _cfg.get_services(g.stand_id))
bp = Blueprint("run", __name__, url_prefix="/api/v1/svc")
@@ -37,7 +41,7 @@ def run_operation(uid):
Возвращает {"ok": True} — формат как в реальном Nubes API.
Повторный вызов → 409 (operation already completed).
"""
op = mock_state.state.get_operation(uid)
op = state.get_operation(uid)
if not op:
return jsonify({"error": "operation not found"}), 404
@@ -55,7 +59,7 @@ def run_operation(uid):
time.sleep(_cfg.DELAY)
# Проверка /_mock/fail-next — симуляция падения операции
st = mock_state.state
st = state
if st.fail_next:
st.fail_next = False # one-shot: сбросить после использования
op["dtFinish"] = _now()
+5 -2
View File
@@ -6,9 +6,12 @@ Blueprint "services" с префиксом /api/v1/svc/services.
GET /services/<id> — детали конкретного сервиса (список операций)
"""
from flask import Blueprint, jsonify
from flask import Blueprint, g, jsonify
from werkzeug.local import LocalProxy
from config.loader import SERVICES
import config.loader as _cfg
SERVICES = LocalProxy(lambda: _cfg.get_services(g.stand_id))
bp = Blueprint("services", __name__, url_prefix="/api/v1/svc/services")
+258
View File
@@ -0,0 +1,258 @@
name: zones_v2
service_id: 109
service_display_name: Управление DNS
service_short_name: zonesV2
service_man: '# Управление DNS<br/><br/>## Что делает сервис<br/><br/>Управляет DNS-зоной вашего домена в инфраструктуре `ngcloud.ru`.<br/>Сервис помогает:<br/><br/>- создать DNS-зону;<br/>- поддерживать
записи в зоне (добавлять, удалять, массово менять);<br/>- удалять зону;<br/>- синхронизировать данные зоны с фактическим состоянием на DNS-серверах.<br/><br/>Сервис работает с авторитетными DNS-серверами
зоны:<br/><br/>- `ns3.ngcloud.ru`<br/> - `185.247.187.83`<br/> - `2a10:aa80:0:5::3`<br/>- `ns4.ngcloud.ru`<br/> - `81.22.46.43`<br/> - `2a10:aa80:0:6::3`<br/><br/>## Очень важно: что сделать у регистратора
домена<br/><br/>Чтобы зона действительно начала обслуживаться, **нужно делегировать домен** у регистратора на авторитетные DNS-серверы:<br/><br/>- `ns3.ngcloud.ru`<br/>- `ns4.ngcloud.ru`<br/><br/>В панели
регистратора нужно заменить NS-серверы домена на значения выше.<br/>Без этого записи в зоне могут быть созданы, но интернет не будет использовать их для вашего домена.<br/><br/>## Проверка после настройки<br/><br/>Проверить
ответы от серверов зоны:<br/><br/>```bash<br/>dig <ваш_домен> @ns3.ngcloud.ru<br/>dig <ваш_домен> @ns4.ngcloud.ru<br/>```<br/><br/>Проверить, что делегирование у регистратора применилось:<br/><br/>```bash<br/>dig
<ваш_домен> NS<br/>```<br/><br/>В ответе должны быть `ns3.ngcloud.ru` и `ns4.ngcloud.ru`.<br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 254
operation: create
kind: instance
action: create
- svcOperationId: 260
operation: create_record
kind: subresource
action: create
- svcOperationId: 255
operation: delete
kind: instance
action: delete
- svcOperationId: 261
operation: delete_record
kind: subresource
action: delete
- svcOperationId: 256
operation: modify
kind: instance
action: modify
- svcOperationId: 262
operation: modify_record
kind: subresource
action: modify
- svcOperationId: 259
operation: reconcile
kind: action
action: reconcile
stateOut:
records: {}
cfsParams:
- svcOperationCfsParamId: 761
svcOperationCfsParam: zoneName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 762
svcOperationCfsParam: zoneKind
dataType: string
isRequired: true
defaultValue: NATIVE
isModifiable: false
valueList:
- NATIVE
- SLAVE
- svcOperationCfsParamId: 763
svcOperationCfsParam: zoneMastersForSlave
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 764
svcOperationCfsParam: zoneRefresh
dataType: integer > 0
isRequired: true
defaultValue: '86400'
isModifiable: false
- svcOperationCfsParamId: 765
svcOperationCfsParam: zoneRetry
dataType: integer > 0
isRequired: true
defaultValue: '7200'
isModifiable: false
- svcOperationCfsParamId: 766
svcOperationCfsParam: zoneExpire
dataType: integer > 0
isRequired: true
defaultValue: '3600000'
isModifiable: false
- svcOperationCfsParamId: 767
svcOperationCfsParam: zoneTTL
dataType: integer > 0
isRequired: true
defaultValue: '86400'
isModifiable: false
- svcOperationCfsParamId: 768
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: powerdns
isModifiable: false
valueList:
- powerdns
- svcOperationCfsParamId: 777
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 778
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: '3600'
isModifiable: false
- svcOperationCfsParamId: 779
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: A
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 780
svcOperationCfsParam: recordInput
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
record:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 781
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 769
svcOperationCfsParam: records
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
recordName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordTTL:
dataType: integer > 0
defaultValue: '3600'
isRequired: true
isModifiable: false
recordType:
dataType: string
defaultValue: A
isRequired: true
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
- CAA
recordInput:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 783
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 784
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 785
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 786
svcOperationCfsParam: recordInput
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
record:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
254:
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
260:
- 777
- 778
- 779
- 780
255: []
261:
- 781
256:
- 769
262:
- 783
- 784
- 785
- 786
259: []
stateParams:
zoneName: ''
zoneKind: NATIVE
zoneMastersForSlave: ''
zoneRefresh: '86400'
zoneRetry: '7200'
zoneExpire: '3600000'
zoneTTL: '86400'
resourceRealm: powerdns
+92
View File
@@ -0,0 +1,92 @@
name: dnsrecord
service_id: 111
service_display_name: DNS запись
service_short_name: dnsrecord
service_man: Необходима DNS зона, в которой будет создана DNS запись.<br/>Выберите <br/>* Зону в которой будет создана запись<br/>* Тип записи<br/>* Имя записи<br/>* Значение записи
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 45
operation: create
kind: instance
action: create
- svcOperationId: 46
operation: delete
kind: instance
action: delete
- svcOperationId: 90
operation: modify
kind: instance
action: modify
- svcOperationId: 408
operation: reconcile
kind: action
action: reconcile
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 75
svcOperationCfsParam: zoneUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 76
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- PTR
- SOA
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 77
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 78
svcOperationCfsParam: recordInput
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 450
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: '3600'
isModifiable: false
- svcOperationCfsParamId: 256
svcOperationCfsParam: recordInput
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
45:
- 75
- 76
- 77
- 78
- 450
46: []
90:
- 256
408: []
stateParams:
zoneUid: ''
recordType: ''
recordName: ''
recordInput: ''
recordTTL: '3600'
+406
View File
@@ -0,0 +1,406 @@
name: mariadb
service_id: 115
service_display_name: Mariadb
service_short_name: mariadb
service_man: 'Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.<br/>Автоматическое резервное копирование, ручное восстановление.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 138
operation: create
kind: instance
action: create
- svcOperationId: 242
operation: create_database
kind: subresource
action: create
- svcOperationId: 243
operation: create_user
kind: subresource
action: create
- svcOperationId: 139
operation: delete
kind: instance
action: delete
- svcOperationId: 248
operation: delete_database
kind: subresource
action: delete
- svcOperationId: 247
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 142
operation: modify
kind: instance
action: modify
- svcOperationId: 287
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 141
operation: resume
kind: instance
action: resume
- svcOperationId: 140
operation: suspend
kind: instance
action: suspend
stateOut:
databases: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 877
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 878
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 879
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 880
svcOperationCfsParam: mariadbConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: 9.4.0
isRequired: true
isModifiable: false
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 881
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '720'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 882
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 734
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db-ebbjso21
isModifiable: false
- svcOperationCfsParamId: 735
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: user3vanbmfy
isModifiable: false
- svcOperationCfsParamId: 736
svcOperationCfsParam: password
dataType: string
isRequired: true
defaultValue: p4egnsar
isModifiable: false
- svcOperationCfsParamId: 737
svcOperationCfsParam: dbName
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
dbname:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 738
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '%'
isModifiable: false
- svcOperationCfsParamId: 456
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
isRequired: true
defaultValue: 'true'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 745
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 744
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 883
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 884
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 885
svcOperationCfsParam: mariadbConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 886
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 887
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
138:
- 877
- 878
- 879
- 880
- 881
- 882
242:
- 734
243:
- 735
- 736
- 737
- 738
139:
- 456
248:
- 745
247:
- 744
142:
- 883
- 884
- 885
- 886
- 887
287: []
141: []
140: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
mariadbConfiguration: '{"version": "9.4.0"}'
backupConfiguration: '{"s3Uid": "", "retain": 720, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"enabled": false, "schedule": 0, "quota": 100, "percent": 10}'
+347
View File
@@ -0,0 +1,347 @@
name: kafka
service_id: 116
service_display_name: ApacheKafka
service_short_name: kafka
service_man: '# Инструкция по развертыванию Организация в Cloud Director через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Организация в Cloud Director** предназначен для управления изолированными
организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль
уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.<br/><br/>### Доступные операции<br/><br/>**create**
— Создание новой организации с заданными характеристиками и типом доступа.<br/>**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.<br/>**modify**
— Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).<br/>**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.<br/>**resume**
— Разморозка организации, восстановление функций управления.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание:
платформа, на которой будет создана организация.<br/>Пример значения: `ngcloud.ru`.<br/><br/>### Тип организации<br/>Описание: тип создаваемой организации.<br/>Варианты:<br/>- `iaas` — организация с прямым
доступом к облаку и авторизацией через Keycloak.<br/>- `saas` — организация под управлением Nubes, без прямого доступа к облаку.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.<br/><br/>### Промышленное окружение<br/>- Тип организации: `saas` (упрощённая
модель использования).<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Идентификатор организации<br/>Уникальный
идентификатор созданной организации. Используется для всех дальнейших API-операций.<br/><br/>### Статус организации<br/>Отражает текущее состояние: active, suspended, modifying, deleting.<br/><br/>###
Параметры сети<br/>Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних
IP внутри организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)**;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.<br/>-
Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок
и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется через Keycloak.<br/><br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 148
operation: create
kind: instance
action: create
- svcOperationId: 165
operation: create_topic
kind: subresource
action: create
- svcOperationId: 168
operation: create_user
kind: subresource
action: create
- svcOperationId: 149
operation: delete
kind: instance
action: delete
- svcOperationId: 167
operation: delete_topic
kind: subresource
action: delete
- svcOperationId: 170
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 162
operation: modify
kind: instance
action: modify
- svcOperationId: 166
operation: modify_topic
kind: subresource
action: modify
- svcOperationId: 169
operation: modify_user
kind: subresource
action: modify
- svcOperationId: 161
operation: resume
kind: instance
action: resume
- svcOperationId: 160
operation: suspend
kind: instance
action: suspend
stateOut:
topics: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 1084
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1085
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1086
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
allocationExternal:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 523
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 524
svcOperationCfsParam: partitions
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 525
svcOperationCfsParam: replicas
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 530
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 531
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 532
svcOperationCfsParam: operations
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- Create
- Describe
- Read
- Write
- svcOperationCfsParamId: 533
svcOperationCfsParam: group
dataType: string
isRequired: true
defaultValue: '*'
isModifiable: false
- svcOperationCfsParamId: 534
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '*'
isModifiable: false
- svcOperationCfsParamId: 529
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 540
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1087
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1088
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
allocationExternal:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 526
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 527
svcOperationCfsParam: partitions
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 528
svcOperationCfsParam: replicas
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 535
svcOperationCfsParam: nameTopic
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 536
svcOperationCfsParam: operations
dataType: array
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- Create
- Describe
- Read
- Write
- svcOperationCfsParamId: 537
svcOperationCfsParam: group
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 538
svcOperationCfsParam: accessHosts
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 539
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
148:
- 1084
- 1085
- 1086
165:
- 523
- 524
- 525
168:
- 530
- 531
- 532
- 533
- 534
149: []
167:
- 529
170:
- 540
162:
- 1087
- 1088
166:
- 526
- 527
- 528
169:
- 535
- 536
- 537
- 538
- 539
161: []
160: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 2000, "memory": 2048, "replicas": 0, "disk": 1}'
accessConfiguration: '{"allocationExternal": false, "masterAccessList": "[]"}'
+107
View File
@@ -0,0 +1,107 @@
name: akhq
service_id: 119
service_display_name: Akhq
service_short_name: Akhq
service_man: '# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.<br/>Позволяет просматривать
топики, consumer group''ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.<br/>Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS)
подключения.<br/><br/>## Доступные операции<br/>- **create** — Создание ресурса AKHQ<br/>- **suspend** — Остановка ресурса<br/>- **resume** — Возобновление работы ресурса<br/>- **modify** —
Модификация настроек<br/>- **delete** — Удаление ресурса<br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>*
**Кластер Kafka к которому нужно настроить подключение**<br/>Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.<br/><br/>* **Платформа для развертывания:**<br/>Платформа
для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/>Количество узлов для работы Akhq. Пример `2`<br/><br/>* **Квота
(megabyte) памяти пода:**<br/>Квота памяти пода в мегабайтах. Пример: `512`<br/><br/>* **Квота (millicore ) ядра пода:**<br/>Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Имя
домена:**<br/>Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`<br/><br/>---<br/>##
4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это полное доменное имя (FQDN),
по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.<br/><br/>**Учетные данные**<br/>Здесь
представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Учётные записи, созданные для работы с AKHQ, предоставляют
доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.<br/>---'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 175
operation: create
kind: instance
action: create
- svcOperationId: 176
operation: delete
kind: instance
action: delete
- svcOperationId: 180
operation: modify
kind: instance
action: modify
- svcOperationId: 178
operation: resume
kind: instance
action: resume
- svcOperationId: 177
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 550
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 551
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 552
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: false
- svcOperationCfsParamId: 553
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 554
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 555
svcOperationCfsParam: kafkaUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 565
svcOperationCfsParam: kafkaUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
175:
- 550
- 551
- 552
- 553
- 554
- 555
176: []
180:
- 565
178: []
177: []
stateParams:
resourceRealm: ''
resourceMemory: '512'
resourceCPU: '500'
domain: ''
resourceInstances: '1'
kafkaUid: ''
+521
View File
@@ -0,0 +1,521 @@
name: clickhouse
service_id: 120
service_display_name: ClickHouse
service_short_name: clickhouse
service_man: '# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная
для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер
создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик.
Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать
услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>*
**resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка
прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить
операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>###
Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/"
-d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE
= MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются
без специального ключа (`ON CLUSTER ''clickhousek8s''`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной
таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS
localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count()
FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE
TABLE IF NOT EXISTS database.localUsers ON cluster ''clickhousek8s''<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> ''/clickhouse/tables/{shard}/localUsers'',<br/> ''{replica}''<br/>)<br/>ORDER
BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster ''clickhousek8s''<br/>AS database.localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', rand());<br/><br/>INSERT
INTO database.users VALUES (1, ''Alice'', ''alice@example.com'');<br/>INSERT INTO database.users VALUES (2, ''Bob'', ''bob@example.com'');<br/>INSERT INTO database.users VALUES (3, ''Charlie'', ''charlie@example.com'');<br/>INSERT
INTO database.users VALUES (4, ''David'', ''david@example.com'');<br/>INSERT INTO database.users VALUES (5, ''Gosha'', ''gosha@example.com'');<br/>INSERT INTO database.users VALUES (6, ''Eve'', ''eve@example.com'');<br/>INSERT
INTO database.users VALUES (7, ''Frank'', ''frank@example.com'');<br/>INSERT INTO database.users VALUES (8, ''Grace'', ''grace@example.com'');<br/>INSERT INTO database.users VALUES (9, ''Hannah'', ''hannah@example.com'');<br/>INSERT
INTO database.users VALUES (10, ''Ivan'', ''ivan@example.com'');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT
COUNT(*) AS total_users_local FROM database.localUsers;<br/>```'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 181
operation: create
kind: instance
action: create
- svcOperationId: 186
operation: create_database
kind: subresource
action: create
- svcOperationId: 185
operation: create_user
kind: subresource
action: create
- svcOperationId: 184
operation: delete
kind: instance
action: delete
- svcOperationId: 188
operation: delete_database
kind: subresource
action: delete
- svcOperationId: 187
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 189
operation: modify
kind: instance
action: modify
- svcOperationId: 276
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 183
operation: resume
kind: instance
action: resume
- svcOperationId: 182
operation: suspend
kind: instance
action: suspend
stateOut:
databases: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 837
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 838
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
shards:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 839
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 840
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '1'
- '3'
- svcOperationCfsParamId: 841
svcOperationCfsParam: clickhouseConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '25.10'
isRequired: true
isModifiable: false
valueList:
- '25.10'
- svcOperationCfsParamId: 842
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '7'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 843
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 851
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
path:
dataType: string
defaultValue: something.xml
isRequired: true
isModifiable: false
xmlConfig:
dataType: string
defaultValue: <clickhouse></clickhouse>
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 600
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db01
isModifiable: false
- svcOperationCfsParamId: 596
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: myusername
isModifiable: false
- svcOperationCfsParamId: 598
svcOperationCfsParam: dbName
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
dbName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 599
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: ::/0
isModifiable: false
- svcOperationCfsParamId: 602
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 601
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 844
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
shards:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 845
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '1'
- '3'
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 846
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 847
svcOperationCfsParam: clickhouseConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '25.10'
- svcOperationCfsParamId: 848
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 849
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: false,true
isRequired: true
isModifiable: false
schedule:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 850
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
path:
dataType: string
defaultValue: something.xml
isRequired: true
isModifiable: false
xmlConfig:
dataType: string
defaultValue: <clickhouse></clickhouse>
isRequired: true
isModifiable: false
cfsParamsByOp:
181:
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 851
186:
- 600
185:
- 596
- 598
- 599
184: []
188:
- 602
187:
- 601
189:
- 844
- 845
- 846
- 847
- 848
- 849
- 850
276: []
183: []
182: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 2048, "replicas": 1, "shards": 1, "disk": 10}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
clickhouseKeeperConfiguration: '{"cpu": 500, "memory": 512, "replicas": 0}'
clickhouseConfiguration: '{"version": "25.10"}'
backupConfiguration: '{"schedule": "0 0 * * *", "s3Uid": "", "retain": 7}'
autoscaleConfiguration: '{"schedule": 0, "quota": 100, "percent": 10, "enabled": false}'
clickhouseFilesConfiguration: '{"path": "something.xml", "xmlConfig": "<clickhouse></clickhouse>"}'
+119
View File
@@ -0,0 +1,119 @@
name: s3
service_id: 12
service_display_name: S3 Object Storage
service_short_name: s3
service_man: Руководство доступно по ссылке:<br/>https://docs.s3-website.msk-1.ngcloud.ru/
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 1
operation: create
kind: instance
action: create
- svcOperationId: 6
operation: create_sub_user
kind: subresource
action: create
- svcOperationId: 5
operation: delete
kind: instance
action: delete
- svcOperationId: 7
operation: delete_sub_user
kind: subresource
action: delete
- svcOperationId: 4
operation: modify
kind: instance
action: modify
- svcOperationId: 407
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 3
operation: resume
kind: instance
action: resume
- svcOperationId: 2
operation: suspend
kind: instance
action: suspend
stateOut:
sub_users: {}
cfsParams:
- svcOperationCfsParamId: 163
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ceph.tst.nubes.ru
isModifiable: false
valueList:
- ceph.tst.nubes.ru
- svcOperationCfsParamId: 320
svcOperationCfsParam: displayName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 60
svcOperationCfsParam: subUserName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 61
svcOperationCfsParam: subUserAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- read
- write
- readwrite
- full
- svcOperationCfsParamId: 63
svcOperationCfsParam: subUserName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 50
svcOperationCfsParam: maxSizeGbPerUser
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 51
svcOperationCfsParam: maxObjectsPerBucket
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 52
svcOperationCfsParam: maxBucketsPerUser
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
1:
- 163
- 320
6:
- 60
- 61
5: []
7:
- 63
4:
- 50
- 51
- 52
407: []
3: []
2: []
stateParams:
resourceRealm: ceph.tst.nubes.ru
displayName: ''
+90
View File
@@ -0,0 +1,90 @@
name: s3bucket
service_id: 13
service_display_name: S3 бакет
service_short_name: s3bucket
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 51
operation: create
kind: instance
action: create
- svcOperationId: 52
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 124
svcOperationCfsParam: s3UserUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 125
svcOperationCfsParam: bucketName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 126
svcOperationCfsParam: maxSize
dataType: string
isRequired: true
defaultValue: '-1'
isModifiable: false
- svcOperationCfsParamId: 127
svcOperationCfsParam: readAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 128
svcOperationCfsParam: listAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 129
svcOperationCfsParam: corsAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 130
svcOperationCfsParam: placement
dataType: string
isRequired: true
defaultValue: HOT
isModifiable: false
valueList:
- HOT
- COLD
cfsParamsByOp:
51:
- 124
- 125
- 126
- 127
- 128
- 129
- 130
52: []
stateParams:
s3UserUid: ''
bucketName: ''
maxSize: '-1'
readAll: 'false'
listAll: 'false'
corsAll: 'false'
placement: HOT
@@ -0,0 +1,150 @@
name: vc_mgmt_sthutrval_cluster
service_id: 148
service_display_name: Менеджмент Kubernetes кластер Штурвал
service_short_name: vcMgmtSthutrvalCluster
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 258
operation: create
kind: instance
action: create
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 771
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: sandbox.nubes.ru
isRequired: true
isModifiable: false
valueList:
- sandbox.nubes.ru
clusterName:
dataType: string
defaultValue: example-brcyqrjr
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 772
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 773
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 774
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-jax0kk2f
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
- svcOperationCfsParamId: 775
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
cfsParamsByOp:
258:
- 771
- 772
- 773
- 774
- 775
stateParams:
startupConfiguration: '{"resourceRealm": "sandbox.nubes.ru", "clusterName": "example-brcyqrjr"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
controlPlaneConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingDisk": 50, "count": 2, "groupName": "workers-jax0kk2f", "sizingPolicy": ""}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
+216
View File
@@ -0,0 +1,216 @@
name: valo_tenant
service_id: 149
service_display_name: VALO Cloud
service_short_name: valoTenant
service_man: '# Инструкция по развертыванию Тенант Valo через платформу<br/><br/>## 1. Общая информация<br/>Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое
облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию
выполняется отдельной операцией.<br/><br/>### Доступные операции<br/><br/>* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.<br/>* **modify** — изменение настроек тенанта, включая
перевод из ТЕСТ в ПРОД.<br/>* **suspend** — выключение (приостановка работы) тенанта.<br/>* **resume** — включение ранее приостановленного тенанта.<br/>* **delete** — удаление тенанта; доступно только
после выполнения операции suspend.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание: платформа,
на которой будет создан тенант.<br/>Пример значения: `valo.ngcloud.ru`.<br/><br/>### DNS-Префикс<br/>Описание: Будет добавлено в зону valo.ngcloud.ru<br/>Пример значения: `mysimpledomain`.<br/><br/>###
Параметры хранилища<br/>Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes<br/>Пример значения: `10`.<br/><br/>### Настройки тенанта<br/>Описание:
Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала<br/>Пример значения: `опционально в рамках настройки`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы<br/><br/>###
Промышленное окружение<br/>Для разблокировки используйте операцию `modify`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе
операций):<br/><br/>### Статус тенанта<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу
переведён в ПРОД без операции modify.<br/>Удаление тенанта возможно только после его выключения с помощью операции suspend.<br/>Срок тестового режима составляет 2 месяца с момента создания.<br/>Операции
suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 202
operation: create
kind: instance
action: create
- svcOperationId: 206
operation: delete
kind: instance
action: delete
- svcOperationId: 203
operation: modify
kind: instance
action: modify
- svcOperationId: 205
operation: resume
kind: instance
action: resume
- svcOperationId: 204
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 655
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: valo.ngcloud.ru
isModifiable: false
valueList:
- valo.ngcloud.ru
- svcOperationCfsParamId: 656
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 657
svcOperationCfsParam: valoOptions
dataType: map-fixed
isRequired: true
defaultValue: '{}'
isModifiable: true
dataDescriptor:
ffThemes:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
ffOnlineEditor:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffWatermark:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffUserImport:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 658
svcOperationCfsParam: s3Storage
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: true
- svcOperationCfsParamId: 659
svcOperationCfsParam: valoOptions
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
ffWatermark:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffUserImport:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffThemes:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
ffOnlineEditor:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 660
svcOperationCfsParam: s3Storage
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
202:
- 655
- 656
- 657
- 658
206: []
203:
- 659
- 660
205: []
204: []
stateParams:
resourceRealm: valo.ngcloud.ru
domain: ''
valoOptions: '{"ffThemes": true, "ffPublicLink": true, "ffLogging": true, "userCount": 10, "requestApproveMaxPeriod": 2, "ffOnlineEditor": true, "ffWatermark": true, "ffUserImport": true}'
s3Storage: '10'
@@ -0,0 +1,324 @@
name: k8s_sthutrval_cluster
service_id: 150
service_display_name: Kubernetes кластер Штурвал
service_short_name: k8sSthutrvalCluster
service_man: Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 108
operation: create
kind: instance
action: create
- svcOperationId: 281
operation: create_user
kind: subresource
action: create
- svcOperationId: 109
operation: delete
kind: instance
action: delete
- svcOperationId: 282
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 110
operation: modify
kind: instance
action: modify
- svcOperationId: 253
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 174
operation: resume
kind: instance
action: resume
- svcOperationId: 173
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 750
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
vdcUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
nsxtUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
clusterName:
dataType: string
defaultValue: example-imhltbba
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 751
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: '[]'
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 752
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-0krz2kek
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 753
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 755
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 869
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 870
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 756
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
appVersion:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 757
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 758
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-apak4rks
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 759
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
cfsParamsByOp:
108:
- 750
- 751
- 752
- 753
- 755
281:
- 869
109: []
282:
- 870
110:
- 756
- 757
- 758
- 759
253: []
174: []
173: []
stateParams:
startupConfiguration: '{"vdcUid": "", "nsxtUid": "", "clusterName": "example-imhltbba"}'
controlPlaneConfiguration: '{"sizingPolicy": "[]", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 2, "groupName": "workers-0krz2kek"}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
+372
View File
@@ -0,0 +1,372 @@
name: k8s_openbao
service_id: 151
service_display_name: Vault
service_short_name: k8sOpenbao
service_man: '# Инструкция по развертыванию Хранилища секретов через платформу<br/><br/>## 1. Общая информация<br/>Хранилище секретов — сервис централизованного и защищённого хранения чувствительных данных
(секретов, ключей, конфигураций). Предназначен для использования приложениями и сервисами в Kubernetes с управлением доступом на основе ролей.<br/>В качестве приложения используется открытый проект OpenBao
с поддержкой кластерного режима RAFT.<br/><br/>### Доступные операции<br/>**create** — Создание хранилища секретов и инициализация кластера.<br/>**delete** — Удаление хранилища секретов с полной очисткой
всех связанных сущностей.<br/>**modify** — Изменение параметров развернутого хранилища секретов.<br/>**suspend** — Приостановка работы кластера без удаления Persistent Volume.<br/>**resume** — Возобновление
работы кластера с автоматическим unseal всех нод.<br/>**restart** — Поочередный перезапуск нод с последующим подключением в кластер.<br/>**create_kv** — Создание Key/Value хранилища версии V2.<br/>**delete_kv**
— Удаление Key/Value хранилища со всеми содержащимися секретами.<br/>**create_secrets** — Создание секрета внутри Key/Value хранилища.<br/>**delete_secrets** — Удаление секрета из Key/Value хранилища.<br/>**update_secrets**
— Обновление значения секрета.<br/>**recovery_secrets** — Откат секрета к указанной версии.<br/>**create_role** — Создание роли для управления Key/Value хранилищем или секретами.<br/>**update_role** —
Обновление параметров роли.<br/>**delete_role** — Удаление роли доступа.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа
для развертывания<br/>Описание: Кластер Kubernetes, в котором будет развернуто приложение.<br/>Формат значения: имя Kubernetes-кластера.<br/><br/>### Имя домена<br/>Описание: Доменное имя сервиса. При
указании полного FQDN выполняется проверка DNS A-записи или добавляется А-запись в техническую зону.<br/>Формат значения: secrets.domain.com / mysecretdomain.<br/><br/>### Кол-во реплик<br/>Описание:
Количество узлов в кластере.<br/>Формат значения: целое число.<br/><br/>### Квота ядра пода<br/>Описание: Лимит CPU для одного узла. Указывается в milicores (1000 milicores = 1 CPU).<br/>Формат значения:
целое число.<br/><br/>### Квота памяти пода<br/>Описание: Лимит оперативной памяти для одного узла. Указывается в megabytes.<br/>Формат значения: целое число.<br/><br/>### Размер диска под хранение секретов<br/>Описание:
Объем диска для хранения данных. Фактический объем равен значению, умноженному на количество реплик. Указывается в Gigabytes<br/>Формат значения: целое число.<br/><br/>### Версия OpenBao<br/>Описание:
Версия OpenBao для развертывания сервиса.<br/>Формат значения: выбор из предоставленного списка версий.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>Кол-во
реплик: 2.<br/>Квота ядра пода: 200.<br/>Квота памяти пода: 256.<br/>Размер диска под хранение секретов: 1.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>### Промышленное окружение<br/>Кол-во
реплик: от 3.<br/>Квота ядра пода: от 1000.<br/>Квота памяти пода: от 1024.<br/>Размер диска под хранение секретов: от 10.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>---<br/><br/>## 4.
Выходные параметры<br/>Настройки внутри хранилища (kv/secrets/roles) — конфигурации Key/Value, секретов и ролей, созданные соответствующими операциями.<br/>Настройки самого хранилище (сайзинг, объемы)
— параметры ресурсов и хранилища данных, примененные к сервису.<br/>Статус кластера (running / suspended) — текущее состояние работы кластера.<br/>url для подключения к веб — адрес веб-интерфейса сервиса.<br/><br/>---<br/><br/>##
5. Дополнительная информация<br/>При удалении хранилища все данные и настройки безвозвратно удаляются.<br/>При использовании доменного имени требуется корректная настройка DNS.<br/>Операции управления
секретами и ролями выполняются только после успешного создания хранилища.<br/>Удаление кластера производится через операцию `suspend`, а удаление становится доступно через 14 дней после остановки кластера<br/>Правило
выше не относится к операции `delete_kv` / `delete_secrets` / `delete_role`'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 210
operation: create
kind: instance
action: create
- svcOperationId: 212
operation: create_kv
kind: subresource
action: create
- svcOperationId: 237
operation: create_policy
kind: subresource
action: create
- svcOperationId: 214
operation: create_secrets
kind: subresource
action: create
- svcOperationId: 231
operation: delete
kind: instance
action: delete
- svcOperationId: 213
operation: delete_kv
kind: subresource
action: delete
- svcOperationId: 239
operation: delete_policy
kind: subresource
action: delete
- svcOperationId: 233
operation: delete_secrets
kind: subresource
action: delete
- svcOperationId: 211
operation: modify
kind: instance
action: modify
- svcOperationId: 236
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 232
operation: recovery_secrets
kind: subresource
action: recovery
- svcOperationId: 234
operation: restart
kind: action
action: restart
- svcOperationId: 216
operation: resume
kind: instance
action: resume
- svcOperationId: 215
operation: suspend
kind: instance
action: suspend
- svcOperationId: 238
operation: update_policy
kind: subresource
action: update
- svcOperationId: 230
operation: update_secrets
kind: subresource
action: update
stateOut:
kvs: {}
policies: {}
secrets: {}
cfsParams:
- svcOperationCfsParamId: 663
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 664
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 665
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '3'
isModifiable: true
- svcOperationCfsParamId: 666
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 667
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: true
- svcOperationCfsParamId: 668
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: 2.5.2
isModifiable: true
valueList:
- 2.5.2
- svcOperationCfsParamId: 669
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: bao-onbcvsgk
isModifiable: false
- svcOperationCfsParamId: 675
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: kvname-9e9wvkt2
isModifiable: false
- svcOperationCfsParamId: 728
svcOperationCfsParam: policySettings
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
capabilities:
dataType: json
defaultValue: '["read", "list"]'
isRequired: true
isModifiable: false
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 729
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: policy-s0hfjfmn
isModifiable: false
- svcOperationCfsParamId: 677
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 678
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: path/to/mysecret
isModifiable: false
- svcOperationCfsParamId: 679
svcOperationCfsParam: secretData
dataType: map
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 676
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 732
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 726
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 727
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 670
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 671
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 672
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 673
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 674
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- 2.5.2
- svcOperationCfsParamId: 723
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 724
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 725
svcOperationCfsParam: secretVersion
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 730
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 731
svcOperationCfsParam: policySettings
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
capabilities:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 719
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 720
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 721
svcOperationCfsParam: needFullUpdateSecret
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 722
svcOperationCfsParam: secretData
dataType: map
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
210:
- 663
- 664
- 665
- 666
- 667
- 668
- 669
212:
- 675
237:
- 728
- 729
214:
- 677
- 678
- 679
231: []
213:
- 676
239:
- 732
233:
- 726
- 727
211:
- 670
- 671
- 672
- 673
- 674
236: []
232:
- 723
- 724
- 725
234: []
216: []
215: []
238:
- 730
- 731
230:
- 719
- 720
- 721
- 722
stateParams:
resourceRealm: ''
resourceCPU: '500'
resourceInstances: '3'
resourceMemory: '512'
resourceDisk: '10'
appVersion: 2.5.2
domain: bao-onbcvsgk
+277
View File
@@ -0,0 +1,277 @@
name: llm_ai
service_id: 163
service_display_name: LLM
service_short_name: llmAi
service_man: '## 1. Общая информация<br/><br/>LLMaaS (Large Language Model as a Service) — это сервис для доступа к языковым моделям через OpenAI-совместимое API.<br/>Платформа позволяет создавать организации
(тенанты), команды, выпускать и управлять API-ключами, устанавливать лимиты на использование.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create** — Создание организации в LLMaaS<br/>-
**delete** — Удаление организации<br/><br/>- **create_team** — Создание команды внутри организации<br/>- **modify_team** — Редактирование команды (модели, RPM, TPM)<br/>- **delete_team** —
Удаление команды<br/><br/>- **create_secrets** — Создание API-ключа<br/>- **update_secrets** — Обновление параметров API-ключа<br/>- **delete_secrets** — Удаление API-ключа<br/><br/>---<br/><br/>##
2. Параметры создания организации<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании организации:<br/><br/>* **Платформа для развертывания**<br/> Выбирается автоматически, изменять
не нужно.<br/><br/>* **Период бюджета**<br/> Срок жизни организации в днях.<br/> Пример: `30`<br/><br/><br/>---<br/><br/>## 3. Параметры создания команды<br/><br/>* **Имя команды**<br/> Уникальное
имя команды в рамках организации.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для команды.<br/> Пример: `gpt-oss-120b`<br/><br/>* **Лимит запросов в минуту (RPM)**<br/> Максимальное
количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих + исходящих) в минуту.<br/> Пример: `100000`<br/><br/>---<br/><br/>##
4. Параметры редактирования команды<br/><br/>Для существующей команды можно изменить:<br/><br/>* **Модель**<br/> Новая модель для команды.<br/> Пример: `gpt-oss-20b`<br/><br/>* **Лимит запросов в минуту
(RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>---<br/><br/>## 5. Параметры создания API-ключа<br/><br/>Ниже
перечислены параметры, которые необходимо указать при создании API-ключа:<br/><br/>* **Имя ключа**<br/> Уникальное имя ключа в рамках организации.<br/> Пример: `prod-key`<br/><br/>* **Команда**<br/> Имя
команды для привязки ключа. Если не указано — ключ привязывается к команде `main`.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для данного ключа.<br/> Пример: `gpt-oss-120b`<br/><br/>*
**Лимит запросов в минуту (RPM)**<br/> Максимальное количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих
+ исходящих) в минуту.<br/> Пример: `100000`<br/><br/>**Важно:** Лимиты API-ключа не могут превышать лимиты команды, к которой он привязан.<br/>При превышении операция будет отклонена с ошибкой.<br/>Перед
созданием ключа убедитесь, что `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/><br/>---<br/><br/>## 6. Параметры обновления API-ключа<br/><br/>Для уже существующего ключа можно изменить параметры. Все
параметры являются опциональными:<br/><br/>* **Имя ключа**<br/> Имя обновляемого ключа.<br/> Пример: `prod-key`<br/><br/>* **Модель**<br/> Новое название модели.<br/> Пример: `gpt-oss-20b`<br/><br/>*
**Лимит запросов в минуту (RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>**Важно:** При обновлении
лимитов API-ключа новые значения не могут превышать лимиты команды.<br/>Если указать значения выше командных, операция завершится ошибкой.<br/>Указывайте `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/>Команда
определяется автоматически по стейту услуги — изменить привязку к другой команде через эту операцию нельзя.<br/><br/>---<br/><br/>## 7. Параметры удаления API-ключа<br/><br/>* **Команда**<br/> Имя команды,
к которой привязан ключ.<br/> Пример: `production`<br/><br/>* **Имя ключа**<br/> Имя удаляемого ключа.<br/> Пример: `prod-key`<br/><br/>---<br/><br/>## 8. Параметры удаления команды<br/><br/>* **Имя
команды**<br/> Имя удаляемой команды.<br/> Пример: `production`<br/><br/>---<br/><br/>## 9. Параметры удаления организации<br/><br/>Удаление организации не требует дополнительных параметров — удаляется
вся организация со всеми командами и ключами.<br/><br/>---<br/><br/>## 10. Выходные параметры<br/><br/>После успешного создания организации платформа возвращает:<br/><br/>* **connectionUrl**<br/> URL
для доступа к inference API (OpenAI-совместимый).<br/> Пример: `https://api.aillm.ru`<br/><br/>---<br/><br/><br/>## 12. Пример использования API<br/><br/>После получения API-ключа клиент может обращаться
к LLMaaS напрямую:<br/><br/>**Запрос к chat completions:**<br/><br/>```bash<br/>curl https://api.aillm.ru/v1/chat/completions \<br/> -H "Authorization: Bearer sk-..." \<br/> -H "Content-Type: application/json"
\<br/> -d ''{<br/> "model": "gpt-oss-120b",<br/> "messages": [<br/> {"role": "user", "content": "Привет!"}<br/> ]<br/> }''<br/>```<br/><br/>**Получение списка доступных моделей:**<br/><br/>```bash<br/>curl
https://api.aillm.ru/v1/models \<br/> -H "Authorization: Bearer sk-..."<br/>```<br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 271
operation: create
kind: instance
action: create
- svcOperationId: 274
operation: create_secrets
kind: subresource
action: create
- svcOperationId: 278
operation: create_team
kind: subresource
action: create
- svcOperationId: 273
operation: delete
kind: instance
action: delete
- svcOperationId: 275
operation: delete_secrets
kind: subresource
action: delete
- svcOperationId: 280
operation: delete_team
kind: subresource
action: delete
- svcOperationId: 279
operation: modify_team
kind: subresource
action: modify
- svcOperationId: 277
operation: update_secrets
kind: subresource
action: update
stateOut:
secrets: {}
teams: {}
cfsParams:
- svcOperationCfsParamId: 826
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: llmAi.aillm.ru
isModifiable: false
valueList:
- llmAi.aillm.ru
- svcOperationCfsParamId: 833
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 834
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: false
- svcOperationCfsParamId: 835
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: false
- svcOperationCfsParamId: 857
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 859
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1083
svcOperationCfsParam: variablesKeys
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
teamName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
keyName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
models:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
tpmLimit:
dataType: integer > 0
defaultValue: '100000'
isRequired: true
isModifiable: false
rpmLimit:
dataType: integer > 0
defaultValue: '60'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 858
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 860
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 861
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: false
- svcOperationCfsParamId: 862
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: false
- svcOperationCfsParamId: 836
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 876
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 868
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 864
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 865
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 873
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: true
- svcOperationCfsParamId: 874
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: true
- svcOperationCfsParamId: 852
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 853
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 854
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: true
- svcOperationCfsParamId: 855
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: true
- svcOperationCfsParamId: 875
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
271:
- 826
274:
- 833
- 834
- 835
- 857
- 859
- 1083
278:
- 858
- 860
- 861
- 862
273: []
275:
- 836
- 876
280:
- 868
279:
- 864
- 865
- 873
- 874
277:
- 852
- 853
- 854
- 855
- 875
stateParams:
resourceRealm: llmAi.aillm.ru
+133
View File
@@ -0,0 +1,133 @@
name: vc_org
service_id: 19
service_display_name: Организация в Cloud Director
service_short_name: vcOrg
service_man: '# Инструкция по развертыванию Организация в Cloud Director через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Организация в Cloud Director** предназначен для управления изолированными
организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль
уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.<br/><br/>### Доступные операции<br/><br/>**create**
— Создание новой организации с заданными характеристиками и типом доступа.<br/>**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.<br/>**modify**
— Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).<br/>**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.<br/>**resume**
— Разморозка организации, восстановление функций управления.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание:
платформа, на которой будет создана организация.<br/>Пример значения: `ngcloud.ru`.<br/><br/>### Тип организации<br/>Описание: тип создаваемой организации.<br/>Варианты:<br/>- `iaas` — организация с прямым
доступом к облаку и авторизацией через Keycloak.<br/>- `saas` — организация под управлением Nubes, без прямого доступа к облаку.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.<br/><br/>### Промышленное окружение<br/>- Тип организации: `saas` (упрощённая
модель использования).<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Url организации<br/>Для
быстрого доступа в тенант<br/><br/>### Статус организации<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних IP внутри
организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный
к vdc выше.<br/>- Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов
IP, сетей, ВМок и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется
через Keycloak.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 136
operation: create
kind: instance
action: create
- svcOperationId: 283
operation: create_user
kind: subresource
action: create
- svcOperationId: 137
operation: delete
kind: instance
action: delete
- svcOperationId: 284
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 207
operation: modify
kind: instance
action: modify
- svcOperationId: 249
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 144
operation: resume
kind: instance
action: resume
- svcOperationId: 143
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 418
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: sandbox.nubes.ru
isModifiable: false
valueList:
- sandbox.nubes.ru
- svcOperationCfsParamId: 556
svcOperationCfsParam: organizationType
dataType: string
isRequired: true
defaultValue: iaas
isModifiable: false
valueList:
- iaas
- saas
- svcOperationCfsParamId: 871
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 872
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 662
svcOperationCfsParam: vIPConfigure
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
136:
- 418
- 556
283:
- 871
137: []
284:
- 872
207:
- 662
249: []
144: []
143: []
stateParams:
resourceRealm: sandbox.nubes.ru
organizationType: iaas
+314
View File
@@ -0,0 +1,314 @@
name: dummy
service_id: 1
service_display_name: Болванка
service_short_name: dummy
service_man: '## Болванка для тестов.<br/><br/>А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера. <br/><br/><br/>``` json<br/>{<br/> "iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",<br/> "idpResponse":
{<br/> "prefix": {<br/> "charset": "",<br/> "status_text": "Request Time-out",<br/> "text": true,<br/> "errordetail": "",<br/> "filecontent":
"Connection Timeout",<br/> "responseheader": {},<br/> "header": "",<br/> "statuscode": "408 Request Time-out",<br/> "status_code": 408,<br/> "mimetype":
"Unable to determine MIME type of file."<br/> }<br/> }<br/>}<br/>```'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 18
operation: create
kind: instance
action: create
- svcOperationId: 71
operation: delete
kind: instance
action: delete
- svcOperationId: 92
operation: modify
kind: instance
action: modify
- svcOperationId: 257
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 240
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 94
operation: resume
kind: instance
action: resume
- svcOperationId: 93
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 198
svcOperationCfsParam: durationMs
dataType: integer >= 0
isRequired: true
defaultValue: '0'
isModifiable: true
- svcOperationCfsParamId: 199
svcOperationCfsParam: failAtStart
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 200
svcOperationCfsParam: failInProgress
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 201
svcOperationCfsParam: whereFail
dataType: integer > 0
isRequired: false
defaultValue: '1'
isModifiable: true
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 242
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: dummy
isModifiable: false
valueList:
- dummy
- svcOperationCfsParamId: 286
svcOperationCfsParam: bodymessage
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 321
svcOperationCfsParam: mapExample
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
subparam2:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
subparam1:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
secret:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 322
svcOperationCfsParam: jsonExample
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 396
svcOperationCfsParam: nestedRefExample
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 647
svcOperationCfsParam: mapFixed
dataType: map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
param1:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
param3:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
bol1:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: abracadabra
isRequired: true
isModifiable: false
valueList:
- abracadabra
- svcOperationCfsParamId: 654
svcOperationCfsParam: arrayMapFixedExample
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
bol1:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- abracadabra
param1:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
param3:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 863
svcOperationCfsParam: arr
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- test
- '2'
- val1
- svcOperationCfsParamId: 287
svcOperationCfsParam: durationMs
dataType: integer >= 0
isRequired: true
defaultValue: '0'
isModifiable: true
- svcOperationCfsParamId: 288
svcOperationCfsParam: failAtStart
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 289
svcOperationCfsParam: failInProgress
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 290
svcOperationCfsParam: whereFail
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 291
svcOperationCfsParam: bodymessage
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 373
svcOperationCfsParam: mapExample
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
dataDescriptor:
secret:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 374
svcOperationCfsParam: jsonExample
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
18:
- 198
- 199
- 200
- 201
- 242
- 286
- 321
- 322
- 396
- 647
- 654
- 863
71: []
92:
- 287
- 288
- 289
- 290
- 291
- 373
- 374
257: []
240: []
94: []
93: []
stateParams:
durationMs: '0'
failAtStart: 'false'
failInProgress: 'false'
whereFail: '1'
resourceRealm: dummy
bodymessage: ''
mapExample: '{"subparam2": "", "subparam1": "", "secret": ""}'
jsonExample: ''
nestedRefExample: ''
mapFixed: '{"param1": 1, "param2": "1", "param3": 1, "bol1": false, "minStr1": "abracadabra"}'
arrayMapFixedExample: '{"bol1": false, "minStr1": "", "param1": 0, "param2": "", "param3": 1}'
arr: ''
+166
View File
@@ -0,0 +1,166 @@
name: vc_vdc
service_id: 21
service_display_name: Виртуальный датацентр (vDC)
service_short_name: vc_vdc
service_man: '# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware
Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию
и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.<br/><br/>### Доступные операции<br/><br/>**create** — Создание виртуального датацентра (vDC) с заданными параметрами
CPU, RAM, Storage и сетевой конфигурацией.<br/>**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**modify** — Внесение
изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.<br/>**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.<br/>**resume**
— Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже перечислены входные параметры операции **create**.<br/><br/>###
UUID Организации<br/>Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.<br/><br/>### Provider VDC в Cloud
Director<br/>Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.<br/><br/>### Network Pool в Cloud Director<br/>Определяет возможности сетевой конфигурации,
включая создание Edge Gateway и выход во внешние сети.<br/><br/>### Гарантированная доля ЯДЕР<br/>Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово
при создании.<br/><br/>### Гарантированная доля ОЗУ<br/>Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.<br/><br/>### Сколько аллоцировать на VDC
ЯДЕР<br/>Количество виртуальных ядер, выделяемых в рамках vDC.<br/><br/>### Сколько аллоцировать на VDC ОЗУ<br/>Количество оперативной памяти в GB, выделяемой для vDC.<br/><br/>### Конфигурация Storage<br/>Набор
дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/><br/>-
Количество ядер CPU: 1020<br/>- Аллоцируемая RAM: 1664 GB<br/>- Гарантированная доля CPU: 20%<br/>- Гарантированная доля RAM: 20%<br/>- Storage:<br/>- Политика `SATA`<br/>- Объём: 100300 GB<br/><br/>###
Промышленное окружение<br/><br/>- Количество ядер CPU: 16128<br/>- Аллоцируемая RAM: 64512 GB<br/>- Гарантированная доля CPU: 50%<br/>- Гарантированная доля RAM: 50%<br/>- Storage:<br/>- Политики уровня
`SSD`<br/>- Объём: 110 TB, выбор несколько политик под разные нагрузки<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Выходные параметры формируются операцией **create** (и используются другими
операциями):<br/><br/>### Имя vDC<br/>Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).<br/><br/>### Параметры выделенных ресурсов<br/>Подтверждение
итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Перед созданием vDC необходимо обеспечить
наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.<br/>- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения
невозможно; для изменения необходимо пересоздать vDC.<br/>- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги),
поэтому необходимо убедиться, что данные перенесены.<br/>- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool
является обязательной при создании vDC.<br/>- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 9
operation: create
kind: instance
action: create
- svcOperationId: 24
operation: delete
kind: instance
action: delete
- svcOperationId: 112
operation: modify
kind: instance
action: modify
- svcOperationId: 250
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 172
operation: resume
kind: instance
action: resume
- svcOperationId: 171
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 30
svcOperationCfsParam: organizationUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 335
svcOperationCfsParam: providerVdc
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 361
svcOperationCfsParam: storageConfig
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 397
svcOperationCfsParam: cpuGuaranteed
dataType: integer > 0
isRequired: true
defaultValue: '20'
isModifiable: false
valueList:
- '20'
- '50'
- '80'
- svcOperationCfsParamId: 557
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
isRequired: true
defaultValue: '80'
isModifiable: true
- svcOperationCfsParamId: 558
svcOperationCfsParam: memAllocated
dataType: integer > 0
isRequired: true
defaultValue: '200'
isModifiable: true
- svcOperationCfsParamId: 746
svcOperationCfsParam: networkProvider
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 560
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 561
svcOperationCfsParam: memAllocated
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 562
svcOperationCfsParam: storageConfig
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
9:
- 30
- 335
- 361
- 397
- 557
- 558
- 746
24: []
112:
- 560
- 561
- 562
250: []
172: []
171: []
stateParams:
organizationUid: ''
providerVdc: ''
storageConfig: '{"name": "", "size": 2000}'
cpuGuaranteed: '20'
cpuAllocated: '80'
memAllocated: '200'
networkProvider: ''
+139
View File
@@ -0,0 +1,139 @@
name: vc_nsxt
service_id: 22
service_display_name: Сетевой шлюз периметра (Edge)
service_short_name: vc_nsxt
service_man: '# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового
сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC). <br/>При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`. <br/>Сервис
обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.<br/><br/>### Доступные
операции<br/><br/>**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети. <br/>**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг
(vApp, VM, Кластер Штурвал). <br/>**modify** — Изменение параметров и сетевых настроек существующего Edge.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже приведены параметры операции
**create**.<br/><br/>### Тип родительской услуги<br/>Определяет контекст размещения Edge. <br/>Допустимые значения: `vdc`, `groupvdc`. <br/>Использование:<br/>- При выборе `vdc` обязателен параметр
**UUID VDC**.<br/>- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.<br/><br/>### UUID VDC<br/>Идентификатор виртуального датацентра. <br/>Необходимо предварительно создать vDC через услугу
«Виртуальный датацентр (vDC)». <br/>Указывается только при выборе родительского типа `vdc`.<br/><br/>### UUID Группы VDC<br/>Идентификатор группы виртуальных датацентров. <br/>Создаётся через услугу
«Группа виртуальных датацентров (groupvDC)». <br/>Используется при выборе родительского типа `groupvdc`.<br/><br/>### Включить ALB<br/>Флаг активации AVI Load Balancer в Cloud Director. <br/>Пример
значения: `true`/`false`. <br/>Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.<br/><br/>### Наименование segroup<br/>Имя сервиса групп (segroup) на уровне ресурсной
платформы. <br/>Обязательно при включённом ALB. <br/>Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.<br/><br/>### virtualServicesCount<br/>Количество резервируемых виртуальных
сервисов (Virtual Services) на AVI. <br/>Типичное значение: 1–10 в зависимости от нагрузки.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение (Test)<br/><br/>-
Тип родительской услуги: `vdc` <br/>- virtualServicesCount: 12 <br/>- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала) <br/>- segroup: задаётся только при включённом
ALB <br/>- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)<br/><br/>### Промышленное окружение (Production)<br/><br/>- Тип родительской услуги: `groupvdc` при работе с
распределёнными нагрузками или `vdc` для локализованных проектов <br/>- virtualServicesCount: 310, исходя из предполагаемого количества публикаций <br/>- ALB: включён, если требуется высокая доступность
сервисов или используется кластер Штурвал <br/>- segroup: рекомендуется использовать выделенную группу под проект <br/>- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания
невозможно без пересоздания vDC<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Имя Edge<br/>Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.<br/><br/>###
Имя routed-сети<br/>Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.<br/><br/>### Параметры Edge<br/>Набор параметров, указанных пользователем при
создании: тип услуги, ALB, segroup, virtualServicesCount и др. <br/>Используются в операциях modify и для анализа состояния сервиса.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- В
рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC. <br/>- Удаление Edge недоступно при наличии зависимых ресурсов
(vApp, VM, кластер Штурвал). <br/>- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI. <br/>- При выборе режима `groupvdc` следует учитывать
распределение нагрузки между несколькими vDC. <br/>- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).<br/><br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 10
operation: create
kind: instance
action: create
- svcOperationId: 25
operation: delete
kind: instance
action: delete
- svcOperationId: 111
operation: modify
kind: instance
action: modify
- svcOperationId: 252
operation: reconcile
kind: action
action: reconcile
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 8
svcOperationCfsParam: vdcUid
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 340
svcOperationCfsParam: needEnableAVI
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 341
svcOperationCfsParam: virtualServicesCount
dataType: integer > 0
isRequired: false
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 621
svcOperationCfsParam: vdcType
dataType: string
isRequired: true
defaultValue: vdc
isModifiable: false
valueList:
- vdc
- vdcGroup
- svcOperationCfsParamId: 622
svcOperationCfsParam: vdcGroupUid
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 825
svcOperationCfsParam: qosProfile
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 368
svcOperationCfsParam: needEnableAVI
dataType: boolean
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 369
svcOperationCfsParam: virtualServicesCount
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 372
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 856
svcOperationCfsParam: qosProfile
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
10:
- 8
- 340
- 341
- 621
- 622
- 825
25: []
111:
- 368
- 369
- 372
- 856
252: []
stateParams:
vdcUid: ''
needEnableAVI: 'false'
virtualServicesCount: '1'
vdcType: vdc
vdcGroupUid: ''
qosProfile: ''
+186
View File
@@ -0,0 +1,186 @@
name: vcexternalip
service_id: 25
service_display_name: Публичные IP адреса
service_short_name: vcexternalip
service_man: '**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**<br/>Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать<br/><br/>Резервировать
публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.<br/>Вы можете назначить IP адрес для существующего экземпляра
сервиса.'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 56
operation: create
kind: instance
action: create
- svcOperationId: 57
operation: delete
kind: instance
action: delete
- svcOperationId: 197
operation: modify
kind: instance
action: modify
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 140
svcOperationCfsParam: serviceUid
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 141
svcOperationCfsParam: dnatCreate
dataType: boolean
isRequired: true
defaultValue: 'true'
isModifiable: true
- svcOperationCfsParamId: 142
svcOperationCfsParam: internalPortAccess
dataType: string
isRequired: true
defaultValue: '5432'
isModifiable: true
- svcOperationCfsParamId: 143
svcOperationCfsParam: snatCreate
dataType: boolean
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 144
svcOperationCfsParam: internalAddrAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 324
svcOperationCfsParam: fromServiceNamespace
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 325
svcOperationCfsParam: fromServiceCloudEdgeName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 326
svcOperationCfsParam: fromServiceCloudVdcName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 327
svcOperationCfsParam: fromServiceCloudOrgName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 328
svcOperationCfsParam: fromServiceCloudVmwareUrl
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 336
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 488
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: sandbox.nubes.ru
isModifiable: false
valueList:
- sandbox.nubes.ru
- svcOperationCfsParamId: 624
svcOperationCfsParam: fromServiceCloudEdgeScope
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 626
svcOperationCfsParam: fromServiceVdcGroupName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 627
svcOperationCfsParam: serviceUid
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 628
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 629
svcOperationCfsParam: dnatCreate
dataType: boolean
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 630
svcOperationCfsParam: snatCreate
dataType: boolean
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 631
svcOperationCfsParam: internalPortAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 632
svcOperationCfsParam: internalAddrAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
56:
- 140
- 141
- 142
- 143
- 144
- 324
- 325
- 326
- 327
- 328
- 336
- 488
- 624
- 626
57: []
197:
- 627
- 628
- 629
- 630
- 631
- 632
stateParams:
serviceUid: ''
dnatCreate: 'true'
internalPortAccess: '5432'
snatCreate: ''
internalAddrAccess: ''
fromServiceNamespace: ''
fromServiceCloudEdgeName: ''
fromServiceCloudVdcName: ''
fromServiceCloudOrgName: ''
fromServiceCloudVmwareUrl: ''
ipSpaceName: ''
resourceRealm: sandbox.nubes.ru
fromServiceCloudEdgeScope: ''
fromServiceVdcGroupName: ''
+75
View File
@@ -0,0 +1,75 @@
name: vapp
service_id: 26
service_display_name: Виртуальный каталог ВМ (vApp)
service_short_name: vapp
service_man: '# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая
в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:<br/>- централизованное
управление включением, выключением и приостановкой группы ВМ;<br/>- унифицированный сетевой доступ через привязанный Edge-шлюз;<br/><br/>### Доступные операции<br/><br/>**create** — Создание нового vApp
с привязкой к заданным услугам VDC и Edge<br/>**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**suspend**
— Остановка vApp (выключение всех ВМ внутри каталога)<br/>**resume** — Запуск vApp (включение всех ВМ внутри каталога)<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры берутся из
операции **create**.<br/><br/>### UUID Услуги VDC<br/>Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».<br/>Используется для определения вычислительной инфраструктуры, в которой будет развернут
vApp.<br/><br/>### UUID Услуги Edge<br/>Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».<br/>Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому
выбирается отдельно.<br/><br/>### Имя vApp<br/>Строгое имя, соответствующее маске формирования DNS-имени.<br/>Используется как часть в DNS-имени при создании виртуальных машин.<br/><br/>---<br/><br/>##
3. Рекомендованные характеристики<br/>Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>###
Параметры vApp<br/>Заданные при создании vApp<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько
VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.<br/>- Перед удалением vApp необходимо вручную
перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.<br/>- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.<br/>-
Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.<br/>- При проектировании инфраструктуры следует учитывать зависимости
между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 69
operation: create
kind: instance
action: create
- svcOperationId: 70
operation: delete
kind: instance
action: delete
- svcOperationId: 285
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 209
operation: resume
kind: instance
action: resume
- svcOperationId: 208
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 190
svcOperationCfsParam: nsxtUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 191
svcOperationCfsParam: vappName
dataType: string
isRequired: true
defaultValue: fgpdul5a
isModifiable: false
- svcOperationCfsParamId: 623
svcOperationCfsParam: vdcUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
cfsParamsByOp:
69:
- 190
- 191
- 623
70: []
285: []
209: []
208: []
stateParams:
nsxtUid: ''
vappName: fgpdul5a
vdcUid: ''
+52
View File
@@ -0,0 +1,52 @@
name: vc_vm_v2
service_id: 27
service_display_name: VM в Cloud Director (vc_vmV2)
service_short_name: vc_vm_v2
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 100
operation: create
kind: instance
action: create
- svcOperationId: 101
operation: delete
kind: instance
action: delete
- svcOperationId: 104
operation: modify
kind: instance
action: modify
- svcOperationId: 102
operation: resume
kind: instance
action: resume
- svcOperationId: 103
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 301
svcOperationCfsParam: serverListJson
dataType: json
isRequired: true
defaultValue: '[{}]'
isModifiable: true
- svcOperationCfsParamId: 302
svcOperationCfsParam: serverListJson
dataType: json
isRequired: true
defaultValue: '[{}]'
isModifiable: true
cfsParamsByOp:
100:
- 301
101: []
104:
- 302
102: []
103: []
stateParams:
serverListJson: '[{}]'
+298
View File
@@ -0,0 +1,298 @@
name: vc_vm_v3
service_id: 28
service_display_name: Виртуальная машина
service_short_name: vc_vm_v3
service_man: '# Документация по разворачиванию ВМ в Личном кабинете<br/><br/>Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).<br/><br/>## Доступные
операции<br/>- **create** — Создание виртуальной машины<br/>- **delete** — Удаление виртуальной машины<br/>- **resume** — Запуск виртуальной машины<br/>- **suspend** — Остановка виртуальной машины<br/><br/>---<br/><br/>##
Параметры для развёртывания ВМ<br/><br/>### Обязательные параметры:<br/><br/>**vappUid**<br/>UUID vApp, в которой будет создаваться виртуальная машина.<br/>*Пример: WZ00400*<br/><br/>**vmName**<br/>Уникальное
имя виртуальной машины.<br/>*Пример: test-vm*<br/><br/>**vmCpu**<br/>Количество ядер процессора. Должно быть больше 0.<br/>*Пример: 1*<br/><br/>**vmRam**<br/>Объем оперативной памяти в гигабайтах. Должно
быть больше 0.<br/>*Пример: 1*<br/><br/><br/>**accessPortList**<br/>Белый список портов для доступа к виртуальной машине извне в формате JSON.<br/>*Пример: ["22","10050]*<br/><br/>**imageVm**<br/>Образ
операционной системы для развёртывания.<br/>*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*<br/><br/>**userLogin**<br/>Логин пользователя для SSH-доступа.<br/>*По умолчанию:
myuser*<br/><br/>**userPublicKey**<br/>Публичный SSH-ключ пользователя в формате OpenSSH.<br/>*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*<br/><br/>**needAddZabbixTemplate**<br/>Значение истина\ложь,
определяющее будет ли добавлен хост в zabbix.<br/>*Пример: true*<br/><br/>### Опциональные параметры:<br/><br/>**accessIpList**<br/>Белый список IP-адресов для доступа к виртуальной машине в формате JSON.
Если оставить пустым, вм будет доступена со всех адресов.<br/>*Пример: ["192.168.1.1", "10.0.0.5"]*<br/><br/>**vmDisk**<br/>Размер дополнительного диска в гигабайтах. Должно быть больше 0.<br/>*Пример:
50*<br/><br/>**ipSpaceName**<br/>Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix). <br/><br/>**cloudInit**<br/>YAML-скрипт для кастомизации
системы через cloud-init.<br/><br/>---<br/><br/>## Доступные образы операционных систем<br/><br/>### RockyLinux_9-16G-cloudinit<br/>Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для
серверных задач.<br/>- Размер системного диска: 16 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Ubuntu_22-20G<br/>Образ на основе Ubuntu Server 22.04 LTS для
облачного окружения.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Debian_13-20G<br/>Образ на основе Debian 13 (Trixie) для
стабильной серверной работы.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>---<br/><br/>## Пример использования Cloud-init<br/><br/>```yaml<br/>users:<br/> -
name: myuser<br/> sudo: ALL=(ALL) NOPASSWD:ALL<br/> groups: sudo<br/> shell: /bin/bash<br/> ssh-authorized-keys:<br/> - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...<br/><br/>packages:<br/> -
nginx<br/><br/>runcmd:<br/> - systemctl enable --now nginx<br/> - systemctl restart nginx<br/>```<br/><br/>---<br/><br/>## Результат выполнения<br/><br/>После успешного развёртывания в Личном кабинете
появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.<br/><br/>---<br/><br/>## Важные примечания<br/><br/>###
Особенности работы:<br/>- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName<br/>- Параметр cloudInit является опциональным<br/><br/>### Ограничения:<br/>- Не рекомендуется
использовать продолжительные инструкции в cloud-init (таймаут 5 минут)<br/>- Не поддерживается запись файлов через cloud-init<br/>- Не реализовано создание резервных копий ВМ<br/><br/>---<br/><br/>##
Диагностика проблем с cloud-init<br/><br/>### Основной лог-файл:<br/>```bash<br/>/var/log/cloud-init.log<br/>```<br/><br/>### Пакет не устанавливается:<br/>- Проверьте доступность пакета в репозитории<br/>-
Убедитесь в правильности написания имени пакета<br/>- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)<br/><br/>### Команда не выполняется:<br/>-
Проверьте наличие требуемой утилиты в системе<br/>- Убедитесь в правильности синтаксиса команды<br/>- Попробуйте выполнить команду вручную для диагностики'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 132
operation: create
kind: instance
action: create
- svcOperationId: 133
operation: delete
kind: instance
action: delete
- svcOperationId: 159
operation: modify
kind: instance
action: modify
- svcOperationId: 286
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 164
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 135
operation: resume
kind: instance
action: resume
- svcOperationId: 134
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 407
svcOperationCfsParam: vappUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 408
svcOperationCfsParam: vmName
dataType: string
isRequired: true
defaultValue: web01
isModifiable: false
- svcOperationCfsParamId: 409
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 410
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 411
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 412
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 413
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 414
svcOperationCfsParam: imageVm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 415
svcOperationCfsParam: cloudInit
dataType: yaml
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 416
svcOperationCfsParam: userLogin
dataType: string
isRequired: true
defaultValue: myuser
isModifiable: false
- svcOperationCfsParamId: 417
svcOperationCfsParam: userPublicKey
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 448
svcOperationCfsParam: accessPortList
dataType: string
isRequired: true
defaultValue: '["22"]'
isModifiable: true
- svcOperationCfsParamId: 493
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 494
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 495
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 496
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- no-needed
- internet-antiddos-v1
- internet-no-antiddos-v1
- internet-ipv4-v1
- svcOperationCfsParamId: 497
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 498
svcOperationCfsParam: accessPortList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 509
svcOperationCfsParam: vmName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 510
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 511
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 512
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 513
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- no-needed
- internet-antiddos-v1
- internet-no-antiddos-v1
- internet-ipv4-v1
- svcOperationCfsParamId: 514
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 515
svcOperationCfsParam: imageVm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- RockyLinux_9-16G-cloudinit
- Ubuntu_22-20G
- Debian_13-20G
- svcOperationCfsParamId: 516
svcOperationCfsParam: userLogin
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 517
svcOperationCfsParam: userPublicKey
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 518
svcOperationCfsParam: cloudInit
dataType: yaml
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 520
svcOperationCfsParam: accessPortList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
132:
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 448
133: []
159:
- 493
- 494
- 495
- 496
- 497
- 498
286: []
164:
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 520
135: []
134: []
stateParams:
vappUid: ''
vmName: web01
vmCpu: '1'
vmRam: '1'
vmDisk: ''
ipSpaceName: ''
accessIpList: ''
imageVm: ''
cloudInit: ''
userLogin: myuser
userPublicKey: ''
accessPortList: '["22"]'
+71
View File
@@ -0,0 +1,71 @@
name: vc_vdc_group
service_id: 29
service_display_name: Группа датацентров
service_short_name: vcVdcGroup
service_man: '# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Группа виртуальных датацентров (groupvDC)** предназначен
для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой
осуществляется через Cloud Director.<br/>Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.<br/><br/>### Доступные операции<br/><br/>**create**
— Создание новой группы виртуальных датацентров.<br/>**delete** — Удаление существующей группы vDC.<br/>**add_vdc** — Добавление дополнительного виртуального датацентра в группу.<br/>**remove_vdc** —
Удаление ранее добавленного виртуального датацентра из группы.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры операции **create**:<br/><br/>### UUID VDC<br/>Идентификатор виртуального
датацентра, который будет являться первичным в группе.<br/>Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.<br/><br/>---<br/><br/>## 3.
Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director<br/><br/>###
Промышленное окружение<br/>- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)<br/><br/>---<br/><br/>## 4. Выходные
параметры<br/><br/>### Параметры groupvdc<br/>Набор параметров, указанных пользователем при создании<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>- Группа vDC используется для растягивания
SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.<br/>- Удалить первичный vDC (тот, что был указан при операции **create**)
невозможно. Для его удаления необходимо удалить всю группу и создать новую.<br/>- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.<br/>-
Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 192
operation: add_vdc
kind: subresource
action: add
- svcOperationId: 191
operation: create
kind: instance
action: create
- svcOperationId: 195
operation: delete
kind: instance
action: delete
- svcOperationId: 251
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 193
operation: remove_vdc
kind: subresource
action: remove
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 619
svcOperationCfsParam: vdcUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 618
svcOperationCfsParam: vdcUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 620
svcOperationCfsParam: vdcName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
192:
- 619
191:
- 618
195: []
251: []
193:
- 620
stateParams:
vdcUid: ''
+199
View File
@@ -0,0 +1,199 @@
name: template
service_id: 2
service_display_name: Темплейт k8s
service_short_name: template
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 74
operation: create
kind: instance
action: create
- svcOperationId: 75
operation: delete
kind: instance
action: delete
- svcOperationId: 76
operation: modify
kind: instance
action: modify
- svcOperationId: 298
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 98
operation: resume
kind: instance
action: resume
- svcOperationId: 97
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 813
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
memory:
dataType: integer > 0
defaultValue: '128'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 814
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 815
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
type:
dataType: string
defaultValue: ingress
isRequired: true
isModifiable: false
valueList:
- ingress
- service
domain:
dataType: string
defaultValue: abracadabra-l9gtqv1m
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 816
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
disk:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 817
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
type:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- ingress
- service
domain:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
74:
- 813
- 814
- 815
75: []
76:
- 816
- 817
298: []
98: []
97: []
stateParams:
clusterConfiguration: '{"memory": 128, "replicas": 1, "cpu": 100, "disk": 5}'
startupConfiguration: '{"resourceRealm": ""}'
accessConfiguration: '{"type": "ingress", "domain": "abracadabra-l9gtqv1m", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
+424
View File
@@ -0,0 +1,424 @@
name: nextcloud
service_id: 50
service_display_name: Nextcloud
service_short_name: nextcloud
service_man: 'Ресурсная платформа: k8s. Автоматизация: helm chart'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 16
operation: create
kind: instance
action: create
- svcOperationId: 404
operation: create_backup
kind: subresource
action: create
- svcOperationId: 17
operation: delete
kind: instance
action: delete
- svcOperationId: 67
operation: modify
kind: instance
action: modify
- svcOperationId: 390
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 406
operation: recovery
kind: action
action: recovery
- svcOperationId: 66
operation: restart
kind: action
action: restart
- svcOperationId: 129
operation: resume
kind: instance
action: resume
- svcOperationId: 128
operation: suspend
kind: instance
action: suspend
stateOut:
backups: {}
cfsParams:
- svcOperationCfsParamId: 1055
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
redisEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
psqlUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
redisUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
psqlEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
- svcOperationCfsParamId: 1056
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
valueList:
- '1000'
- '2000'
- '3000'
- '4000'
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
valueList:
- '1024'
- '2048'
- '3072'
- '4096'
- '5120'
- '6144'
- '7168'
- '8192'
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1057
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-vbxjicr2
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1058
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: 33.0.4
isRequired: true
isModifiable: false
valueList:
- 33.0.4
documentServer:
dataType: string
defaultValue: collabora
isRequired: true
isModifiable: false
valueList:
- collabora
logLevel:
dataType: string
defaultValue: INFO
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
- svcOperationCfsParamId: 1077
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1059
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1000'
- '2000'
- '3000'
- '4000'
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1024'
- '2048'
- '3072'
- '4096'
- '5120'
- '6144'
- '7168'
- '8192'
- svcOperationCfsParamId: 1060
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 33.0.4
documentServer:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- collabora
logLevel:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
- svcOperationCfsParamId: 1078
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
psqlEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
redisEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
psqlUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
redisUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1079
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: 1,2
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1000'
- '2000'
- '3000'
- '4000'
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1024'
- '2048'
- '3072'
- '4096'
- '5120'
- '6144'
- '7168'
- '8192'
- svcOperationCfsParamId: 1080
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-bcdguda1
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1081
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
logLevel:
dataType: string
defaultValue: NONE
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
version:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
documentServer:
dataType: string
defaultValue: collabora
isRequired: true
isModifiable: false
valueList:
- collabora
cfsParamsByOp:
16:
- 1055
- 1056
- 1057
- 1058
404:
- 1077
17: []
67:
- 1059
- 1060
390: []
406:
- 1078
- 1079
- 1080
- 1081
66: []
129: []
128: []
stateParams:
startupConfiguration: '{"redisEnabled": true, "psqlUid": "", "redisUid": "", "resourceRealm": "", "psqlEnabled": true}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 10}'
accessConfiguration: '{"domain": "nextcloud-vbxjicr2"}'
appConfiguration: '{"version": "33.0.4", "documentServer": "collabora", "logLevel": "INFO"}'
+82
View File
@@ -0,0 +1,82 @@
name: superset
service_id: 81
service_display_name: Apache Superset
service_short_name: superset
service_man: 'Apache Superset как сервис. <br/>Ресурсная платформа: k8s. <br/>Автоматизация: k8s operator.<br/>Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 12
operation: create
kind: instance
action: create
- svcOperationId: 13
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 14
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: superset-1
isModifiable: false
- svcOperationCfsParamId: 20
svcOperationCfsParam: emails
dataType: string
isRequired: true
defaultValue: testuser1
isModifiable: false
- svcOperationCfsParamId: 96
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: false
- svcOperationCfsParamId: 97
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 98
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 109
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 227
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
cfsParamsByOp:
12:
- 14
- 20
- 96
- 97
- 98
- 109
- 227
13: []
stateParams:
domain: superset-1
emails: testuser1
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceRealm: ''
resourceInstances: '1'
+108
View File
@@ -0,0 +1,108 @@
name: harbor
service_id: 82
service_display_name: Container Registry
service_short_name: harbor
service_man: 'Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.<br/>Container Registry позволяет хранить, развертывать и управлять Docker-образами
контейнеров в инфраструктуре NGcloud.<br/>Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках
процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.<br/>Чтобы начать работу, создайте реестр и загрузите в него Docker-образ<br/>Авторизация:
keycloak'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 14
operation: create
kind: instance
action: create
- svcOperationId: 15
operation: delete
kind: instance
action: delete
- svcOperationId: 270
operation: modify
kind: instance
action: modify
- svcOperationId: 405
operation: reconcile
kind: action
action: reconcile
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 16
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: harbor-1
isModifiable: false
- svcOperationCfsParamId: 110
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 228
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '1000'
isModifiable: true
- svcOperationCfsParamId: 229
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '1024'
isModifiable: true
- svcOperationCfsParamId: 230
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 231
svcOperationCfsParam: s3Uid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 822
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 823
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 824
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
14:
- 16
- 110
- 228
- 229
- 230
- 231
15: []
270:
- 822
- 823
- 824
405: []
stateParams:
domain: harbor-1
resourceRealm: ''
resourceCPU: '1000'
resourceMemory: '1024'
resourceInstances: '1'
s3Uid: ''
+175
View File
@@ -0,0 +1,175 @@
name: k8s_velero
service_id: 86
service_display_name: Velero
service_short_name: k8sVelero
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 332
operation: create
kind: instance
action: create
- svcOperationId: 331
operation: delete
kind: instance
action: delete
- svcOperationId: 334
operation: modify
kind: instance
action: modify
- svcOperationId: 336
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 335
operation: resume
kind: instance
action: resume
- svcOperationId: 333
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 962
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 963
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 964
svcOperationCfsParam: nodeAgentConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1076
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
s3BucketUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1082
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 965
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 966
svcOperationCfsParam: nodeAgentConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
332:
- 962
- 963
- 964
- 1076
331:
- 1082
334:
- 965
- 966
336: []
335: []
333: []
stateParams:
clusterConfiguration: '{"cpu": 1000, "memory": 2048, "replicas": 1}'
startupConfiguration: '{"resourceRealm": ""}'
nodeAgentConfiguration: '{"cpu": 2000, "memory": 2048}'
backupConfiguration: '{"s3BucketUid": ""}'
+234
View File
@@ -0,0 +1,234 @@
name: flask
service_id: 89
service_display_name: Web-сервер с фреймворком Flask
service_short_name: flask
service_man: '# Инструкция по развертыванию Web-сервер с фреймворком Flask через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Web-сервер с фреймворком Flask** предназначен для развертывания
веб-приложений на базе Flask.<br/><br/>### Доступные операции<br/><br/>create — включить сервис, развернуть веб-приложение с указанными параметрами.<br/>delete — удалить сервис, только после suspend.<br/>modify
— изменить настройки сервиса и переразвернуть.<br/>suspend — выключить веб-приложение, остановить обслуживание.<br/>resume — включить веб-приложение после suspend.<br/><br/>---<br/><br/>## 2. Параметры
развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Имя домена<br/>Описание: доменное имя для доступа к веб-приложению. Если указан FQDN, происходит проверка DNS на валидность
А-записи. А-запись должна указывать на балансировщик ресурсной платформы. Если указано имя в рамках одного октета, оно будет добавлено в публичную DNS-зону.<br/>Пример значения: строка, допустимые FQDN
или имя в одном октете. Пример: example.com или myapp.<br/><br/>### Платформа для развертывания<br/>Описание: кластер Kubernetes, в котором будет развернуто приложение.<br/>Пример значения: идентификатор
кластера Kubernetes.<br/><br/>### Квота ядра пода<br/>Описание: количество CPU, выделяемое на под, в Milicores.<br/>Пример значения: целое число, например 500 для 0.5 ядра.<br/><br/>### Квота памяти пода<br/>Описание:
количество памяти, выделяемое на под, в Megabytes.<br/>Пример значения: целое число, например 512 для 512 MB.<br/><br/>### Кол-во реплик пода<br/>Описание: количество инстансов пода для масштабирования.<br/>Пример
значения: целое число, шт, например 2.<br/><br/>### URL Проекта (gitpath)<br/>Описание: полный HTTPS путь до проекта в Git-репозитории.<br/>Пример значения: URL в формате https://github.com/myuser/myproject.git.
Доступ к репозиторию должен быть публичным.<br/><br/>### URL HealthCheck<br/>Описание: путь для проверки здоровья приложения внутри пода.<br/>Пример значения: строка, путь, например /api/v1/health.<br/><br/>###
Переменные окружения пода<br/>Описание: структура данных, которая будет передана как переменные окружения в под.<br/>Пример значения: ключ-значение, например {"ENV": "production"}.<br/><br/>---<br/><br/>##
3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Квота ядра пода: 300m (0.3 ядра)<br/>- Квота памяти пода: 256 MB<br/>- Кол-во реплик пода: 1<br/><br/>### Промышленное окружение<br/>-
Квота ядра пода: от 1000m (1 ядро) в зависимости от нагрузки<br/>- Квота памяти пода: от 1024 MB (1 GB) с учетом потребностей приложения<br/>- Кол-во реплик пода: от 2 для обеспечения отказоустойчивости<br/><br/>---<br/><br/>##
4. Выходные параметры<br/>Операция create не возвращает явных выходных параметров. Успешное выполнение операции приводит к развертыванию сервиса, доступного по указанному домену.<br/><br/>---<br/><br/>##
5. Дополнительная информация<br/>- В корне проекта должен находиться файл requirements.txt со списком зависимостей Python.<br/>- Исходный код веб-приложения должен располагаться в директории site.<br/>-
Запуск веб-сервера осуществляется командой python app.py.<br/>- Используется версия Python: python:3.12-slim.<br/>- Git-репозиторий должен быть публично доступен для платформы.<br/>- Операция delete возможна
только после suspend.<br/>- Операция modify приводит к переразвертыванию с новыми параметрами.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 376
operation: create
kind: instance
action: create
- svcOperationId: 379
operation: delete
kind: instance
action: delete
- svcOperationId: 375
operation: modify
kind: instance
action: modify
- svcOperationId: 381
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 380
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 378
operation: resume
kind: instance
action: resume
- svcOperationId: 377
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1037
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1038
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '200'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '256'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1039
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
domain:
dataType: string
defaultValue: flask-4brtjmwm
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1040
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: '3.12'
isRequired: true
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: https://github.com/Foxyhhd/Baldurs-Gate-test.git
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1041
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
- svcOperationCfsParamId: 1042
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1043
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1044
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1045
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
376:
- 1037
- 1038
- 1039
- 1040
- 1041
379: []
375:
- 1042
- 1043
- 1044
381: []
380:
- 1045
378: []
377: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "flask-4brtjmwm"}'
appConfiguration: '{"healthPath": "", "version": "3.12", "gitPath": "https://github.com/Foxyhhd/Baldurs-Gate-test.git"}'
jsonEnv: '{}'
+855
View File
@@ -0,0 +1,855 @@
name: postgres
service_id: 90
service_display_name: PostgreSQL
service_short_name: postgres
service_man: '# Инструкция по развертыванию PostgreSQL через платформу<br/><br/>---<br/>## 1. Общая информация<br/><br/>PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая
расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.<br/><br/>## Доступные
операции<br/><br/>- **create** — Создание кластера<br/>- **delete** — Удаление кластера<br/>- **modify** — Модификация кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** —
Запуск кластера<br/>- **restart** — Перезапуск кластера<br/>- **recovery** — Восстановление из резервной копии<br/><br/>- **create_user** — Создание пользователя<br/>- **delete_user** — Удаление
пользователя<br/><br/>- **create_database** — Создание базы данных<br/>- **delete_database** — Удаление базы данных<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/><br/>Ниже перечислены
параметры, которые необходимо указать при создании ресурса PostgreSQL:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример:
`k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество инстансов (реплик) в кластере PostgreSQL. Пример: `2` (master + slave).<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота
памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска для базы
данных:**<br/> Размер диска для хранения данных в гигабайтах. Пример: `20`<br/><br/>* **Выделяет внешний IP для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для доступа
к master. Пример: `true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/>*
**Выделяет внешний IP для доступа к slave:**<br/> Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.<br/><br/>* **Имя ipSpace для публикации внешнего
IP slave:**<br/> Если включен параметр для slave, то поле необходимо заполнить.<br/><br/>* **UUID экземпляра услуги S3:**<br/> UUID экземпляра S3 для хранения резервных копий.<br/><br/>* **Версия PostgreSQL:**<br/> Версия
PostgreSQL для развертывания. Пример: `16`<br/><br/>* **Расписание бэкапов (ext_BACKUP_SCHEDULE):**<br/> Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию: `0 0 * * *` (ежедневно
в полночь).<br/><br/>* **Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN):**<br/> Необязательный. Количество сохраняемых бэкапов. По умолчанию: `7`<br/><br/>* **PgPooler (master / slave):**<br/> Флаги
включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.<br/><br/>* **Разрешить подключение без SSL (allowNoSSL):**<br/> По умолчанию подключение с sslmode=require.
При `true` разрешается подключение без SSL.<br/><br/>* **Автоскейлинг PV (autoScale):**<br/> Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.<br/><br/>*
**Дополнительные параметры PostgreSQL (jsonParameters):**<br/> JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html<br/><br/>---<br/>##
3. Выходные параметры<br/><br/>После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.<br/><br/>#### externalConnect<br/><br/>Внешние эндпоинты для подключения к кластеру:<br/>-
**master** — для операций записи (host: `write.${namespace}`, port: 5432)<br/>- **slave** — для операций чтения (host: `read.${namespace}`, port: 5432)<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave":
{<br/> "ip": "",<br/> "fqdn": "",<br/> "uuid": "",<br/> "isExternal": false<br/> },<br/> "master": {<br/> "ip": "<ip>",<br/> "fqdn": "write.<namespace>.<cluster-domain>",<br/> "uuid":
"<uuid>",<br/> "isExternal": false<br/> }<br/>}<br/>```<br/><br/>Поля: `ip` — внешний IP; `fqdn` — полное имя хоста; `uuid` — идентификатор; `isExternal` — признак внешнего доступа.<br/><br/>####
internalConnect<br/><br/>Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave": "",<br/> "master":
{<br/> "slave": "",<br/> "master": {<br/> "slave": "",<br/> "master": "postgresqlk8s-master.<namespace>.svc.cluster.local"<br/> }<br/> }<br/>}<br/>```<br/><br/>Для подключения используйте
значение `master.master.master` (host для записи) или соответствующее значение slave (host для чтения).<br/><br/>Для подключения используется порт **5432**.<br/><br/>---<br/>## 4. Управление пользователями<br/><br/>###
create_user — Создание пользователя<br/><br/>* **Имя пользователя (username):**<br/> Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.<br/> Пример: `myapp_user`<br/><br/>*
**Роль (role):**<br/> Тип роли пользователя. Допустимые значения:<br/> - `app_user` — базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)<br/> - `ddl_user` — расширенные права: createdb,
createrole (управление базами и ролями)<br/><br/>Защищённые имена, которые нельзя использовать: `admin`, `postgres`, `standby`.<br/><br/>### delete_user — Удаление пользователя<br/><br/>* **Имя пользователя
(username):**<br/> Имя удаляемого пользователя. Пример: `myapp_user`<br/><br/>Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных
другому пользователю.<br/><br/>---<br/>## 5. Управление базами данных<br/><br/>### create_database — Создание базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название создаваемой базы данных.
Пример: `myapp_db`<br/><br/>* **Владелец базы данных (dbOwner):**<br/> Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример: `myapp_user`<br/><br/>### delete_database
— Удаление базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название удаляемой базы данных. Пример: `myapp_db`<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 19
operation: create
kind: instance
action: create
- svcOperationId: 264
operation: create_backup
kind: subresource
action: create
- svcOperationId: 245
operation: create_database
kind: subresource
action: create
- svcOperationId: 241
operation: create_user
kind: subresource
action: create
- svcOperationId: 20
operation: delete
kind: instance
action: delete
- svcOperationId: 246
operation: delete_database
kind: subresource
action: delete
- svcOperationId: 244
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 48
operation: modify
kind: instance
action: modify
- svcOperationId: 263
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 47
operation: recovery
kind: action
action: recovery
- svcOperationId: 54
operation: restart
kind: action
action: restart
- svcOperationId: 114
operation: resume
kind: instance
action: resume
- svcOperationId: 115
operation: suspend
kind: instance
action: suspend
stateOut:
backups: {}
databases: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 788
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 789
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 790
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 791
svcOperationCfsParam: postgresConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '17'
isRequired: true
isModifiable: false
valueList:
- '17'
- '16'
sslRequired:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerMaster:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerSlave:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 792
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- log_connections
- log_disconnections
paramValue:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 793
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '7'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 794
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 1094
svcOperationCfsParam: mtlsConfiguration
dataType: map-fixed
isRequired: true
defaultValue: '{}'
isModifiable: true
dataDescriptor:
type:
dataType: string
defaultValue: 'off'
isRequired: true
isModifiable: false
valueList:
- 'off'
- manual
- auto
durationCA:
dataType: integer > 0
defaultValue: '175200'
isRequired: true
isModifiable: false
durationServer:
dataType: integer > 0
defaultValue: '87600'
isRequired: true
isModifiable: false
certCA:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
certServer:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 741
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 742
svcOperationCfsParam: dbOwner
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 733
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 740
svcOperationCfsParam: role
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- app_user
- ddl_user
- svcOperationCfsParamId: 1096
svcOperationCfsParam: mtlsAccess
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 457
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
isRequired: true
defaultValue: 'true'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 743
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 739
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 795
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 796
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 797
svcOperationCfsParam: postgresConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '17'
- '16'
sslRequired:
dataType: boolean
defaultValue: false,true
isRequired: true
isModifiable: false
poolerMaster:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerSlave:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 798
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- log_connections
- log_disconnections
paramValue:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 799
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 800
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 1095
svcOperationCfsParam: mtlsConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
certCA:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
certServer:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
refreshCert:
dataType: boolean
defaultValue: 'false'
isRequired: false
isModifiable: false
valueList:
- 'false'
- 'true'
type:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'off'
- manual
- auto
durationCA:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
durationServer:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 801
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 802
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 803
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 804
svcOperationCfsParam: postgresConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '17'
isRequired: true
isModifiable: false
valueList:
- '17'
- '16'
sslRequired:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerMaster:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerSlave:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 805
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- log_connections
- log_disconnections
paramValue:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 806
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '7'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 807
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
cfsParamsByOp:
19:
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 1094
264: []
245:
- 741
- 742
241:
- 733
- 740
- 1096
20:
- 457
246:
- 743
244:
- 739
48:
- 795
- 796
- 797
- 798
- 799
- 800
- 1095
263: []
47:
- 801
- 802
- 803
- 804
- 805
- 806
- 807
54: []
114: []
115: []
stateParams:
clusterConfiguration: '{"replicas": 1, "disk": 10, "cpu": 500, "memory": 512}'
startupConfiguration: '{"resourceRealm": ""}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
postgresConfiguration: '{"version": "17", "sslRequired": true, "poolerMaster": false, "poolerSlave": false}'
postgresConf: '{"paramName": "", "paramValue": ""}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"enabled": false, "schedule": 0, "quota": 100, "percent": 10}'
mtlsConfiguration: '{"type": "off", "durationCA": 175200, "durationServer": 87600, "certCA": "", "certServer": ""}'
+184
View File
@@ -0,0 +1,184 @@
name: redis
service_id: 91
service_display_name: Redis
service_short_name: redis
service_man: 'Redis кластер. Под кеши. <br/>Ресурсная платформа: k8s. <br/>Автоматизация: k8s operator<br/>port 6379'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 21
operation: create
kind: instance
action: create
- svcOperationId: 22
operation: delete
kind: instance
action: delete
- svcOperationId: 394
operation: modify
kind: instance
action: modify
- svcOperationId: 391
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 393
operation: resume
kind: instance
action: resume
- svcOperationId: 392
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1061
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1062
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1063
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1064
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1065
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
21:
- 1061
- 1062
- 1063
22: []
394:
- 1064
- 1065
391: []
393: []
392: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"memory": 512, "replicas": 1, "disk": 10, "cpu": 500}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
+265
View File
@@ -0,0 +1,265 @@
name: mongodb
service_id: 92
service_display_name: MongoDB
service_short_name: mongodb
service_man: '# Инструкция по развертыванию MongoDB через платформу<br/><br/>## 1. Общая информация<br/><br/>MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность,
горизонтальное масштабирование и гибкую модель хранения.<br/><br/>### Доступные операции с кластером<br/><br/>* **create** — создание базы<br/>* **delete** — удаление базы данных<br/>* **suspend** —
остановка базы данных<br/>* **resume** — запуск базы данных<br/>* **modify** — изменение базы данных<br/><br/>### Доступные операции с пользователями<br/><br/>* **create_user** — создание пользователя<br/>*
**modify_user** — модификация пользователя<br/>* **delete_user** — удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры развертывания базы данных<br/><br/>Эти параметры необходимо указать при создании
базы данных.<br/><br/>### Платформа для развертывания<br/><br/>Среда, в которой будет развернут кластер. Выбирается из предложенного списка.<br/><br/>### Количество узлов<br/><br/>Количество реплик в
кластере MongoDB.<br/>Оптимально выбирать нечётное значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.<br/><br/>>
**Примечание:** уменьшение количества узлов после создания кластера не рекомендуется.<br/><br/>### Квота памяти пода (MB)<br/><br/>Объём памяти для одного пода в мегабайтах.<br/>Пример: `2048`<br/><br/>###
Квота CPU пода (mCPU)<br/><br/>CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).<br/>Пример: `1000`<br/><br/>### Размер диска для базы данных (GB)<br/><br/>Объём диска для хранения данных в гигабайтах.<br/>Пример:
`20`<br/><br/>### Имя ipSpace для публикации внешнего IP<br/><br/>Имя ipSpace, через который будет выделен внешний IP для доступа к master-узлу.<br/>Укажите `no-needed`, если внешний адрес не требуется.<br/>Пример:
`internet-no-antiddos-v1`<br/><br/>### Список разрешённых IP-адресов<br/><br/>Список IP-адресов или подсетей, с которых разрешён доступ к кластеру.<br/>Если оставить пустым — доступ открыт для всех источников.<br/>Пример:
`["10.0.0.0/24", "192.168.1.10/32"]`<br/><br/>---<br/><br/>## 3. Параметры модификации базы данных<br/><br/>Все параметры, которые вы указываете при модификации, являются необязательными — система автоматически
подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.<br/><br/>### Количество узлов<br/><br/>Количество реплик в кластере MongoDB.<br/>Оптимально выбирать нечётное
значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.<br/><br/>> **Примечание:** уменьшение количества узлов
после создания кластера не рекомендуется.<br/><br/>### Квота памяти пода (MB)<br/><br/>Объём памяти для одного пода в мегабайтах.<br/>Пример: `2048`<br/><br/>### Квота CPU пода (mCPU)<br/><br/>CPU-квота
для пода в миликорах (1000 mCPU = 1 vCPU).<br/>Пример: `1000`<br/><br/>### Размер диска для базы данных (GB)<br/><br/>Объём диска для хранения данных указывается в гигабайтах. Его можно увеличить при
необходимости, однако уменьшить уже выделенный размер невозможно.<br/>Пример: `20`<br/><br/>### Имя ipSpace для публикации внешнего IP<br/><br/>Имя ipSpace, через который будет выделен внешний IP для
доступа к master-узлу.<br/>Укажите `no-needed`, если внешний адрес не требуется.<br/>Пример: `internet-no-antiddos-v1`<br/><br/>### Список разрешённых IP-адресов<br/><br/>Список IP-адресов или подсетей,
с которых разрешён доступ к кластеру.<br/>Если оставить пустым — доступ открыт для всех источников.<br/>Пример: `["10.0.0.0/24", "192.168.1.10/32"]`<br/><br/>---<br/><br/>## 3. Параметры создания пользователя<br/><br/>###
Имя пользователя<br/><br/>Указывается имя пользователя (любой регистр).<br/>Пример: `readApp`<br/><br/>### Имя базы данных<br/><br/>Название базы, в которой будет создан пользователь.<br/>Если база отсутствует,
она будет создана автоматически.<br/>Пример: `Apps_9392`<br/><br/>### Имя роли<br/><br/>* **read** — доступ только на чтение<br/>* **readWrite** — чтение и изменение данных<br/>* **dbOwner** — полный
контроль над базой данных<br/><br/>---<br/><br/>## 4. Параметры модификации пользователя<br/><br/>### Имя пользователя<br/><br/>Необходимо выбрать существующего пользователя.<br/>Если список пуст, требуется
предварительно создать пользователя.<br/><br/>### Имя базы данных<br/><br/>База данных, к которой относится пользователь.<br/>Если база отсутствует, она будет создана автоматически.<br/>Пример: `Apps_9392`<br/><br/>###
Имя роли<br/><br/>* **read**<br/>* **readWrite**<br/>* **dbOwner**<br/><br/>---<br/><br/>## 5. Параметры удаления пользователя<br/><br/>### Имя пользователя<br/><br/>Выберите пользователя из списка для
удаления.<br/><br/>---<br/><br/>## 6. Выходные параметры<br/><br/>После успешного развертывания базы данных платформа возвращает ключевые параметры.<br/><br/>### internalConnect<br/><br/>Внутренний эндпоинт
для подключения к кластеру из сервисов, работающих в той же сети.<br/>Используется для внутренних интеграций и системных сервисов.<br/><br/>### externalConnect<br/><br/>Внешний FQDN для подключения к
кластеру извне.<br/>Порт подключения — **27017**.<br/><br/>---<br/><br/>## 7. Пример подключения<br/><br/>Перед подключением необходимо установить **mongosh**.<br/><br/>Команда подключения к базе данных:<br/><br/>```<br/>mongosh
"mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>"<br/>```<br/><br/>Где:<br/><br/>* `<username>` — имя пользователя<br/>* `<password>` — пароль<br/>* `<endpoint_db>` — internalConnect или
externalConnect<br/>* `<dbName>` — имя базы данных<br/><br/>## 8. Дополнительная информация<br/><br/>Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину
и паролю.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 37
operation: create
kind: instance
action: create
- svcOperationId: 198
operation: create_user
kind: subresource
action: create
- svcOperationId: 190
operation: delete
kind: instance
action: delete
- svcOperationId: 199
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 201
operation: modify
kind: instance
action: modify
- svcOperationId: 200
operation: modify_user
kind: subresource
action: modify
- svcOperationId: 409
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 196
operation: resume
kind: instance
action: resume
- svcOperationId: 194
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 1089
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1090
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1091
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 635
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 636
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 643
svcOperationCfsParam: role
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- dbOwner
- read
- readWrite
- svcOperationCfsParamId: 644
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1092
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1093
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 640
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 641
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 642
svcOperationCfsParam: role
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- dbOwner
- read
- readWrite
cfsParamsByOp:
37:
- 1089
- 1090
- 1091
198:
- 635
- 636
- 643
190: []
199:
- 644
201:
- 1092
- 1093
200:
- 640
- 641
- 642
409: []
196: []
194: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"replicas": 1, "disk": 5, "cpu": 1000, "memory": 1024}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
+194
View File
@@ -0,0 +1,194 @@
name: rabbitmq
service_id: 93
service_display_name: RabbitMQ
service_short_name: rabbitmq
service_man: '# Инструкция по развертыванию RabbitMQ через платформу<br/><br/>---<br/>## 1. Общая информация<br/>RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную
доставку сообщений между приложениями.<br/>Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения.
Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>- **create** — Создание кластера<br/>- **modify** — Изменение параметров кластера<br/>- **delete** — Удаление
кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо
указать при создании ресурса RabbitMQ:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>*
**Количество узлов в сети:**<br/> Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.<br/> Пример: `1` (single node) или
`3` (кластер с репликацией)<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах
(1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска для базы данных:**<br/> Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`<br/><br/>* **Выделяет внешний IP
для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.<br/> Пример:
`true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/><br/>---<br/>##
3. Модификация кластера<br/>Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.<br/><br/>**Изменяемые параметры:**<br/>* **Квота (megabyte) памяти пода** — можно увеличить
или уменьшить<br/>* **Квота (millicore) ядра пода** — можно увеличить или уменьшить<br/>* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)<br/>* **Количество
узлов в сети** — можно только увеличить (уменьшение не поддерживается)<br/>* **Выделяет внешний IP для доступа к master** — можно включить или выключить<br/>* **Имя ipSpace для публикации внешнего IP
master** — можно изменить при включенном внешнем IP<br/><br/>**Ограничения:**<br/>* Уменьшение размера диска не поддерживается<br/>* Уменьшение количества реплик не поддерживается<br/><br/>---<br/>##
4. Выходные параметры<br/>После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":<br/><br/>**clusterDomain**<br/>Домен
кластера Kubernetes, в котором развернут RabbitMQ.<br/>Пример: `cluster.local`<br/><br/>**inernalConnect**<br/>Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых
внутри той же сети.<br/>Содержит:<br/>* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`<br/><br/>**externalConnect**<br/>Внешние эндпоинты для подключения
к кластеру RabbitMQ извне.<br/>Содержит объекты с полями:<br/>* **admin** — доступ к веб-интерфейсу управления:<br/> * `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`<br/> *
`ip` — IP-адрес<br/>* **master** — доступ к AMQP протоколу (если включен внешний IP):<br/> * `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`<br/> * `ip` — IP-адрес<br/><br/>**monitoring**<br/>Информация
о дашбордах мониторинга:<br/>* **allDashboards** — URL для доступа ко всем дашбордам Grafana<br/><br/>Для подключения используются следующие порты:<br/><br/>* **5672** — AMQP протокол (внутренний и внешний
доступ, если включен внешний IP)<br/>* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)<br/><br/>**Учётные данные**<br/>Данные для подключения к RabbitMQ доступны в разделе "Учётные
данные":<br/>* **adminUser** — имя пользователя администратора<br/>* **adminPass** — пароль администратора<br/><br/><br/>---<br/>## 5. Примеры подключения через консоль (rabbitmqadmin)<br/><br/>### Работа
с очередями через rabbitmqadmin<br/><br/>Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.<br/><br/>Задайте переменные
окружения с учётными данными:<br/><br/>```bash<br/>export RABBITMQ_USERNAME=<adminUser><br/>export RABBITMQ_PASSWORD=<adminPass><br/>export RABBIT_HOST=<host><br/>```<br/><br/>Где:<br/>* `<adminUser>`
и `<adminPass>` — учётные данные из раздела "Учётные данные"<br/>* `<host>` — адрес для подключения:<br/> * Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`<br/><br/>**Создание
очереди:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> declare queue name=healthcheck durable=false<br/>```<br/><br/>**Листинг
очередей:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> list queues<br/>```<br/><br/>**Отправка сообщения:**<br/><br/>```bash<br/>rabbitmqadmin
\<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"<br/>```<br/><br/>**Чтение
сообщения:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> get queue=healthcheck ackmode=ack_requeue_false<br/>```<br/><br/>---<br/>##
6. Дополнительная информация<br/>Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".<br/><br/>Веб-интерфейс
управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.<br/><br/>Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.<br/><br/>---'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 38
operation: create
kind: instance
action: create
- svcOperationId: 39
operation: delete
kind: instance
action: delete
- svcOperationId: 106
operation: modify
kind: instance
action: modify
- svcOperationId: 410
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 117
operation: resume
kind: instance
action: resume
- svcOperationId: 116
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1097
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1098
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1099
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1100
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1101
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
38:
- 1097
- 1098
- 1099
39: []
106:
- 1100
- 1101
410: []
117: []
116: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
+224
View File
@@ -0,0 +1,224 @@
name: lucee
service_id: 94
service_display_name: Lucee
service_short_name: lucee
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 49
operation: create
kind: instance
action: create
- svcOperationId: 50
operation: delete
kind: instance
action: delete
- svcOperationId: 55
operation: modify
kind: instance
action: modify
- svcOperationId: 373
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 53
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 163
operation: restart
kind: action
action: restart
- svcOperationId: 95
operation: resume
kind: instance
action: resume
- svcOperationId: 96
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1019
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1020
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '200'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '256'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1021
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
domain:
dataType: string
defaultValue: lucee-pzpvwkuk
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1022
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: '6.0'
isRequired: true
isModifiable: false
valueList:
- '5.4'
- '6.0'
gitPath:
dataType: string
defaultValue: https://github.com/xahys/testlucee
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1023
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
- svcOperationCfsParamId: 1024
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1025
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
gitPath:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '6.0'
- '5.4'
- svcOperationCfsParamId: 1026
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1027
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
49:
- 1019
- 1020
- 1021
- 1022
- 1023
50: []
55:
- 1024
- 1025
- 1026
373: []
53:
- 1027
163: []
95: []
96: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "lucee-pzpvwkuk"}'
appConfiguration: '{"healthPath": "", "version": "6.0", "gitPath": "https://github.com/xahys/testlucee"}'
jsonEnv: '{}'
+225
View File
@@ -0,0 +1,225 @@
name: nodejs
service_id: 95
service_display_name: NodeJS
service_short_name: nodejs
service_man: Развертывает контейнер в k8s кластере с node, который можно использовать для запуска своих приложений.<br/>Приложение должно быть доступно по ссылки в git репозитории, которая является входным
параметром.
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 58
operation: create
kind: instance
action: create
- svcOperationId: 61
operation: delete
kind: instance
action: delete
- svcOperationId: 59
operation: modify
kind: instance
action: modify
- svcOperationId: 374
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 60
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 121
operation: resume
kind: instance
action: resume
- svcOperationId: 120
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1028
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1029
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '200'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '256'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1030
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
domain:
dataType: string
defaultValue: node-ctkmt4iw
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1031
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '23'
isRequired: true
isModifiable: false
valueList:
- '18'
- '20'
- '22'
- '23'
gitPath:
dataType: string
defaultValue: https://github.com/xahys/testnode.git
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: '1'
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1032
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
- svcOperationCfsParamId: 1033
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1034
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '18'
- '20'
- '22'
- '23'
gitPath:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1035
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1036
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
58:
- 1028
- 1029
- 1030
- 1031
- 1032
61: []
59:
- 1033
- 1034
- 1035
374: []
60:
- 1036
121: []
120: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "node-ctkmt4iw"}'
appConfiguration: '{"version": "23", "gitPath": "https://github.com/xahys/testnode.git", "healthPath": "1"}'
jsonEnv: '{}'
+133
View File
@@ -0,0 +1,133 @@
name: pgadmin
service_id: 96
service_display_name: pgAdmin
service_short_name: pgadmin
service_man: Инструмент с графическим интерфейсом для управления базами данных PostgreSQL
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 62
operation: create
kind: instance
action: create
- svcOperationId: 63
operation: delete
kind: instance
action: delete
- svcOperationId: 64
operation: modify
kind: instance
action: modify
- svcOperationId: 65
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 123
operation: resume
kind: instance
action: resume
- svcOperationId: 122
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 164
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: pgadmin-1
isModifiable: false
- svcOperationCfsParamId: 165
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 166
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 167
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 169
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 170
svcOperationCfsParam: login
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 171
svcOperationCfsParam: password
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 172
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 173
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 174
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: false
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 277
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
62:
- 164
- 165
- 166
- 167
- 169
- 170
- 171
63: []
64:
- 172
- 173
- 174
65:
- 277
123: []
122: []
stateParams:
domain: pgadmin-1
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceRealm: ''
login: ''
password: ''
+145
View File
@@ -0,0 +1,145 @@
name: http
service_id: 98
service_display_name: Простой HTTP контейнер
service_short_name: http
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 77
operation: create
kind: instance
action: create
- svcOperationId: 78
operation: delete
kind: instance
action: delete
- svcOperationId: 81
operation: modify
kind: instance
action: modify
- svcOperationId: 403
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 79
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 130
operation: resume
kind: instance
action: resume
- svcOperationId: 131
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 212
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: http-1
isModifiable: false
- svcOperationCfsParamId: 213
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '100'
isModifiable: true
- svcOperationCfsParamId: 214
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '200'
isModifiable: true
- svcOperationCfsParamId: 215
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 216
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 217
svcOperationCfsParam: registryPath
dataType: string
isRequired: true
defaultValue: nexus-sa.tst.nubes.ru/docker-nubes/jolt
isModifiable: false
- svcOperationCfsParamId: 241
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 782
svcOperationCfsParam: ingressAnnotations
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: false
- svcOperationCfsParamId: 218
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 219
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 220
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 272
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
cfsParamsByOp:
77:
- 212
- 213
- 214
- 215
- 216
- 217
- 241
- 782
78: []
81:
- 218
- 219
- 220
403: []
79:
- 272
130: []
131: []
stateParams:
domain: http-1
resourceCPU: '100'
resourceMemory: '200'
resourceInstances: '1'
resourceRealm: ''
registryPath: nexus-sa.tst.nubes.ru/docker-nubes/jolt
jsonEnv: ''
ingressAnnotations: '{}'
+164
View File
@@ -0,0 +1,164 @@
name: gitea
service_id: 99
service_display_name: Gitea
service_short_name: gitea
service_man: '# Инструкция по развертыванию Gitea через платформу<br/><br/>---<br/>## 1. Общая информация<br/>Gitea — это лёгкий, быстрый и самодостаточный сервис хостинга Git-репозиториев с веб-интерфейсом.<br/>Позволяет
создавать и управлять репозиториями, организациями, командами, а также настраивать CI/CD через интеграции.<br/>Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>-
**create** — Создание сервиса Gitea<br/>- **delete** — Удаление сервиса Gitea<br/>- **modify** — Модификация сервиса Gitea<br/>- **suspend** — Остановка сервиса Gitea<br/>- **resume** —
Запуск сервиса Gitea<br/><br/>---<br/>## 2. Параметры развертывания<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Gitea:<br/><br/>* **Платформа для развертывания:**<br/> Платформа
для развертывания (среда, в которой будет развёрнут сервис). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество реплик подов Gitea. Пример: `1`<br/><br/>* **Квота (megabyte)
памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `1024`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Размер
(gigabyte) диска для базы данных:**<br/> Размер PVC для хранения репозиториев и данных Gitea в гигабайтах. Пример: `10`<br/><br/>* **FQDN / Домен:**<br/> Доменное имя, по которому будет доступен сервис.
Пример: `git.example.com`<br/><br/>* **Инстанс услуги PostgreSQL:**<br/> UUID услуги k8sPgsql, в которой будет создана база данных `gitea` и пользователь `techgitea`.<br/><br/>* **Дополнительные параметры
сервера (iniServerParams):**<br/> JSON-объект с дополнительными параметрами секции `[server]` в `app.ini`. Пример:<br/> ```json<br/> {"MAX_CONTENT_LENGTH": "524288000"}<br/> ```<br/><br/>* **Дополнительные
annotations для Ingress (ingressExtraAnnotations):**<br/> JSON-объект с дополнительными annotations для Ingress-контроллера. Пример:<br/> ```json<br/> {"nginx.ingress.kubernetes.io/proxy-body-size":
"500m"}<br/> ```<br/><br/>---<br/>## 3. Особенности подключения и работы с репозиториями<br/><br/>### 3.1. Доступ только по HTTPS<br/>Сервис развёртывается с **rootless-образом** Gitea. SSH-сервер внутри
и он **доступен только внутри кластера Kubernetes**.<br/><br/>**Внешний доступ к репозиториям осуществляется исключительно по HTTPS через Ingress.**<br/><br/>```bash<br/># Пример клонирования<br/>https://<домен>/<пользователь>/<репозиторий>.git<br/>```<br/><br/>###
3.2. Настройка git для передачи логина и пароля<br/>Для работы с приватными репозиториями через HTTPS необходимо передать учётные данные. Рекомендуется использовать один из следующих способов:<br/><br/>**Встроить
креды в URL remote**<br/>```bash<br/>git remote set-url origin https://<логин>:<пароль>@<домен>/<пользователь>/<репозиторий>.git<br/>```<br/>> **Важно:** Логин и пароль администратора создаются автоматически
при развертывании и хранятся в Vault.<br/><br/>### 3.3. Работа с большими файлами<br/>По умолчанию `MAX_CONTENT_LENGTH` установлен в **500 МБ**, а Ingress пропускает pack-файлы до **500 МБ**.<br/><br/>Если
необходимо запушить файлы близкие к лимиту, увеличьте HTTP-буфер git на стороне клиента:<br/>```bash<br/>git config http.postBuffer 524288000<br/>```<br/><br/>Для файлов **более 500 МБ** рекомендуется
использовать **Git LFS**.<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Gitea платформа возвращает ряд параметров.<br/><br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это
внешний URL для доступа к веб-интерфейсу и Git-репозиториям по HTTPS. Пример:<br/>```<br/>https://git.example.com<br/>```<br/><br/>**internalConnect**<br/>Внутренний эндпоинт для подключения к PostgreSQL
из других сервисов внутри кластера.<br/><br/>---<br/>## 5. Дополнительная информация<br/>- База данных `gitea` и пользователь `techgitea` создаются автоматически в указанной услуге PostgreSQL.<br/>- DNS-запись
и TLS-сертификат (Let''s Encrypt) настраиваются автоматически на основе указанного домена.<br/>- Для изменения параметров сервера Gitea (`app.ini`) используйте операцию **modify** с полем `iniServerParams`.<br/>-
Для добавления дополнительных Ingress-annotations используйте операцию **modify** с полем `ingressExtraAnnotations`.<br/>---'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 82
operation: create
kind: instance
action: create
- svcOperationId: 83
operation: delete
kind: instance
action: delete
- svcOperationId: 91
operation: modify
kind: instance
action: modify
- svcOperationId: 127
operation: resume
kind: instance
action: resume
- svcOperationId: 126
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 232
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 233
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 234
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 235
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 237
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: gitea-1
isModifiable: false
- svcOperationCfsParamId: 238
svcOperationCfsParam: psqlUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 818
svcOperationCfsParam: ingressExtraAnnotations
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 821
svcOperationCfsParam: iniServerParams
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 259
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 260
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 261
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 262
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 819
svcOperationCfsParam: ingressExtraAnnotations
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 820
svcOperationCfsParam: iniServerParams
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
82:
- 232
- 233
- 234
- 235
- 237
- 238
- 818
- 821
83: []
91:
- 259
- 260
- 261
- 262
- 819
- 820
127: []
126: []
stateParams:
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceInstances: '1'
domain: gitea-1
psqlUid: ''
ingressExtraAnnotations: ''
iniServerParams: ''
+245
View File
@@ -0,0 +1,245 @@
name: zones_v2
service_id: 109
service_display_name: Управление DNS
service_short_name: zonesV2
service_man: '# Управление DNS<br/><br/>## Что делает сервис<br/><br/>Управляет DNS-зоной вашего домена в инфраструктуре `ngcloud.ru`.<br/>Сервис помогает:<br/><br/>- создать DNS-зону;<br/>- поддерживать
записи в зоне (добавлять, удалять, массово менять);<br/>- удалять зону;<br/>- синхронизировать данные зоны с фактическим состоянием на DNS-серверах.<br/><br/>Сервис работает с авторитетными DNS-серверами
зоны:<br/><br/>- `ns3.ngcloud.ru`<br/> - `185.247.187.83`<br/> - `2a10:aa80:0:5::3`<br/>- `ns4.ngcloud.ru`<br/> - `81.22.46.43`<br/> - `2a10:aa80:0:6::3`<br/><br/>## Очень важно: что сделать у регистратора
домена<br/><br/>Чтобы зона действительно начала обслуживаться, **нужно делегировать домен** у регистратора на авторитетные DNS-серверы:<br/><br/>- `ns3.ngcloud.ru`<br/>- `ns4.ngcloud.ru`<br/><br/>В панели
регистратора нужно заменить NS-серверы домена на значения выше.<br/>Без этого записи в зоне могут быть созданы, но интернет не будет использовать их для вашего домена.<br/><br/>## Проверка после настройки<br/><br/>Проверить
ответы от серверов зоны:<br/><br/>```bash<br/>dig <ваш_домен> @ns3.ngcloud.ru<br/>dig <ваш_домен> @ns4.ngcloud.ru<br/>```<br/><br/>Проверить, что делегирование у регистратора применилось:<br/><br/>```bash<br/>dig
<ваш_домен> NS<br/>```<br/><br/>В ответе должны быть `ns3.ngcloud.ru` и `ns4.ngcloud.ru`.<br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 254
operation: create
kind: instance
action: create
- svcOperationId: 260
operation: create_record
kind: subresource
action: create
- svcOperationId: 255
operation: delete
kind: instance
action: delete
- svcOperationId: 261
operation: delete_record
kind: subresource
action: delete
- svcOperationId: 256
operation: modify
kind: instance
action: modify
- svcOperationId: 262
operation: modify_record
kind: subresource
action: modify
- svcOperationId: 259
operation: reconcile
kind: action
action: reconcile
stateOut:
records: {}
cfsParams:
- svcOperationCfsParamId: 761
svcOperationCfsParam: zoneName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 762
svcOperationCfsParam: zoneKind
dataType: string
isRequired: true
defaultValue: NATIVE
isModifiable: false
valueList:
- NATIVE
- SLAVE
- svcOperationCfsParamId: 763
svcOperationCfsParam: zoneMastersForSlave
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 764
svcOperationCfsParam: zoneRefresh
dataType: integer > 0
isRequired: true
defaultValue: '86400'
isModifiable: false
- svcOperationCfsParamId: 765
svcOperationCfsParam: zoneRetry
dataType: integer > 0
isRequired: true
defaultValue: '7200'
isModifiable: false
- svcOperationCfsParamId: 766
svcOperationCfsParam: zoneExpire
dataType: integer > 0
isRequired: true
defaultValue: '3600000'
isModifiable: false
- svcOperationCfsParamId: 767
svcOperationCfsParam: zoneTTL
dataType: integer > 0
isRequired: true
defaultValue: '86400'
isModifiable: false
- svcOperationCfsParamId: 768
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: powerdns
isModifiable: false
valueList:
- powerdns
- svcOperationCfsParamId: 777
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 778
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: '3600'
isModifiable: false
- svcOperationCfsParamId: 779
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: A
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 780
svcOperationCfsParam: recordInput
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 781
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 769
svcOperationCfsParam: records
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
recordName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordTTL:
dataType: integer > 0
defaultValue: '3600'
isRequired: true
isModifiable: false
recordType:
dataType: string
defaultValue: A
isRequired: true
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
recordInput:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 783
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 784
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 785
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 786
svcOperationCfsParam: recordInput
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
254:
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
260:
- 777
- 778
- 779
- 780
255: []
261:
- 781
256:
- 769
262:
- 783
- 784
- 785
- 786
259: []
stateParams:
zoneName: ''
zoneKind: NATIVE
zoneMastersForSlave: ''
zoneRefresh: '86400'
zoneRetry: '7200'
zoneExpire: '3600000'
zoneTTL: '86400'
resourceRealm: powerdns
+92
View File
@@ -0,0 +1,92 @@
name: dnsrecord
service_id: 111
service_display_name: DNS запись
service_short_name: dnsrecord
service_man: Необходима DNS зона, в которой будет создана DNS запись.<br/>Выберите <br/>* Зону в которой будет создана запись<br/>* Тип записи<br/>* Имя записи<br/>* Значение записи
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 45
operation: create
kind: instance
action: create
- svcOperationId: 46
operation: delete
kind: instance
action: delete
- svcOperationId: 90
operation: modify
kind: instance
action: modify
- svcOperationId: 408
operation: reconcile
kind: action
action: reconcile
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 75
svcOperationCfsParam: zoneUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 76
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- PTR
- SOA
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 77
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 78
svcOperationCfsParam: recordInput
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 450
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: '3600'
isModifiable: false
- svcOperationCfsParamId: 256
svcOperationCfsParam: recordInput
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
45:
- 75
- 76
- 77
- 78
- 450
46: []
90:
- 256
408: []
stateParams:
zoneUid: ''
recordType: ''
recordName: ''
recordInput: ''
recordTTL: '3600'
+408
View File
@@ -0,0 +1,408 @@
name: mariadb
service_id: 115
service_display_name: Mariadb
service_short_name: mariadb
service_man: 'Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.<br/>Автоматическое резервное копирование, ручное восстановление.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 138
operation: create
kind: instance
action: create
- svcOperationId: 242
operation: create_database
kind: subresource
action: create
- svcOperationId: 243
operation: create_user
kind: subresource
action: create
- svcOperationId: 139
operation: delete
kind: instance
action: delete
- svcOperationId: 248
operation: delete_database
kind: subresource
action: delete
- svcOperationId: 247
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 142
operation: modify
kind: instance
action: modify
- svcOperationId: 287
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 141
operation: resume
kind: instance
action: resume
- svcOperationId: 140
operation: suspend
kind: instance
action: suspend
stateOut:
databases: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 877
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 878
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- svcOperationCfsParamId: 879
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 880
svcOperationCfsParam: mariadbConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: 9.4.0
isRequired: true
isModifiable: false
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 881
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '720'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 882
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 734
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db-aah92zcm
isModifiable: false
- svcOperationCfsParamId: 735
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: usero6y8ruyp
isModifiable: false
- svcOperationCfsParamId: 736
svcOperationCfsParam: password
dataType: string
isRequired: true
defaultValue: kgocowba
isModifiable: false
- svcOperationCfsParamId: 737
svcOperationCfsParam: dbName
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
dbname:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 738
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '%'
isModifiable: false
- svcOperationCfsParamId: 456
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
isRequired: true
defaultValue: 'true'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 745
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 744
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 883
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 884
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 885
svcOperationCfsParam: mariadbConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 886
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 887
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
cfsParamsByOp:
138:
- 877
- 878
- 879
- 880
- 881
- 882
242:
- 734
243:
- 735
- 736
- 737
- 738
139:
- 456
248:
- 745
247:
- 744
142:
- 883
- 884
- 885
- 886
- 887
287: []
141: []
140: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"disk": 10, "cpu": 500, "memory": 512, "replicas": 1}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
mariadbConfiguration: '{"version": "9.4.0"}'
backupConfiguration: '{"s3Uid": "", "retain": 720, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"enabled": false, "schedule": 0, "quota": 100, "percent": 10}'
+349
View File
@@ -0,0 +1,349 @@
name: kafka
service_id: 116
service_display_name: ApacheKafka
service_short_name: kafka
service_man: '# Инструкция по развертыванию Организация в Cloud Director через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Организация в Cloud Director** предназначен для управления изолированными
организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль
уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.<br/><br/>### Доступные операции<br/><br/>**create**
— Создание новой организации с заданными характеристиками и типом доступа.<br/>**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.<br/>**modify**
— Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).<br/>**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.<br/>**resume**
— Разморозка организации, восстановление функций управления.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание:
платформа, на которой будет создана организация.<br/>Пример значения: `ngcloud.ru`.<br/><br/>### Тип организации<br/>Описание: тип создаваемой организации.<br/>Варианты:<br/>- `iaas` — организация с прямым
доступом к облаку и авторизацией через Keycloak.<br/>- `saas` — организация под управлением Nubes, без прямого доступа к облаку.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.<br/><br/>### Промышленное окружение<br/>- Тип организации: `saas` (упрощённая
модель использования).<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Идентификатор организации<br/>Уникальный
идентификатор созданной организации. Используется для всех дальнейших API-операций.<br/><br/>### Статус организации<br/>Отражает текущее состояние: active, suspended, modifying, deleting.<br/><br/>###
Параметры сети<br/>Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних
IP внутри организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)**;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.<br/>-
Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок
и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется через Keycloak.<br/><br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 148
operation: create
kind: instance
action: create
- svcOperationId: 165
operation: create_topic
kind: subresource
action: create
- svcOperationId: 168
operation: create_user
kind: subresource
action: create
- svcOperationId: 149
operation: delete
kind: instance
action: delete
- svcOperationId: 167
operation: delete_topic
kind: subresource
action: delete
- svcOperationId: 170
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 162
operation: modify
kind: instance
action: modify
- svcOperationId: 166
operation: modify_topic
kind: subresource
action: modify
- svcOperationId: 169
operation: modify_user
kind: subresource
action: modify
- svcOperationId: 161
operation: resume
kind: instance
action: resume
- svcOperationId: 160
operation: suspend
kind: instance
action: suspend
stateOut:
topics: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 1084
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1085
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1086
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
allocationExternal:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 523
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 524
svcOperationCfsParam: partitions
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 525
svcOperationCfsParam: replicas
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 530
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 531
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 532
svcOperationCfsParam: operations
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- Create
- Describe
- Read
- Write
- svcOperationCfsParamId: 533
svcOperationCfsParam: group
dataType: string
isRequired: true
defaultValue: '*'
isModifiable: false
- svcOperationCfsParamId: 534
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '*'
isModifiable: false
- svcOperationCfsParamId: 529
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 540
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1087
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1088
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
allocationExternal:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 526
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 527
svcOperationCfsParam: partitions
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 528
svcOperationCfsParam: replicas
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 535
svcOperationCfsParam: nameTopic
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 536
svcOperationCfsParam: operations
dataType: array
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- Create
- Describe
- Read
- Write
- svcOperationCfsParamId: 537
svcOperationCfsParam: group
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 538
svcOperationCfsParam: accessHosts
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 539
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
148:
- 1084
- 1085
- 1086
165:
- 523
- 524
- 525
168:
- 530
- 531
- 532
- 533
- 534
149: []
167:
- 529
170:
- 540
162:
- 1087
- 1088
166:
- 526
- 527
- 528
169:
- 535
- 536
- 537
- 538
- 539
161: []
160: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 2000, "memory": 2048, "replicas": 0, "disk": 1}'
accessConfiguration: '{"allocationExternal": false, "masterAccessList": "[]"}'
+109
View File
@@ -0,0 +1,109 @@
name: akhq
service_id: 119
service_display_name: Akhq
service_short_name: Akhq
service_man: '# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.<br/>Позволяет просматривать
топики, consumer group''ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.<br/>Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS)
подключения.<br/><br/>## Доступные операции<br/>- **create** — Создание ресурса AKHQ<br/>- **suspend** — Остановка ресурса<br/>- **resume** — Возобновление работы ресурса<br/>- **modify** —
Модификация настроек<br/>- **delete** — Удаление ресурса<br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>*
**Кластер Kafka к которому нужно настроить подключение**<br/>Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.<br/><br/>* **Платформа для развертывания:**<br/>Платформа
для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/>Количество узлов для работы Akhq. Пример `2`<br/><br/>* **Квота
(megabyte) памяти пода:**<br/>Квота памяти пода в мегабайтах. Пример: `512`<br/><br/>* **Квота (millicore ) ядра пода:**<br/>Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Имя
домена:**<br/>Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`<br/><br/>---<br/>##
4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это полное доменное имя (FQDN),
по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.<br/><br/>**Учетные данные**<br/>Здесь
представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Учётные записи, созданные для работы с AKHQ, предоставляют
доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.<br/>---'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 175
operation: create
kind: instance
action: create
- svcOperationId: 176
operation: delete
kind: instance
action: delete
- svcOperationId: 180
operation: modify
kind: instance
action: modify
- svcOperationId: 178
operation: resume
kind: instance
action: resume
- svcOperationId: 177
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 550
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 551
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 552
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: false
- svcOperationCfsParamId: 553
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 554
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 555
svcOperationCfsParam: kafkaUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 565
svcOperationCfsParam: kafkaUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
175:
- 550
- 551
- 552
- 553
- 554
- 555
176: []
180:
- 565
178: []
177: []
stateParams:
resourceRealm: ''
resourceMemory: '512'
resourceCPU: '500'
domain: ''
resourceInstances: '1'
kafkaUid: ''
+523
View File
@@ -0,0 +1,523 @@
name: clickhouse
service_id: 120
service_display_name: ClickHouse
service_short_name: clickhouse
service_man: '# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная
для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер
создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик.
Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать
услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>*
**resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка
прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить
операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>###
Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/"
-d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE
= MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются
без специального ключа (`ON CLUSTER ''clickhousek8s''`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной
таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS
localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count()
FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE
TABLE IF NOT EXISTS database.localUsers ON cluster ''clickhousek8s''<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> ''/clickhouse/tables/{shard}/localUsers'',<br/> ''{replica}''<br/>)<br/>ORDER
BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster ''clickhousek8s''<br/>AS database.localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', rand());<br/><br/>INSERT
INTO database.users VALUES (1, ''Alice'', ''alice@example.com'');<br/>INSERT INTO database.users VALUES (2, ''Bob'', ''bob@example.com'');<br/>INSERT INTO database.users VALUES (3, ''Charlie'', ''charlie@example.com'');<br/>INSERT
INTO database.users VALUES (4, ''David'', ''david@example.com'');<br/>INSERT INTO database.users VALUES (5, ''Gosha'', ''gosha@example.com'');<br/>INSERT INTO database.users VALUES (6, ''Eve'', ''eve@example.com'');<br/>INSERT
INTO database.users VALUES (7, ''Frank'', ''frank@example.com'');<br/>INSERT INTO database.users VALUES (8, ''Grace'', ''grace@example.com'');<br/>INSERT INTO database.users VALUES (9, ''Hannah'', ''hannah@example.com'');<br/>INSERT
INTO database.users VALUES (10, ''Ivan'', ''ivan@example.com'');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT
COUNT(*) AS total_users_local FROM database.localUsers;<br/>```'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 181
operation: create
kind: instance
action: create
- svcOperationId: 186
operation: create_database
kind: subresource
action: create
- svcOperationId: 185
operation: create_user
kind: subresource
action: create
- svcOperationId: 184
operation: delete
kind: instance
action: delete
- svcOperationId: 188
operation: delete_database
kind: subresource
action: delete
- svcOperationId: 187
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 189
operation: modify
kind: instance
action: modify
- svcOperationId: 276
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 183
operation: resume
kind: instance
action: resume
- svcOperationId: 182
operation: suspend
kind: instance
action: suspend
stateOut:
databases: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 837
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 838
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
shards:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 839
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 840
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '1'
- '3'
- svcOperationCfsParamId: 841
svcOperationCfsParam: clickhouseConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '25.10'
isRequired: true
isModifiable: false
valueList:
- '25.10'
- svcOperationCfsParamId: 842
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '7'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 843
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
- svcOperationCfsParamId: 851
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
path:
dataType: string
defaultValue: something.xml
isRequired: true
isModifiable: false
xmlConfig:
dataType: string
defaultValue: <clickhouse></clickhouse>
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 600
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db01
isModifiable: false
- svcOperationCfsParamId: 596
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: myusername
isModifiable: false
- svcOperationCfsParamId: 598
svcOperationCfsParam: dbName
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
dbName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 599
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: ::/0
isModifiable: false
- svcOperationCfsParamId: 602
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 601
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 844
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
shards:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 845
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '1'
- '3'
- svcOperationCfsParamId: 846
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 847
svcOperationCfsParam: clickhouseConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '25.10'
- svcOperationCfsParamId: 848
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 849
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: false,true
isRequired: true
isModifiable: false
schedule:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 850
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
path:
dataType: string
defaultValue: something.xml
isRequired: true
isModifiable: false
xmlConfig:
dataType: string
defaultValue: <clickhouse></clickhouse>
isRequired: true
isModifiable: false
cfsParamsByOp:
181:
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 851
186:
- 600
185:
- 596
- 598
- 599
184: []
188:
- 602
187:
- 601
189:
- 844
- 845
- 846
- 847
- 848
- 849
- 850
276: []
183: []
182: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 2048, "replicas": 1, "shards": 1, "disk": 10}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
clickhouseKeeperConfiguration: '{"cpu": 500, "memory": 512, "replicas": 0}'
clickhouseConfiguration: '{"version": "25.10"}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"quota": 100, "percent": 10, "enabled": false, "schedule": 0}'
clickhouseFilesConfiguration: '{"path": "something.xml", "xmlConfig": "<clickhouse></clickhouse>"}'
+119
View File
@@ -0,0 +1,119 @@
name: s3
service_id: 12
service_display_name: S3 Object Storage
service_short_name: s3
service_man: Руководство доступно по ссылке:<br/>https://docs.s3.msk-1.ngcloud.ru/s3/s3.description.html
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 1
operation: create
kind: instance
action: create
- svcOperationId: 6
operation: create_sub_user
kind: subresource
action: create
- svcOperationId: 5
operation: delete
kind: instance
action: delete
- svcOperationId: 7
operation: delete_sub_user
kind: subresource
action: delete
- svcOperationId: 4
operation: modify
kind: instance
action: modify
- svcOperationId: 407
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 3
operation: resume
kind: instance
action: resume
- svcOperationId: 2
operation: suspend
kind: instance
action: suspend
stateOut:
sub_users: {}
cfsParams:
- svcOperationCfsParamId: 163
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ceph.tst.nubes.ru
isModifiable: false
valueList:
- ceph.tst.nubes.ru
- svcOperationCfsParamId: 320
svcOperationCfsParam: displayName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 60
svcOperationCfsParam: subUserName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 61
svcOperationCfsParam: subUserAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- read
- write
- readwrite
- full
- svcOperationCfsParamId: 63
svcOperationCfsParam: subUserName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 50
svcOperationCfsParam: maxSizeGbPerUser
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 51
svcOperationCfsParam: maxObjectsPerBucket
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 52
svcOperationCfsParam: maxBucketsPerUser
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
1:
- 163
- 320
6:
- 60
- 61
5: []
7:
- 63
4:
- 50
- 51
- 52
407: []
3: []
2: []
stateParams:
resourceRealm: ceph.tst.nubes.ru
displayName: ''
+90
View File
@@ -0,0 +1,90 @@
name: s3bucket
service_id: 13
service_display_name: S3 бакет
service_short_name: s3bucket
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 51
operation: create
kind: instance
action: create
- svcOperationId: 52
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 124
svcOperationCfsParam: s3UserUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 125
svcOperationCfsParam: bucketName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 126
svcOperationCfsParam: maxSize
dataType: string
isRequired: true
defaultValue: '-1'
isModifiable: false
- svcOperationCfsParamId: 127
svcOperationCfsParam: readAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 128
svcOperationCfsParam: listAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 129
svcOperationCfsParam: corsAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 130
svcOperationCfsParam: placement
dataType: string
isRequired: true
defaultValue: HOT
isModifiable: false
valueList:
- HOT
- COLD
cfsParamsByOp:
51:
- 124
- 125
- 126
- 127
- 128
- 129
- 130
52: []
stateParams:
s3UserUid: ''
bucketName: ''
maxSize: '-1'
readAll: 'false'
listAll: 'false'
corsAll: 'false'
placement: HOT
@@ -0,0 +1,150 @@
name: vc_mgmt_sthutrval_cluster
service_id: 148
service_display_name: Менеджмент Kubernetes кластер Штурвал
service_short_name: vcMgmtSthutrvalCluster
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 258
operation: create
kind: instance
action: create
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 771
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: sandbox.nubes.ru
isRequired: true
isModifiable: false
valueList:
- sandbox.nubes.ru
clusterName:
dataType: string
defaultValue: example-ywasgmh6
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 772
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 773
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 774
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-gj7zkkhv
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
- svcOperationCfsParamId: 775
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
cfsParamsByOp:
258:
- 771
- 772
- 773
- 774
- 775
stateParams:
startupConfiguration: '{"resourceRealm": "sandbox.nubes.ru", "clusterName": "example-ywasgmh6"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
controlPlaneConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingDisk": 50, "count": 2, "groupName": "workers-gj7zkkhv", "sizingPolicy": ""}'
accessConfiguration: '{"needExternalAddressIngress": true, "accessIpListIngress": "[]", "needExternalAddressAPI": true, "accessIpListAPI": "[]"}'
+216
View File
@@ -0,0 +1,216 @@
name: valo_tenant
service_id: 149
service_display_name: VALO Cloud
service_short_name: valoTenant
service_man: '# Инструкция по развертыванию Тенант Valo через платформу<br/><br/>## 1. Общая информация<br/>Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое
облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию
выполняется отдельной операцией.<br/><br/>### Доступные операции<br/><br/>* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.<br/>* **modify** — изменение настроек тенанта, включая
перевод из ТЕСТ в ПРОД.<br/>* **suspend** — выключение (приостановка работы) тенанта.<br/>* **resume** — включение ранее приостановленного тенанта.<br/>* **delete** — удаление тенанта; доступно только
после выполнения операции suspend.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание: платформа,
на которой будет создан тенант.<br/>Пример значения: `valo.ngcloud.ru`.<br/><br/>### DNS-Префикс<br/>Описание: Будет добавлено в зону valo.ngcloud.ru<br/>Пример значения: `mysimpledomain`.<br/><br/>###
Параметры хранилища<br/>Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes<br/>Пример значения: `10`.<br/><br/>### Настройки тенанта<br/>Описание:
Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала<br/>Пример значения: `опционально в рамках настройки`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы<br/><br/>###
Промышленное окружение<br/>Для разблокировки используйте операцию `modify`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе
операций):<br/><br/>### Статус тенанта<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу
переведён в ПРОД без операции modify.<br/>Удаление тенанта возможно только после его выключения с помощью операции suspend.<br/>Срок тестового режима составляет 2 месяца с момента создания.<br/>Операции
suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 202
operation: create
kind: instance
action: create
- svcOperationId: 206
operation: delete
kind: instance
action: delete
- svcOperationId: 203
operation: modify
kind: instance
action: modify
- svcOperationId: 205
operation: resume
kind: instance
action: resume
- svcOperationId: 204
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 655
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: valo.ngcloud.ru
isModifiable: false
valueList:
- valo.ngcloud.ru
- svcOperationCfsParamId: 656
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 657
svcOperationCfsParam: valoOptions
dataType: map-fixed
isRequired: true
defaultValue: '{}'
isModifiable: true
dataDescriptor:
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
ffOnlineEditor:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffWatermark:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffUserImport:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffThemes:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 658
svcOperationCfsParam: s3Storage
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: true
- svcOperationCfsParamId: 659
svcOperationCfsParam: valoOptions
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
ffOnlineEditor:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffWatermark:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffUserImport:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffThemes:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 660
svcOperationCfsParam: s3Storage
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
202:
- 655
- 656
- 657
- 658
206: []
203:
- 659
- 660
205: []
204: []
stateParams:
resourceRealm: valo.ngcloud.ru
domain: ''
valoOptions: '{"ffLogging": true, "userCount": 10, "requestApproveMaxPeriod": 2, "ffOnlineEditor": true, "ffWatermark": true, "ffUserImport": true, "ffThemes": true, "ffPublicLink": true}'
s3Storage: '10'
@@ -0,0 +1,324 @@
name: k8s_sthutrval_cluster
service_id: 150
service_display_name: Kubernetes кластер Штурвал
service_short_name: k8sSthutrvalCluster
service_man: Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 108
operation: create
kind: instance
action: create
- svcOperationId: 281
operation: create_user
kind: subresource
action: create
- svcOperationId: 109
operation: delete
kind: instance
action: delete
- svcOperationId: 282
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 110
operation: modify
kind: instance
action: modify
- svcOperationId: 253
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 174
operation: resume
kind: instance
action: resume
- svcOperationId: 173
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 750
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
nsxtUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
clusterName:
dataType: string
defaultValue: example-kcrwfrbd
isRequired: true
isModifiable: false
vdcUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 751
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
sizingPolicy:
dataType: string
defaultValue: '[]'
isRequired: true
isModifiable: false
valueList:
- '{}'
- svcOperationCfsParamId: 752
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-rbrr6za5
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 753
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 755
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 869
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 870
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 756
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
appVersion:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 757
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 758
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-kk0fpv6w
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 759
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
cfsParamsByOp:
108:
- 750
- 751
- 752
- 753
- 755
281:
- 869
109: []
282:
- 870
110:
- 756
- 757
- 758
- 759
253: []
174: []
173: []
stateParams:
startupConfiguration: '{"nsxtUid": "", "clusterName": "example-kcrwfrbd", "vdcUid": ""}'
controlPlaneConfiguration: '{"sizingDisk": 50, "count": 1, "sizingPolicy": "[]"}'
workerConfiguration: '{"groupName": "workers-rbrr6za5", "sizingPolicy": "", "sizingDisk": 50, "count": 2}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
+374
View File
@@ -0,0 +1,374 @@
name: k8s_openbao
service_id: 151
service_display_name: Vault
service_short_name: k8sOpenbao
service_man: '# Инструкция по развертыванию Хранилища секретов через платформу<br/><br/>## 1. Общая информация<br/>Хранилище секретов — сервис централизованного и защищённого хранения чувствительных данных
(секретов, ключей, конфигураций). Предназначен для использования приложениями и сервисами в Kubernetes с управлением доступом на основе ролей.<br/>В качестве приложения используется открытый проект OpenBao
с поддержкой кластерного режима RAFT.<br/><br/>### Доступные операции<br/>**create** — Создание хранилища секретов и инициализация кластера.<br/>**delete** — Удаление хранилища секретов с полной очисткой
всех связанных сущностей.<br/>**modify** — Изменение параметров развернутого хранилища секретов.<br/>**suspend** — Приостановка работы кластера без удаления Persistent Volume.<br/>**resume** — Возобновление
работы кластера с автоматическим unseal всех нод.<br/>**restart** — Поочередный перезапуск нод с последующим подключением в кластер.<br/>**create_kv** — Создание Key/Value хранилища версии V2.<br/>**delete_kv**
— Удаление Key/Value хранилища со всеми содержащимися секретами.<br/>**create_secrets** — Создание секрета внутри Key/Value хранилища.<br/>**delete_secrets** — Удаление секрета из Key/Value хранилища.<br/>**update_secrets**
— Обновление значения секрета.<br/>**recovery_secrets** — Откат секрета к указанной версии.<br/>**create_role** — Создание роли для управления Key/Value хранилищем или секретами.<br/>**update_role** —
Обновление параметров роли.<br/>**delete_role** — Удаление роли доступа.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа
для развертывания<br/>Описание: Кластер Kubernetes, в котором будет развернуто приложение.<br/>Формат значения: имя Kubernetes-кластера.<br/><br/>### Имя домена<br/>Описание: Доменное имя сервиса. При
указании полного FQDN выполняется проверка DNS A-записи или добавляется А-запись в техническую зону.<br/>Формат значения: secrets.domain.com / mysecretdomain.<br/><br/>### Кол-во реплик<br/>Описание:
Количество узлов в кластере.<br/>Формат значения: целое число.<br/><br/>### Квота ядра пода<br/>Описание: Лимит CPU для одного узла. Указывается в milicores (1000 milicores = 1 CPU).<br/>Формат значения:
целое число.<br/><br/>### Квота памяти пода<br/>Описание: Лимит оперативной памяти для одного узла. Указывается в megabytes.<br/>Формат значения: целое число.<br/><br/>### Размер диска под хранение секретов<br/>Описание:
Объем диска для хранения данных. Фактический объем равен значению, умноженному на количество реплик. Указывается в Gigabytes<br/>Формат значения: целое число.<br/><br/>### Версия OpenBao<br/>Описание:
Версия OpenBao для развертывания сервиса.<br/>Формат значения: выбор из предоставленного списка версий.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>Кол-во
реплик: 2.<br/>Квота ядра пода: 200.<br/>Квота памяти пода: 256.<br/>Размер диска под хранение секретов: 1.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>### Промышленное окружение<br/>Кол-во
реплик: от 3.<br/>Квота ядра пода: от 1000.<br/>Квота памяти пода: от 1024.<br/>Размер диска под хранение секретов: от 10.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>---<br/><br/>## 4.
Выходные параметры<br/>Настройки внутри хранилища (kv/secrets/roles) — конфигурации Key/Value, секретов и ролей, созданные соответствующими операциями.<br/>Настройки самого хранилище (сайзинг, объемы)
— параметры ресурсов и хранилища данных, примененные к сервису.<br/>Статус кластера (running / suspended) — текущее состояние работы кластера.<br/>url для подключения к веб — адрес веб-интерфейса сервиса.<br/><br/>---<br/><br/>##
5. Дополнительная информация<br/>При удалении хранилища все данные и настройки безвозвратно удаляются.<br/>При использовании доменного имени требуется корректная настройка DNS.<br/>Операции управления
секретами и ролями выполняются только после успешного создания хранилища.<br/>Удаление кластера производится через операцию `suspend`, а удаление становится доступно через 14 дней после остановки кластера<br/>Правило
выше не относится к операции `delete_kv` / `delete_secrets` / `delete_role`'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 210
operation: create
kind: instance
action: create
- svcOperationId: 212
operation: create_kv
kind: subresource
action: create
- svcOperationId: 237
operation: create_policy
kind: subresource
action: create
- svcOperationId: 214
operation: create_secrets
kind: subresource
action: create
- svcOperationId: 231
operation: delete
kind: instance
action: delete
- svcOperationId: 213
operation: delete_kv
kind: subresource
action: delete
- svcOperationId: 239
operation: delete_policy
kind: subresource
action: delete
- svcOperationId: 233
operation: delete_secrets
kind: subresource
action: delete
- svcOperationId: 211
operation: modify
kind: instance
action: modify
- svcOperationId: 236
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 232
operation: recovery_secrets
kind: subresource
action: recovery
- svcOperationId: 234
operation: restart
kind: action
action: restart
- svcOperationId: 216
operation: resume
kind: instance
action: resume
- svcOperationId: 215
operation: suspend
kind: instance
action: suspend
- svcOperationId: 238
operation: update_policy
kind: subresource
action: update
- svcOperationId: 230
operation: update_secrets
kind: subresource
action: update
stateOut:
kvs: {}
policies: {}
secrets: {}
cfsParams:
- svcOperationCfsParamId: 663
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 664
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 665
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '3'
isModifiable: true
- svcOperationCfsParamId: 666
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 667
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: true
- svcOperationCfsParamId: 668
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: 2.5.2
isModifiable: true
valueList:
- 2.5.2
- svcOperationCfsParamId: 669
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: bao-ovkw1qbi
isModifiable: false
- svcOperationCfsParamId: 675
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: kvname-bbycmhbz
isModifiable: false
- svcOperationCfsParamId: 728
svcOperationCfsParam: policySettings
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
capabilities:
dataType: json
defaultValue: '["read", "list"]'
isRequired: true
isModifiable: false
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 729
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: policy-xqjoiy6t
isModifiable: false
- svcOperationCfsParamId: 677
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 678
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: path/to/mysecret
isModifiable: false
- svcOperationCfsParamId: 679
svcOperationCfsParam: secretData
dataType: map
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 676
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 732
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 726
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 727
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 670
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 671
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 672
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 673
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 674
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- 2.5.2
- svcOperationCfsParamId: 723
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 724
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 725
svcOperationCfsParam: secretVersion
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 730
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 731
svcOperationCfsParam: policySettings
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
capabilities:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 719
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 720
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 721
svcOperationCfsParam: needFullUpdateSecret
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 722
svcOperationCfsParam: secretData
dataType: map
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
210:
- 663
- 664
- 665
- 666
- 667
- 668
- 669
212:
- 675
237:
- 728
- 729
214:
- 677
- 678
- 679
231: []
213:
- 676
239:
- 732
233:
- 726
- 727
211:
- 670
- 671
- 672
- 673
- 674
236: []
232:
- 723
- 724
- 725
234: []
216: []
215: []
238:
- 730
- 731
230:
- 719
- 720
- 721
- 722
stateParams:
resourceRealm: ''
resourceCPU: '500'
resourceInstances: '3'
resourceMemory: '512'
resourceDisk: '10'
appVersion: 2.5.2
domain: bao-ovkw1qbi
+237
View File
@@ -0,0 +1,237 @@
name: llm_ai
service_id: 163
service_display_name: LLM
service_short_name: llmAi
service_man: '## 1. Общая информация<br/><br/>LLMaaS (Large Language Model as a Service) — это сервис для доступа к языковым моделям через OpenAI-совместимое API.<br/>Платформа позволяет создавать организации
(тенанты), команды, выпускать и управлять API-ключами, устанавливать лимиты на использование.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create** — Создание организации в LLMaaS<br/>-
**delete** — Удаление организации<br/><br/>- **create_team** — Создание команды внутри организации<br/>- **modify_team** — Редактирование команды (модели, RPM, TPM)<br/>- **delete_team** —
Удаление команды<br/><br/>- **create_secrets** — Создание API-ключа<br/>- **update_secrets** — Обновление параметров API-ключа<br/>- **delete_secrets** — Удаление API-ключа<br/><br/>---<br/><br/>##
2. Параметры создания организации<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании организации:<br/><br/>* **Платформа для развертывания**<br/> Выбирается автоматически, изменять
не нужно.<br/><br/>* **Период бюджета**<br/> Срок жизни организации в днях.<br/> Пример: `30`<br/><br/><br/>---<br/><br/>## 3. Параметры создания команды<br/><br/>* **Имя команды**<br/> Уникальное
имя команды в рамках организации.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для команды.<br/> Пример: `gpt-oss-120b`<br/><br/>* **Лимит запросов в минуту (RPM)**<br/> Максимальное
количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих + исходящих) в минуту.<br/> Пример: `100000`<br/><br/>---<br/><br/>##
4. Параметры редактирования команды<br/><br/>Для существующей команды можно изменить:<br/><br/>* **Модель**<br/> Новая модель для команды.<br/> Пример: `gpt-oss-20b`<br/><br/>* **Лимит запросов в минуту
(RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>---<br/><br/>## 5. Параметры создания API-ключа<br/><br/>Ниже
перечислены параметры, которые необходимо указать при создании API-ключа:<br/><br/>* **Имя ключа**<br/> Уникальное имя ключа в рамках организации.<br/> Пример: `prod-key`<br/><br/>* **Команда**<br/> Имя
команды для привязки ключа. Если не указано — ключ привязывается к команде `main`.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для данного ключа.<br/> Пример: `gpt-oss-120b`<br/><br/>*
**Лимит запросов в минуту (RPM)**<br/> Максимальное количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих
+ исходящих) в минуту.<br/> Пример: `100000`<br/><br/>**Важно:** Лимиты API-ключа не могут превышать лимиты команды, к которой он привязан.<br/>При превышении операция будет отклонена с ошибкой.<br/>Перед
созданием ключа убедитесь, что `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/><br/>---<br/><br/>## 6. Параметры обновления API-ключа<br/><br/>Для уже существующего ключа можно изменить параметры. Все
параметры являются опциональными:<br/><br/>* **Имя ключа**<br/> Имя обновляемого ключа.<br/> Пример: `prod-key`<br/><br/>* **Модель**<br/> Новое название модели.<br/> Пример: `gpt-oss-20b`<br/><br/>*
**Лимит запросов в минуту (RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>**Важно:** При обновлении
лимитов API-ключа новые значения не могут превышать лимиты команды.<br/>Если указать значения выше командных, операция завершится ошибкой.<br/>Указывайте `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/>Команда
определяется автоматически по стейту услуги — изменить привязку к другой команде через эту операцию нельзя.<br/><br/>---<br/><br/>## 7. Параметры удаления API-ключа<br/><br/>* **Команда**<br/> Имя команды,
к которой привязан ключ.<br/> Пример: `production`<br/><br/>* **Имя ключа**<br/> Имя удаляемого ключа.<br/> Пример: `prod-key`<br/><br/>---<br/><br/>## 8. Параметры удаления команды<br/><br/>* **Имя
команды**<br/> Имя удаляемой команды.<br/> Пример: `production`<br/><br/>---<br/><br/>## 9. Параметры удаления организации<br/><br/>Удаление организации не требует дополнительных параметров — удаляется
вся организация со всеми командами и ключами.<br/><br/>---<br/><br/>## 10. Выходные параметры<br/><br/>После успешного создания организации платформа возвращает:<br/><br/>* **connectionUrl**<br/> URL
для доступа к inference API (OpenAI-совместимый).<br/> Пример: `https://api.aillm.ru`<br/><br/>---<br/><br/><br/>## 12. Пример использования API<br/><br/>После получения API-ключа клиент может обращаться
к LLMaaS напрямую:<br/><br/>**Запрос к chat completions:**<br/><br/>```bash<br/>curl https://api.aillm.ru/v1/chat/completions \<br/> -H "Authorization: Bearer sk-..." \<br/> -H "Content-Type: application/json"
\<br/> -d ''{<br/> "model": "gpt-oss-120b",<br/> "messages": [<br/> {"role": "user", "content": "Привет!"}<br/> ]<br/> }''<br/>```<br/><br/>**Получение списка доступных моделей:**<br/><br/>```bash<br/>curl
https://api.aillm.ru/v1/models \<br/> -H "Authorization: Bearer sk-..."<br/>```<br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 271
operation: create
kind: instance
action: create
- svcOperationId: 274
operation: create_secrets
kind: subresource
action: create
- svcOperationId: 278
operation: create_team
kind: subresource
action: create
- svcOperationId: 273
operation: delete
kind: instance
action: delete
- svcOperationId: 275
operation: delete_secrets
kind: subresource
action: delete
- svcOperationId: 280
operation: delete_team
kind: subresource
action: delete
- svcOperationId: 279
operation: modify_team
kind: subresource
action: modify
- svcOperationId: 277
operation: update_secrets
kind: subresource
action: update
stateOut:
secrets: {}
teams: {}
cfsParams:
- svcOperationCfsParamId: 826
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: llmAi.aillm.ru
isModifiable: false
valueList:
- llmAi.aillm.ru
- svcOperationCfsParamId: 833
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 834
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: false
- svcOperationCfsParamId: 835
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: false
- svcOperationCfsParamId: 857
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 859
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 858
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 860
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 861
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: false
- svcOperationCfsParamId: 862
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: false
- svcOperationCfsParamId: 836
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 876
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 868
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 864
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 865
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 873
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: true
- svcOperationCfsParamId: 874
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: true
- svcOperationCfsParamId: 852
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 853
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 854
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: true
- svcOperationCfsParamId: 855
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: true
- svcOperationCfsParamId: 875
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
271:
- 826
274:
- 833
- 834
- 835
- 857
- 859
278:
- 858
- 860
- 861
- 862
273: []
275:
- 836
- 876
280:
- 868
279:
- 864
- 865
- 873
- 874
277:
- 852
- 853
- 854
- 855
- 875
stateParams:
resourceRealm: llmAi.aillm.ru
+133
View File
@@ -0,0 +1,133 @@
name: vc_org
service_id: 19
service_display_name: Организация в Cloud Director
service_short_name: vcOrg
service_man: '# Инструкция по развертыванию Организация в Cloud Director через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Организация в Cloud Director** предназначен для управления изолированными
организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль
уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.<br/><br/>### Доступные операции<br/><br/>**create**
— Создание новой организации с заданными характеристиками и типом доступа.<br/>**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.<br/>**modify**
— Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).<br/>**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.<br/>**resume**
— Разморозка организации, восстановление функций управления.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание:
платформа, на которой будет создана организация.<br/>Пример значения: `ngcloud.ru`.<br/><br/>### Тип организации<br/>Описание: тип создаваемой организации.<br/>Варианты:<br/>- `iaas` — организация с прямым
доступом к облаку и авторизацией через Keycloak.<br/>- `saas` — организация под управлением Nubes, без прямого доступа к облаку.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.<br/><br/>### Промышленное окружение<br/>- Тип организации: `saas` (упрощённая
модель использования).<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Url организации<br/>Для
быстрого доступа в тенант<br/><br/>### Статус организации<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних IP внутри
организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный
к vdc выше.<br/>- Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов
IP, сетей, ВМок и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется
через Keycloak.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 136
operation: create
kind: instance
action: create
- svcOperationId: 283
operation: create_user
kind: subresource
action: create
- svcOperationId: 137
operation: delete
kind: instance
action: delete
- svcOperationId: 284
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 207
operation: modify
kind: instance
action: modify
- svcOperationId: 249
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 144
operation: resume
kind: instance
action: resume
- svcOperationId: 143
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 418
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: sandbox.nubes.ru
isModifiable: false
valueList:
- sandbox.nubes.ru
- svcOperationCfsParamId: 556
svcOperationCfsParam: organizationType
dataType: string
isRequired: true
defaultValue: iaas
isModifiable: false
valueList:
- iaas
- saas
- svcOperationCfsParamId: 871
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 872
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 662
svcOperationCfsParam: vIPConfigure
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
136:
- 418
- 556
283:
- 871
137: []
284:
- 872
207:
- 662
249: []
144: []
143: []
stateParams:
resourceRealm: sandbox.nubes.ru
organizationType: iaas
+314
View File
@@ -0,0 +1,314 @@
name: dummy
service_id: 1
service_display_name: Болванка
service_short_name: dummy
service_man: '## Болванка для тестов.<br/><br/>А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера. <br/><br/><br/>``` json<br/>{<br/> "iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",<br/> "idpResponse":
{<br/> "prefix": {<br/> "charset": "",<br/> "status_text": "Request Time-out",<br/> "text": true,<br/> "errordetail": "",<br/> "filecontent":
"Connection Timeout",<br/> "responseheader": {},<br/> "header": "",<br/> "statuscode": "408 Request Time-out",<br/> "status_code": 408,<br/> "mimetype":
"Unable to determine MIME type of file."<br/> }<br/> }<br/>}<br/>```'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 18
operation: create
kind: instance
action: create
- svcOperationId: 71
operation: delete
kind: instance
action: delete
- svcOperationId: 92
operation: modify
kind: instance
action: modify
- svcOperationId: 257
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 240
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 94
operation: resume
kind: instance
action: resume
- svcOperationId: 93
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 198
svcOperationCfsParam: durationMs
dataType: integer >= 0
isRequired: true
defaultValue: '0'
isModifiable: true
- svcOperationCfsParamId: 199
svcOperationCfsParam: failAtStart
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 200
svcOperationCfsParam: failInProgress
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 201
svcOperationCfsParam: whereFail
dataType: integer > 0
isRequired: false
defaultValue: '1'
isModifiable: true
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 242
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: dummy
isModifiable: false
valueList:
- dummy
- svcOperationCfsParamId: 286
svcOperationCfsParam: bodymessage
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 321
svcOperationCfsParam: mapExample
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
subparam1:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
secret:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
subparam2:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 322
svcOperationCfsParam: jsonExample
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 396
svcOperationCfsParam: nestedRefExample
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 647
svcOperationCfsParam: mapFixed
dataType: map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
bol1:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: abracadabra
isRequired: true
isModifiable: false
valueList:
- abracadabra
param1:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
param3:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 654
svcOperationCfsParam: arrayMapFixedExample
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
bol1:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- abracadabra
param1:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
param3:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 863
svcOperationCfsParam: arr
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- test
- '2'
- val1
- svcOperationCfsParamId: 287
svcOperationCfsParam: durationMs
dataType: integer >= 0
isRequired: true
defaultValue: '0'
isModifiable: true
- svcOperationCfsParamId: 288
svcOperationCfsParam: failAtStart
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 289
svcOperationCfsParam: failInProgress
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 290
svcOperationCfsParam: whereFail
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 291
svcOperationCfsParam: bodymessage
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 373
svcOperationCfsParam: mapExample
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
dataDescriptor:
secret:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 374
svcOperationCfsParam: jsonExample
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
18:
- 198
- 199
- 200
- 201
- 242
- 286
- 321
- 322
- 396
- 647
- 654
- 863
71: []
92:
- 287
- 288
- 289
- 290
- 291
- 373
- 374
257: []
240: []
94: []
93: []
stateParams:
durationMs: '0'
failAtStart: 'false'
failInProgress: 'false'
whereFail: '1'
resourceRealm: dummy
bodymessage: ''
mapExample: '{"subparam1": "", "secret": "", "subparam2": ""}'
jsonExample: ''
nestedRefExample: ''
mapFixed: '{"bol1": false, "minStr1": "abracadabra", "param1": 1, "param2": "1", "param3": 1}'
arrayMapFixedExample: '{"bol1": false, "minStr1": "", "param1": 0, "param2": "", "param3": 1}'
arr: ''
+166
View File
@@ -0,0 +1,166 @@
name: vc_vdc
service_id: 21
service_display_name: Виртуальный датацентр (vDC)
service_short_name: vc_vdc
service_man: '# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware
Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию
и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.<br/><br/>### Доступные операции<br/><br/>**create** — Создание виртуального датацентра (vDC) с заданными параметрами
CPU, RAM, Storage и сетевой конфигурацией.<br/>**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**modify** — Внесение
изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.<br/>**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.<br/>**resume**
— Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже перечислены входные параметры операции **create**.<br/><br/>###
UUID Организации<br/>Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.<br/><br/>### Provider VDC в Cloud
Director<br/>Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.<br/><br/>### Network Pool в Cloud Director<br/>Определяет возможности сетевой конфигурации,
включая создание Edge Gateway и выход во внешние сети.<br/><br/>### Гарантированная доля ЯДЕР<br/>Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово
при создании.<br/><br/>### Гарантированная доля ОЗУ<br/>Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.<br/><br/>### Сколько аллоцировать на VDC
ЯДЕР<br/>Количество виртуальных ядер, выделяемых в рамках vDC.<br/><br/>### Сколько аллоцировать на VDC ОЗУ<br/>Количество оперативной памяти в GB, выделяемой для vDC.<br/><br/>### Конфигурация Storage<br/>Набор
дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/><br/>-
Количество ядер CPU: 1020<br/>- Аллоцируемая RAM: 1664 GB<br/>- Гарантированная доля CPU: 20%<br/>- Гарантированная доля RAM: 20%<br/>- Storage:<br/>- Политика `SATA`<br/>- Объём: 100300 GB<br/><br/>###
Промышленное окружение<br/><br/>- Количество ядер CPU: 16128<br/>- Аллоцируемая RAM: 64512 GB<br/>- Гарантированная доля CPU: 50%<br/>- Гарантированная доля RAM: 50%<br/>- Storage:<br/>- Политики уровня
`SSD`<br/>- Объём: 110 TB, выбор несколько политик под разные нагрузки<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Выходные параметры формируются операцией **create** (и используются другими
операциями):<br/><br/>### Имя vDC<br/>Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).<br/><br/>### Параметры выделенных ресурсов<br/>Подтверждение
итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Перед созданием vDC необходимо обеспечить
наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.<br/>- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения
невозможно; для изменения необходимо пересоздать vDC.<br/>- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги),
поэтому необходимо убедиться, что данные перенесены.<br/>- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool
является обязательной при создании vDC.<br/>- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 9
operation: create
kind: instance
action: create
- svcOperationId: 24
operation: delete
kind: instance
action: delete
- svcOperationId: 112
operation: modify
kind: instance
action: modify
- svcOperationId: 250
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 172
operation: resume
kind: instance
action: resume
- svcOperationId: 171
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 30
svcOperationCfsParam: organizationUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 335
svcOperationCfsParam: providerVdc
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 361
svcOperationCfsParam: storageConfig
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 397
svcOperationCfsParam: cpuGuaranteed
dataType: integer > 0
isRequired: true
defaultValue: '20'
isModifiable: false
valueList:
- '20'
- '50'
- '80'
- svcOperationCfsParamId: 557
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
isRequired: true
defaultValue: '80'
isModifiable: true
- svcOperationCfsParamId: 558
svcOperationCfsParam: memAllocated
dataType: integer > 0
isRequired: true
defaultValue: '200'
isModifiable: true
- svcOperationCfsParamId: 746
svcOperationCfsParam: networkProvider
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 560
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 561
svcOperationCfsParam: memAllocated
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 562
svcOperationCfsParam: storageConfig
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
9:
- 30
- 335
- 361
- 397
- 557
- 558
- 746
24: []
112:
- 560
- 561
- 562
250: []
172: []
171: []
stateParams:
organizationUid: ''
providerVdc: ''
storageConfig: '{"name": "", "size": 2000}'
cpuGuaranteed: '20'
cpuAllocated: '80'
memAllocated: '200'
networkProvider: ''
+139
View File
@@ -0,0 +1,139 @@
name: vc_nsxt
service_id: 22
service_display_name: Сетевой шлюз периметра (Edge)
service_short_name: vc_nsxt
service_man: '# Инструкция по развертыванию Сетевой шлюз периметра (Edge) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Сетевой шлюз периметра (Edge)** предназначен для создания периметрового
сетевого шлюза в рамках одного виртуального датацентра (vDC) или группы виртуальных датацентров (groupvDC). <br/>При создании автоматически разворачивается routed-сеть с адресным пространством `10.10.102.0/24`. <br/>Сервис
обеспечивает сетевую изоляцию, маршрутизацию, а также может включать функциональность балансировщика нагрузки AVI (ALB) для последующей интеграции, включая поддержку кластеров Штурвал.<br/><br/>### Доступные
операции<br/><br/>**create** — Создание нового Edge с привязкой к vDC или groupvDC и развёртыванием routed-сети. <br/>**delete** — Удаление ранее созданного Edge. Недоступно при наличии зависимых услуг
(vApp, VM, Кластер Штурвал). <br/>**modify** — Изменение параметров и сетевых настроек существующего Edge.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже приведены параметры операции
**create**.<br/><br/>### Тип родительской услуги<br/>Определяет контекст размещения Edge. <br/>Допустимые значения: `vdc`, `groupvdc`. <br/>Использование:<br/>- При выборе `vdc` обязателен параметр
**UUID VDC**.<br/>- При выборе `groupvdc` обязателен параметр **UUID Группы VDC**.<br/><br/>### UUID VDC<br/>Идентификатор виртуального датацентра. <br/>Необходимо предварительно создать vDC через услугу
«Виртуальный датацентр (vDC)». <br/>Указывается только при выборе родительского типа `vdc`.<br/><br/>### UUID Группы VDC<br/>Идентификатор группы виртуальных датацентров. <br/>Создаётся через услугу
«Группа виртуальных датацентров (groupvDC)». <br/>Используется при выборе родительского типа `groupvdc`.<br/><br/>### Включить ALB<br/>Флаг активации AVI Load Balancer в Cloud Director. <br/>Пример
значения: `true`/`false`. <br/>Нужен для развёртывания кластера Штурвал и возможности создания Virtual Services.<br/><br/>### Наименование segroup<br/>Имя сервиса групп (segroup) на уровне ресурсной
платформы. <br/>Обязательно при включённом ALB. <br/>Определяет группу, в которой будут выделяться пулы AVI для Virtual Services.<br/><br/>### virtualServicesCount<br/>Количество резервируемых виртуальных
сервисов (Virtual Services) на AVI. <br/>Типичное значение: 1–10 в зависимости от нагрузки.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение (Test)<br/><br/>-
Тип родительской услуги: `vdc` <br/>- virtualServicesCount: 12 <br/>- ALB: выключен по умолчанию (включать только при необходимости тестирования Штурвала) <br/>- segroup: задаётся только при включённом
ALB <br/>- VDC гарантии CPU/RAM: минимальные (поскольку изменить их после создания нельзя)<br/><br/>### Промышленное окружение (Production)<br/><br/>- Тип родительской услуги: `groupvdc` при работе с
распределёнными нагрузками или `vdc` для локализованных проектов <br/>- virtualServicesCount: 310, исходя из предполагаемого количества публикаций <br/>- ALB: включён, если требуется высокая доступность
сервисов или используется кластер Штурвал <br/>- segroup: рекомендуется использовать выделенную группу под проект <br/>- VDC гарантии CPU/RAM: повышенные, с учётом того, что изменить их после создания
невозможно без пересоздания vDC<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>### Имя Edge<br/>Уникальное название созданного сетевого шлюза, используется для ссылок и дальнейших операций.<br/><br/>###
Имя routed-сети<br/>Автоматически созданная routed-сеть с подсетью `10.10.102.0/24`, используется для подключения ресурсов.<br/><br/>### Параметры Edge<br/>Набор параметров, указанных пользователем при
создании: тип услуги, ALB, segroup, virtualServicesCount и др. <br/>Используются в операциях modify и для анализа состояния сервиса.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- В
рамках сервиса **один раз при создании задаётся гарантированная доля CPU/RAM vDC**. Изменить её невозможно — требуется пересоздание vDC. <br/>- Удаление Edge недоступно при наличии зависимых ресурсов
(vApp, VM, кластер Штурвал). <br/>- При использовании ALB необходимо корректно указывать segroup, чтобы обеспечить корректное выделение пулов AVI. <br/>- При выборе режима `groupvdc` следует учитывать
распределение нагрузки между несколькими vDC. <br/>- SNAT для всех ресурсов внутри Edge можно активировать через операцию modify (параметры выделения VIP и ipSpace).<br/><br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 10
operation: create
kind: instance
action: create
- svcOperationId: 25
operation: delete
kind: instance
action: delete
- svcOperationId: 111
operation: modify
kind: instance
action: modify
- svcOperationId: 252
operation: reconcile
kind: action
action: reconcile
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 8
svcOperationCfsParam: vdcUid
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 340
svcOperationCfsParam: needEnableAVI
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 341
svcOperationCfsParam: virtualServicesCount
dataType: integer > 0
isRequired: false
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 621
svcOperationCfsParam: vdcType
dataType: string
isRequired: true
defaultValue: vdc
isModifiable: false
valueList:
- vdc
- vdcGroup
- svcOperationCfsParamId: 622
svcOperationCfsParam: vdcGroupUid
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 825
svcOperationCfsParam: qosProfile
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 368
svcOperationCfsParam: needEnableAVI
dataType: boolean
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 369
svcOperationCfsParam: virtualServicesCount
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 372
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 856
svcOperationCfsParam: qosProfile
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
10:
- 8
- 340
- 341
- 621
- 622
- 825
25: []
111:
- 368
- 369
- 372
- 856
252: []
stateParams:
vdcUid: ''
needEnableAVI: 'false'
virtualServicesCount: '1'
vdcType: vdc
vdcGroupUid: ''
qosProfile: ''
+186
View File
@@ -0,0 +1,186 @@
name: vcexternalip
service_id: 25
service_display_name: Публичные IP адреса
service_short_name: vcexternalip
service_man: '**Обычно эта услуга разворачивается автоматически при развёртывании более сложных услуг**<br/>Вручную создавать можно, однако услуга требует много параметров, о которых можно просто не знать<br/><br/>Резервировать
публичные IP адреса можно только после создания NGcloud Organization, NGcloud Виртуальный датацентр, NGcloud Каталог, Сетевой шлюз периметра.<br/>Вы можете назначить IP адрес для существующего экземпляра
сервиса.'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 56
operation: create
kind: instance
action: create
- svcOperationId: 57
operation: delete
kind: instance
action: delete
- svcOperationId: 197
operation: modify
kind: instance
action: modify
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 140
svcOperationCfsParam: serviceUid
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 141
svcOperationCfsParam: dnatCreate
dataType: boolean
isRequired: true
defaultValue: 'true'
isModifiable: true
- svcOperationCfsParamId: 142
svcOperationCfsParam: internalPortAccess
dataType: string
isRequired: true
defaultValue: '5432'
isModifiable: true
- svcOperationCfsParamId: 143
svcOperationCfsParam: snatCreate
dataType: boolean
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 144
svcOperationCfsParam: internalAddrAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 324
svcOperationCfsParam: fromServiceNamespace
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 325
svcOperationCfsParam: fromServiceCloudEdgeName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 326
svcOperationCfsParam: fromServiceCloudVdcName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 327
svcOperationCfsParam: fromServiceCloudOrgName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 328
svcOperationCfsParam: fromServiceCloudVmwareUrl
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 336
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 488
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: sandbox.nubes.ru
isModifiable: false
valueList:
- sandbox.nubes.ru
- svcOperationCfsParamId: 624
svcOperationCfsParam: fromServiceCloudEdgeScope
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 626
svcOperationCfsParam: fromServiceVdcGroupName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 627
svcOperationCfsParam: serviceUid
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 628
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 629
svcOperationCfsParam: dnatCreate
dataType: boolean
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 630
svcOperationCfsParam: snatCreate
dataType: boolean
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 631
svcOperationCfsParam: internalPortAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 632
svcOperationCfsParam: internalAddrAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
56:
- 140
- 141
- 142
- 143
- 144
- 324
- 325
- 326
- 327
- 328
- 336
- 488
- 624
- 626
57: []
197:
- 627
- 628
- 629
- 630
- 631
- 632
stateParams:
serviceUid: ''
dnatCreate: 'true'
internalPortAccess: '5432'
snatCreate: ''
internalAddrAccess: ''
fromServiceNamespace: ''
fromServiceCloudEdgeName: ''
fromServiceCloudVdcName: ''
fromServiceCloudOrgName: ''
fromServiceCloudVmwareUrl: ''
ipSpaceName: ''
resourceRealm: sandbox.nubes.ru
fromServiceCloudEdgeScope: ''
fromServiceVdcGroupName: ''
+75
View File
@@ -0,0 +1,75 @@
name: vapp
service_id: 26
service_display_name: Виртуальный каталог ВМ (vApp)
service_short_name: vapp
service_man: '# Инструкция по развертыванию Виртуальный каталог ВМ (vApp) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный каталог ВМ (vApp)** — это логическая каталог, объединённая
в единый управляемый объект. Сервис предназначен для совместного развертывания, управления жизненным циклом и сетевого взаимодействия набора связанных ВМ. Основные функции включают:<br/>- централизованное
управление включением, выключением и приостановкой группы ВМ;<br/>- унифицированный сетевой доступ через привязанный Edge-шлюз;<br/><br/>### Доступные операции<br/><br/>**create** — Создание нового vApp
с привязкой к заданным услугам VDC и Edge<br/>**delete** — Удаление существующего vApp. Требуется предварительный перевод vApp в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**suspend**
— Остановка vApp (выключение всех ВМ внутри каталога)<br/>**resume** — Запуск vApp (включение всех ВМ внутри каталога)<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры берутся из
операции **create**.<br/><br/>### UUID Услуги VDC<br/>Уникальный идентификатор услуги «Виртуальный датацентр (vDC)».<br/>Используется для определения вычислительной инфраструктуры, в которой будет развернут
vApp.<br/><br/>### UUID Услуги Edge<br/>Уникальный идентификатор услуги «Сетевой шлюз периметра (Edge)».<br/>Обеспечивает маршрутизацию и сетевое подключение. Может быть привязан к группе VDC, поэтому
выбирается отдельно.<br/><br/>### Имя vApp<br/>Строгое имя, соответствующее маске формирования DNS-имени.<br/>Используется как часть в DNS-имени при создании виртуальных машин.<br/><br/>---<br/><br/>##
3. Рекомендованные характеристики<br/>Так как является промежуточным этапом для создания ВМ, все характеристики описываются в услуге `Виртуальная машина`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>###
Параметры vApp<br/>Заданные при создании vApp<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Привязка к VDC и Edge осуществляется раздельно, поскольку один Edge может обслуживать несколько
VDC (через услугу `Группа виртуальных датацентров (groupvDC)`). Это гарантирует возможность развернуть ВМ в единой сети, но в разных виртуальных датацентрах.<br/>- Перед удалением vApp необходимо вручную
перевести его в состояние **suspend**. Удаление возможно только спустя 14 дней после этого шага.<br/>- Операция delete удаляет весь vApp полностью, включая все виртуальные машины, связанные с ним.<br/>-
Рекомендуется заранее планировать сетевые связи и назначения DNS-имён для обеспечения корректной работы сервисов, развернутых внутри vApp.<br/>- При проектировании инфраструктуры следует учитывать зависимости
между Edge-шлюзом, VDC и размещаемыми ВМ, чтобы избежать ограничений при масштабировании и интеграции.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 69
operation: create
kind: instance
action: create
- svcOperationId: 70
operation: delete
kind: instance
action: delete
- svcOperationId: 285
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 209
operation: resume
kind: instance
action: resume
- svcOperationId: 208
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 190
svcOperationCfsParam: nsxtUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 191
svcOperationCfsParam: vappName
dataType: string
isRequired: true
defaultValue: hf1t7p5c
isModifiable: false
- svcOperationCfsParamId: 623
svcOperationCfsParam: vdcUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
cfsParamsByOp:
69:
- 190
- 191
- 623
70: []
285: []
209: []
208: []
stateParams:
nsxtUid: ''
vappName: hf1t7p5c
vdcUid: ''
+52
View File
@@ -0,0 +1,52 @@
name: vc_vm_v2
service_id: 27
service_display_name: VM в Cloud Director (vc_vmV2)
service_short_name: vc_vm_v2
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 100
operation: create
kind: instance
action: create
- svcOperationId: 101
operation: delete
kind: instance
action: delete
- svcOperationId: 104
operation: modify
kind: instance
action: modify
- svcOperationId: 102
operation: resume
kind: instance
action: resume
- svcOperationId: 103
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 301
svcOperationCfsParam: serverListJson
dataType: json
isRequired: true
defaultValue: '[{}]'
isModifiable: true
- svcOperationCfsParamId: 302
svcOperationCfsParam: serverListJson
dataType: json
isRequired: true
defaultValue: '[{}]'
isModifiable: true
cfsParamsByOp:
100:
- 301
101: []
104:
- 302
102: []
103: []
stateParams:
serverListJson: '[{}]'
+298
View File
@@ -0,0 +1,298 @@
name: vc_vm_v3
service_id: 28
service_display_name: Виртуальная машина
service_short_name: vc_vm_v3
service_man: '# Документация по разворачиванию ВМ в Личном кабинете<br/><br/>Данный сервис позволяет разворачивать виртуальные машины (ВМ) непосредственно из Личного кабинета (ЛК).<br/><br/>## Доступные
операции<br/>- **create** — Создание виртуальной машины<br/>- **delete** — Удаление виртуальной машины<br/>- **resume** — Запуск виртуальной машины<br/>- **suspend** — Остановка виртуальной машины<br/><br/>---<br/><br/>##
Параметры для развёртывания ВМ<br/><br/>### Обязательные параметры:<br/><br/>**vappUid**<br/>UUID vApp, в которой будет создаваться виртуальная машина.<br/>*Пример: WZ00400*<br/><br/>**vmName**<br/>Уникальное
имя виртуальной машины.<br/>*Пример: test-vm*<br/><br/>**vmCpu**<br/>Количество ядер процессора. Должно быть больше 0.<br/>*Пример: 1*<br/><br/>**vmRam**<br/>Объем оперативной памяти в гигабайтах. Должно
быть больше 0.<br/>*Пример: 1*<br/><br/><br/>**accessPortList**<br/>Белый список портов для доступа к виртуальной машине извне в формате JSON.<br/>*Пример: ["22","10050]*<br/><br/>**imageVm**<br/>Образ
операционной системы для развёртывания.<br/>*Доступные значения: RockyLinux_9-16G-cloudinit, Ubuntu_22-20G, Debian_13-20G*<br/><br/>**userLogin**<br/>Логин пользователя для SSH-доступа.<br/>*По умолчанию:
myuser*<br/><br/>**userPublicKey**<br/>Публичный SSH-ключ пользователя в формате OpenSSH.<br/>*Пример: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...*<br/><br/>**needAddZabbixTemplate**<br/>Значение истина\ложь,
определяющее будет ли добавлен хост в zabbix.<br/>*Пример: true*<br/><br/>### Опциональные параметры:<br/><br/>**accessIpList**<br/>Белый список IP-адресов для доступа к виртуальной машине в формате JSON.
Если оставить пустым, вм будет доступена со всех адресов.<br/>*Пример: ["192.168.1.1", "10.0.0.5"]*<br/><br/>**vmDisk**<br/>Размер дополнительного диска в гигабайтах. Должно быть больше 0.<br/>*Пример:
50*<br/><br/>**ipSpaceName**<br/>Внешний IP-адрес. Если не требуется — укажите значение "no-needed" (В нем не будет работать сбор метрик zabbix). <br/><br/>**cloudInit**<br/>YAML-скрипт для кастомизации
системы через cloud-init.<br/><br/>---<br/><br/>## Доступные образы операционных систем<br/><br/>### RockyLinux_9-16G-cloudinit<br/>Базовый образ на основе Rocky Linux 9 (Rocky-9.6-x86_64-minimal) для
серверных задач.<br/>- Размер системного диска: 16 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Ubuntu_22-20G<br/>Образ на основе Ubuntu Server 22.04 LTS для
облачного окружения.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>### Debian_13-20G<br/>Образ на основе Debian 13 (Trixie) для
стабильной серверной работы.<br/>- Размер системного диска: 20 ГБ<br/>- Поддержка cloud-init<br/>- Минимальные требования: 1 vCPU, 1 ГБ RAM<br/><br/>---<br/><br/>## Пример использования Cloud-init<br/><br/>```yaml<br/>users:<br/> -
name: myuser<br/> sudo: ALL=(ALL) NOPASSWD:ALL<br/> groups: sudo<br/> shell: /bin/bash<br/> ssh-authorized-keys:<br/> - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC...<br/><br/>packages:<br/> -
nginx<br/><br/>runcmd:<br/> - systemctl enable --now nginx<br/> - systemctl restart nginx<br/>```<br/><br/>---<br/><br/>## Результат выполнения<br/><br/>После успешного развёртывания в Личном кабинете
появится новая виртуальная машина с заданными характеристиками. SSH-доступ осуществляется с использованием указанных логина и публичного ключа.<br/><br/>---<br/><br/>## Важные примечания<br/><br/>###
Особенности работы:<br/>- Для отключения внешнего IP укажите значение "no-needed" в параметре ipSpaceName<br/>- Параметр cloudInit является опциональным<br/><br/>### Ограничения:<br/>- Не рекомендуется
использовать продолжительные инструкции в cloud-init (таймаут 5 минут)<br/>- Не поддерживается запись файлов через cloud-init<br/>- Не реализовано создание резервных копий ВМ<br/><br/>---<br/><br/>##
Диагностика проблем с cloud-init<br/><br/>### Основной лог-файл:<br/>```bash<br/>/var/log/cloud-init.log<br/>```<br/><br/>### Пакет не устанавливается:<br/>- Проверьте доступность пакета в репозитории<br/>-
Убедитесь в правильности написания имени пакета<br/>- Попробуйте установить вручную: `apt install <имя_пакета>` (Debian/Ubuntu) или `dnf install <имя_пакета>` (Rocky Linux)<br/><br/>### Команда не выполняется:<br/>-
Проверьте наличие требуемой утилиты в системе<br/>- Убедитесь в правильности синтаксиса команды<br/>- Попробуйте выполнить команду вручную для диагностики'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 132
operation: create
kind: instance
action: create
- svcOperationId: 133
operation: delete
kind: instance
action: delete
- svcOperationId: 159
operation: modify
kind: instance
action: modify
- svcOperationId: 286
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 164
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 135
operation: resume
kind: instance
action: resume
- svcOperationId: 134
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 407
svcOperationCfsParam: vappUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 408
svcOperationCfsParam: vmName
dataType: string
isRequired: true
defaultValue: web01
isModifiable: false
- svcOperationCfsParamId: 409
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 410
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 411
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 412
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 413
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 414
svcOperationCfsParam: imageVm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 415
svcOperationCfsParam: cloudInit
dataType: yaml
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 416
svcOperationCfsParam: userLogin
dataType: string
isRequired: true
defaultValue: myuser
isModifiable: false
- svcOperationCfsParamId: 417
svcOperationCfsParam: userPublicKey
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 448
svcOperationCfsParam: accessPortList
dataType: string
isRequired: true
defaultValue: '["22"]'
isModifiable: true
- svcOperationCfsParamId: 493
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 494
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 495
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 496
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- no-needed
- internet-antiddos-v1
- internet-no-antiddos-v1
- internet-ipv4-v1
- svcOperationCfsParamId: 497
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 498
svcOperationCfsParam: accessPortList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 509
svcOperationCfsParam: vmName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 510
svcOperationCfsParam: vmCpu
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 511
svcOperationCfsParam: vmRam
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 512
svcOperationCfsParam: vmDisk
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 513
svcOperationCfsParam: ipSpaceName
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- no-needed
- internet-antiddos-v1
- internet-no-antiddos-v1
- internet-ipv4-v1
- svcOperationCfsParamId: 514
svcOperationCfsParam: accessIpList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 515
svcOperationCfsParam: imageVm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- RockyLinux_9-16G-cloudinit
- Ubuntu_22-20G
- Debian_13-20G
- svcOperationCfsParamId: 516
svcOperationCfsParam: userLogin
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 517
svcOperationCfsParam: userPublicKey
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 518
svcOperationCfsParam: cloudInit
dataType: yaml
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 520
svcOperationCfsParam: accessPortList
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
132:
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 448
133: []
159:
- 493
- 494
- 495
- 496
- 497
- 498
286: []
164:
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 520
135: []
134: []
stateParams:
vappUid: ''
vmName: web01
vmCpu: '1'
vmRam: '1'
vmDisk: ''
ipSpaceName: ''
accessIpList: ''
imageVm: ''
cloudInit: ''
userLogin: myuser
userPublicKey: ''
accessPortList: '["22"]'
+71
View File
@@ -0,0 +1,71 @@
name: vc_vdc_group
service_id: 29
service_display_name: Группа датацентров
service_short_name: vcVdcGroup
service_man: '# Инструкция по развертыванию Группа виртуальных датацентров (groupvDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Группа виртуальных датацентров (groupvDC)** предназначен
для логического объединения нескольких виртуальных датацентров (vDC) в единую группу. Это позволяет растягивать SDN между разными vDC и централизованно управлять сетевой связностью. Управление инфраструктурой
осуществляется через Cloud Director.<br/>Сервис применяется в случаях, когда требуется обеспечить единое сетевое пространство для распределенных виртуальных датацентров.<br/><br/>### Доступные операции<br/><br/>**create**
— Создание новой группы виртуальных датацентров.<br/>**delete** — Удаление существующей группы vDC.<br/>**add_vdc** — Добавление дополнительного виртуального датацентра в группу.<br/>**remove_vdc** —
Удаление ранее добавленного виртуального датацентра из группы.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры операции **create**:<br/><br/>### UUID VDC<br/>Идентификатор виртуального
датацентра, который будет являться первичным в группе.<br/>Описание: требуется предварительно создать виртуальный датацентр с помощью услуги `Виртуальный датацентр (vDC)`.<br/><br/>---<br/><br/>## 3.
Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Для тестового окружения создавать группу VDC нет необходимости, так как это создаёт дополнительный слой абстракции в Cloud Director<br/><br/>###
Промышленное окружение<br/>- Для промышленного окружения, если в тенанте существуют разные VDC, создание groupvdc позволит снизить сетевые издержки (за счёт общей сети)<br/><br/>---<br/><br/>## 4. Выходные
параметры<br/><br/>### Параметры groupvdc<br/>Набор параметров, указанных пользователем при создании<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>- Группа vDC используется для растягивания
SDN между несколькими виртуальными датацентрами. Управление всеми сетевыми элементами внутри группы выполняется Cloud Director.<br/>- Удалить первичный vDC (тот, что был указан при операции **create**)
невозможно. Для его удаления необходимо удалить всю группу и создать новую.<br/>- Перед добавлением любого vDC в группу он должен быть предварительно развернут через сервис `Виртуальный датацентр (vDC)`.<br/>-
Сети создаются не в этой услуге, а в услуге `Сетевой шлюз периметра (Edge)`. В ней необходимо будет выбрать тип `groupvdc`'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 192
operation: add_vdc
kind: subresource
action: add
- svcOperationId: 191
operation: create
kind: instance
action: create
- svcOperationId: 195
operation: delete
kind: instance
action: delete
- svcOperationId: 251
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 193
operation: remove_vdc
kind: subresource
action: remove
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 619
svcOperationCfsParam: vdcUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 618
svcOperationCfsParam: vdcUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 620
svcOperationCfsParam: vdcName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
192:
- 619
191:
- 618
195: []
251: []
193:
- 620
stateParams:
vdcUid: ''
+201
View File
@@ -0,0 +1,201 @@
name: template
service_id: 2
service_display_name: Темплейт k8s
service_short_name: template
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 74
operation: create
kind: instance
action: create
- svcOperationId: 75
operation: delete
kind: instance
action: delete
- svcOperationId: 76
operation: modify
kind: instance
action: modify
- svcOperationId: 298
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 98
operation: resume
kind: instance
action: resume
- svcOperationId: 97
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 813
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '128'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 814
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 815
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
type:
dataType: string
defaultValue: ingress
isRequired: true
isModifiable: false
valueList:
- ingress
- service
domain:
dataType: string
defaultValue: abracadabra-aoy3qnll
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 816
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
disk:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 817
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
type:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- ingress
- service
domain:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
74:
- 813
- 814
- 815
75: []
76:
- 816
- 817
298: []
98: []
97: []
stateParams:
clusterConfiguration: '{"cpu": 100, "disk": 5, "memory": 128, "replicas": 1}'
startupConfiguration: '{"resourceRealm": ""}'
accessConfiguration: '{"slaveAccessList": "[]", "type": "ingress", "domain": "abracadabra-aoy3qnll", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": ""}'
+428
View File
@@ -0,0 +1,428 @@
name: nextcloud
service_id: 50
service_display_name: Nextcloud
service_short_name: nextcloud
service_man: 'Ресурсная платформа: k8s. Автоматизация: helm chart'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 16
operation: create
kind: instance
action: create
- svcOperationId: 404
operation: create_backup
kind: subresource
action: create
- svcOperationId: 17
operation: delete
kind: instance
action: delete
- svcOperationId: 67
operation: modify
kind: instance
action: modify
- svcOperationId: 390
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 406
operation: recovery
kind: action
action: recovery
- svcOperationId: 66
operation: restart
kind: action
action: restart
- svcOperationId: 129
operation: resume
kind: instance
action: resume
- svcOperationId: 128
operation: suspend
kind: instance
action: suspend
stateOut:
backups: {}
cfsParams:
- svcOperationCfsParamId: 1055
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
redisUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
psqlEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
redisEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
psqlUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1056
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
valueList:
- '1000'
- '2000'
- '3000'
- '4000'
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
valueList:
- '1024'
- '2048'
- '3072'
- '4096'
- '5120'
- '6144'
- '7168'
- '8192'
- svcOperationCfsParamId: 1057
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-vjp2crbf
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1058
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: 33.0.4
isRequired: true
isModifiable: false
valueList:
- 33.0.4
documentServer:
dataType: string
defaultValue: collabora
isRequired: true
isModifiable: false
valueList:
- collabora
logLevel:
dataType: string
defaultValue: INFO
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
- svcOperationCfsParamId: 1077
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1059
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1000'
- '2000'
- '3000'
- '4000'
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1024'
- '2048'
- '3072'
- '4096'
- '5120'
- '6144'
- '7168'
- '8192'
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1060
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
logLevel:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 33.0.4
documentServer:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- collabora
- svcOperationCfsParamId: 1078
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
veleroUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
psqlEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
redisEnabled:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
psqlUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
redisUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1079
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1000'
- '2000'
- '3000'
- '4000'
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1024'
- '2048'
- '3072'
- '4096'
- '5120'
- '6144'
- '7168'
- '8192'
replicas:
dataType: integer > 0
defaultValue: 1,2
isRequired: true
isModifiable: false
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1080
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
domain:
dataType: string
defaultValue: nextcloud-dcxz2gqv
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1081
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
logLevel:
dataType: string
defaultValue: NONE
isRequired: true
isModifiable: false
valueList:
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- NONE
version:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
documentServer:
dataType: string
defaultValue: collabora
isRequired: true
isModifiable: false
valueList:
- collabora
cfsParamsByOp:
16:
- 1055
- 1056
- 1057
- 1058
404:
- 1077
17: []
67:
- 1059
- 1060
390: []
406:
- 1078
- 1079
- 1080
- 1081
66: []
129: []
128: []
stateParams:
startupConfiguration: '{"redisUid": "", "resourceRealm": "", "psqlEnabled": true, "redisEnabled": true, "psqlUid": ""}'
clusterConfiguration: '{"replicas": 1, "disk": 10, "cpu": 1000, "memory": 1024}'
accessConfiguration: '{"domain": "nextcloud-vjp2crbf"}'
appConfiguration: '{"version": "33.0.4", "documentServer": "collabora", "logLevel": "INFO"}'
+84
View File
@@ -0,0 +1,84 @@
name: superset
service_id: 81
service_display_name: Apache Superset
service_short_name: superset
service_man: 'Apache Superset как сервис. <br/>Ресурсная платформа: k8s. <br/>Автоматизация: k8s operator.<br/>Авторизация: 2FA keycloak (для доменного логина @mgmt.nubes.ru)'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 12
operation: create
kind: instance
action: create
- svcOperationId: 13
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 14
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: superset-1
isModifiable: false
- svcOperationCfsParamId: 20
svcOperationCfsParam: emails
dataType: string
isRequired: true
defaultValue: testuser1
isModifiable: false
- svcOperationCfsParamId: 96
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: false
- svcOperationCfsParamId: 97
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 98
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 109
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 227
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
cfsParamsByOp:
12:
- 14
- 20
- 96
- 97
- 98
- 109
- 227
13: []
stateParams:
domain: superset-1
emails: testuser1
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceRealm: ''
resourceInstances: '1'
+105
View File
@@ -0,0 +1,105 @@
name: harbor
service_id: 82
service_display_name: Container Registry
service_short_name: harbor
service_man: 'Расширенный реестр для управления Docker-образами с enterprise-функциями безопасности, репликации и контроля доступа.<br/>Container Registry позволяет хранить, развертывать и управлять Docker-образами
контейнеров в инфраструктуре NGcloud.<br/>Сервис можно использовать в процессе разработки контейнеров. Например, вы можете настроить систему автоматизации на работу с реестром в Container Registry в рамках
процесса непрерывной интеграции. Контейнеры идеально подходят для запуска небольших, независимых и легко изменяемых сервисов.<br/>Чтобы начать работу, создайте реестр и загрузите в него Docker-образ<br/>Авторизация:
keycloak'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 14
operation: create
kind: instance
action: create
- svcOperationId: 15
operation: delete
kind: instance
action: delete
- svcOperationId: 270
operation: modify
kind: instance
action: modify
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 16
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: harbor-1
isModifiable: false
- svcOperationCfsParamId: 110
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 228
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '100'
isModifiable: true
- svcOperationCfsParamId: 229
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '200'
isModifiable: true
- svcOperationCfsParamId: 230
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 231
svcOperationCfsParam: s3Uid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 822
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 823
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 824
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
14:
- 16
- 110
- 228
- 229
- 230
- 231
15: []
270:
- 822
- 823
- 824
stateParams:
domain: harbor-1
resourceRealm: ''
resourceCPU: '100'
resourceMemory: '200'
resourceInstances: '1'
s3Uid: ''
+177
View File
@@ -0,0 +1,177 @@
name: k8s_velero
service_id: 86
service_display_name: Velero
service_short_name: k8sVelero
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 332
operation: create
kind: instance
action: create
- svcOperationId: 331
operation: delete
kind: instance
action: delete
- svcOperationId: 334
operation: modify
kind: instance
action: modify
- svcOperationId: 336
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 335
operation: resume
kind: instance
action: resume
- svcOperationId: 333
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 962
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 963
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 964
svcOperationCfsParam: nodeAgentConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1076
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
s3BucketUid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1082
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 965
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 966
svcOperationCfsParam: nodeAgentConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
332:
- 962
- 963
- 964
- 1076
331:
- 1082
334:
- 965
- 966
336: []
335: []
333: []
stateParams:
clusterConfiguration: '{"cpu": 1000, "memory": 2048, "replicas": 1}'
startupConfiguration: '{"resourceRealm": ""}'
nodeAgentConfiguration: '{"cpu": 2000, "memory": 2048}'
backupConfiguration: '{"s3BucketUid": ""}'
+238
View File
@@ -0,0 +1,238 @@
name: flask
service_id: 89
service_display_name: Web-сервер с фреймворком Flask
service_short_name: flask
service_man: '# Инструкция по развертыванию Web-сервер с фреймворком Flask через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Web-сервер с фреймворком Flask** предназначен для развертывания
веб-приложений на базе Flask.<br/><br/>### Доступные операции<br/><br/>create — включить сервис, развернуть веб-приложение с указанными параметрами.<br/>delete — удалить сервис, только после suspend.<br/>modify
— изменить настройки сервиса и переразвернуть.<br/>suspend — выключить веб-приложение, остановить обслуживание.<br/>resume — включить веб-приложение после suspend.<br/><br/>---<br/><br/>## 2. Параметры
развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Имя домена<br/>Описание: доменное имя для доступа к веб-приложению. Если указан FQDN, происходит проверка DNS на валидность
А-записи. А-запись должна указывать на балансировщик ресурсной платформы. Если указано имя в рамках одного октета, оно будет добавлено в публичную DNS-зону.<br/>Пример значения: строка, допустимые FQDN
или имя в одном октете. Пример: example.com или myapp.<br/><br/>### Платформа для развертывания<br/>Описание: кластер Kubernetes, в котором будет развернуто приложение.<br/>Пример значения: идентификатор
кластера Kubernetes.<br/><br/>### Квота ядра пода<br/>Описание: количество CPU, выделяемое на под, в Milicores.<br/>Пример значения: целое число, например 500 для 0.5 ядра.<br/><br/>### Квота памяти пода<br/>Описание:
количество памяти, выделяемое на под, в Megabytes.<br/>Пример значения: целое число, например 512 для 512 MB.<br/><br/>### Кол-во реплик пода<br/>Описание: количество инстансов пода для масштабирования.<br/>Пример
значения: целое число, шт, например 2.<br/><br/>### URL Проекта (gitpath)<br/>Описание: полный HTTPS путь до проекта в Git-репозитории.<br/>Пример значения: URL в формате https://github.com/myuser/myproject.git.
Доступ к репозиторию должен быть публичным.<br/><br/>### URL HealthCheck<br/>Описание: путь для проверки здоровья приложения внутри пода.<br/>Пример значения: строка, путь, например /api/v1/health.<br/><br/>###
Переменные окружения пода<br/>Описание: структура данных, которая будет передана как переменные окружения в под.<br/>Пример значения: ключ-значение, например {"ENV": "production"}.<br/><br/>---<br/><br/>##
3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>- Квота ядра пода: 300m (0.3 ядра)<br/>- Квота памяти пода: 256 MB<br/>- Кол-во реплик пода: 1<br/><br/>### Промышленное окружение<br/>-
Квота ядра пода: от 1000m (1 ядро) в зависимости от нагрузки<br/>- Квота памяти пода: от 1024 MB (1 GB) с учетом потребностей приложения<br/>- Кол-во реплик пода: от 2 для обеспечения отказоустойчивости<br/><br/>---<br/><br/>##
4. Выходные параметры<br/>Операция create не возвращает явных выходных параметров. Успешное выполнение операции приводит к развертыванию сервиса, доступного по указанному домену.<br/><br/>---<br/><br/>##
5. Дополнительная информация<br/>- В корне проекта должен находиться файл requirements.txt со списком зависимостей Python.<br/>- Исходный код веб-приложения должен располагаться в директории site.<br/>-
Запуск веб-сервера осуществляется командой python app.py.<br/>- Используется версия Python: python:3.12-slim.<br/>- Git-репозиторий должен быть публично доступен для платформы.<br/>- Операция delete возможна
только после suspend.<br/>- Операция modify приводит к переразвертыванию с новыми параметрами.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 376
operation: create
kind: instance
action: create
- svcOperationId: 379
operation: delete
kind: instance
action: delete
- svcOperationId: 375
operation: modify
kind: instance
action: modify
- svcOperationId: 381
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 380
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 378
operation: resume
kind: instance
action: resume
- svcOperationId: 377
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1037
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1038
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '200'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '256'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1039
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
domain:
dataType: string
defaultValue: flask-ub0sbq5h
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1040
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '3.12'
isRequired: true
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: https://github.com/Foxyhhd/Baldurs-Gate-test.git
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1041
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
- svcOperationCfsParamId: 1042
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1043
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '3.12'
gitPath:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1044
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1045
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
376:
- 1037
- 1038
- 1039
- 1040
- 1041
379: []
375:
- 1042
- 1043
- 1044
381: []
380:
- 1045
378: []
377: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "flask-ub0sbq5h"}'
appConfiguration: '{"version": "3.12", "gitPath": "https://github.com/Foxyhhd/Baldurs-Gate-test.git", "healthPath": ""}'
jsonEnv: '{}'
+859
View File
@@ -0,0 +1,859 @@
name: postgres
service_id: 90
service_display_name: PostgreSQL
service_short_name: postgres
service_man: '# Инструкция по развертыванию PostgreSQL через платформу<br/><br/>---<br/>## 1. Общая информация<br/><br/>PostgreSQL — это надёжная объектно-реляционная СУБД с открытым исходным кодом, поддерживающая
расширенный набор функций, транзакции и хранение сложных типов данных. Развёртывание полностью автоматизировано платформой на базе Zalando Postgres Operator с использованием Kubernetes.<br/><br/>## Доступные
операции<br/><br/>- **create** — Создание кластера<br/>- **delete** — Удаление кластера<br/>- **modify** — Модификация кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** —
Запуск кластера<br/>- **restart** — Перезапуск кластера<br/>- **recovery** — Восстановление из резервной копии<br/><br/>- **create_user** — Создание пользователя<br/>- **delete_user** — Удаление
пользователя<br/><br/>- **create_database** — Создание базы данных<br/>- **delete_database** — Удаление базы данных<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/><br/>Ниже перечислены
параметры, которые необходимо указать при создании ресурса PostgreSQL:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример:
`k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество инстансов (реплик) в кластере PostgreSQL. Пример: `2` (master + slave).<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота
памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска для базы
данных:**<br/> Размер диска для хранения данных в гигабайтах. Пример: `20`<br/><br/>* **Выделяет внешний IP для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для доступа
к master. Пример: `true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/>*
**Выделяет внешний IP для доступа к slave:**<br/> Флаг для выделения внешнего IP для slave (реплики чтения). Работает, если slave присутствует в кластере.<br/><br/>* **Имя ipSpace для публикации внешнего
IP slave:**<br/> Если включен параметр для slave, то поле необходимо заполнить.<br/><br/>* **UUID экземпляра услуги S3:**<br/> UUID экземпляра S3 для хранения резервных копий.<br/><br/>* **Версия PostgreSQL:**<br/> Версия
PostgreSQL для развертывания. Пример: `16`<br/><br/>* **Расписание бэкапов (ext_BACKUP_SCHEDULE):**<br/> Необязательный. Cron-выражение для времени запуска бэкапов. По умолчанию: `0 0 * * *` (ежедневно
в полночь).<br/><br/>* **Количество сохраняемых бэкапов (ext_BACKUP_NUM_TO_RETAIN):**<br/> Необязательный. Количество сохраняемых бэкапов. По умолчанию: `7`<br/><br/>* **PgPooler (master / slave):**<br/> Флаги
включения PgBouncer для подключений на запись и чтение. При включении создаётся отдельный под.<br/><br/>* **Разрешить подключение без SSL (allowNoSSL):**<br/> По умолчанию подключение с sslmode=require.
При `true` разрешается подключение без SSL.<br/><br/>* **Автоскейлинг PV (autoScale):**<br/> Включает автоскейлинг тома. Требует настройки autoScalePercentage, autoScaleTechWindow, autoScaleQuotaGb.<br/><br/>*
**Дополнительные параметры PostgreSQL (jsonParameters):**<br/> JSON с переменными конфигурации PostgreSQL. Документация: https://www.postgresql.org/docs/current/runtime-config.html<br/><br/>---<br/>##
3. Выходные параметры<br/><br/>После успешного развертывания ресурса PostgreSQL платформа возвращает ряд параметров.<br/><br/>#### externalConnect<br/><br/>Внешние эндпоинты для подключения к кластеру:<br/>-
**master** — для операций записи (host: `write.${namespace}`, port: 5432)<br/>- **slave** — для операций чтения (host: `read.${namespace}`, port: 5432)<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave":
{<br/> "ip": "",<br/> "fqdn": "",<br/> "uuid": "",<br/> "isExternal": false<br/> },<br/> "master": {<br/> "ip": "<ip>",<br/> "fqdn": "write.<namespace>.<cluster-domain>",<br/> "uuid":
"<uuid>",<br/> "isExternal": false<br/> }<br/>}<br/>```<br/><br/>Поля: `ip` — внешний IP; `fqdn` — полное имя хоста; `uuid` — идентификатор; `isExternal` — признак внешнего доступа.<br/><br/>####
internalConnect<br/><br/>Внутренние эндпоинты (FQDN) для подключения из других сервисов внутри той же сети Kubernetes.<br/><br/>Пример ответа платформы:<br/><br/>```json<br/>{<br/> "slave": "",<br/> "master":
{<br/> "slave": "",<br/> "master": {<br/> "slave": "",<br/> "master": "postgresqlk8s-master.<namespace>.svc.cluster.local"<br/> }<br/> }<br/>}<br/>```<br/><br/>Для подключения используйте
значение `master.master.master` (host для записи) или соответствующее значение slave (host для чтения).<br/><br/>Для подключения используется порт **5432**.<br/><br/>---<br/>## 4. Управление пользователями<br/><br/>###
create_user — Создание пользователя<br/><br/>* **Имя пользователя (username):**<br/> Имя создаваемого пользователя. Используется для подключения к базе и настройки прав.<br/> Пример: `myapp_user`<br/><br/>*
**Роль (role):**<br/> Тип роли пользователя. Допустимые значения:<br/> - `app_user` — базовые права для DML-операций (SELECT, INSERT, UPDATE, DELETE)<br/> - `ddl_user` — расширенные права: createdb,
createrole (управление базами и ролями)<br/><br/>Защищённые имена, которые нельзя использовать: `admin`, `postgres`, `standby`.<br/><br/>### delete_user — Удаление пользователя<br/><br/>* **Имя пользователя
(username):**<br/> Имя удаляемого пользователя. Пример: `myapp_user`<br/><br/>Пользователя нельзя удалить, если он является владельцем базы данных. Сначала удалите или передайте владение базами данных
другому пользователю.<br/><br/>---<br/>## 5. Управление базами данных<br/><br/>### create_database — Создание базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название создаваемой базы данных.
Пример: `myapp_db`<br/><br/>* **Владелец базы данных (dbOwner):**<br/> Имя пользователя-владельца базы. Должен существовать в кластере (создан через create_user). Пример: `myapp_user`<br/><br/>### delete_database
— Удаление базы данных<br/><br/>* **Имя базы данных (dbName):**<br/> Название удаляемой базы данных. Пример: `myapp_db`<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 19
operation: create
kind: instance
action: create
- svcOperationId: 264
operation: create_backup
kind: subresource
action: create
- svcOperationId: 245
operation: create_database
kind: subresource
action: create
- svcOperationId: 241
operation: create_user
kind: subresource
action: create
- svcOperationId: 20
operation: delete
kind: instance
action: delete
- svcOperationId: 246
operation: delete_database
kind: subresource
action: delete
- svcOperationId: 244
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 48
operation: modify
kind: instance
action: modify
- svcOperationId: 263
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 47
operation: recovery
kind: action
action: recovery
- svcOperationId: 54
operation: restart
kind: action
action: restart
- svcOperationId: 114
operation: resume
kind: instance
action: resume
- svcOperationId: 115
operation: suspend
kind: instance
action: suspend
stateOut:
backups: {}
databases: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 788
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 789
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 790
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 791
svcOperationCfsParam: postgresConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '17'
isRequired: true
isModifiable: false
valueList:
- '17'
- '16'
sslRequired:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerMaster:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerSlave:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 792
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- log_connections
- log_disconnections
paramValue:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 793
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '7'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 794
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1094
svcOperationCfsParam: mtlsConfiguration
dataType: map-fixed
isRequired: true
defaultValue: '{}'
isModifiable: true
dataDescriptor:
certServer:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
type:
dataType: string
defaultValue: 'off'
isRequired: true
isModifiable: false
valueList:
- 'off'
- manual
- auto
durationCA:
dataType: integer > 0
defaultValue: '175200'
isRequired: true
isModifiable: false
durationServer:
dataType: integer > 0
defaultValue: '87600'
isRequired: true
isModifiable: false
certCA:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 741
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 742
svcOperationCfsParam: dbOwner
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 733
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 740
svcOperationCfsParam: role
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- app_user
- ddl_user
- svcOperationCfsParamId: 1096
svcOperationCfsParam: mtlsAccess
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 457
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
isRequired: true
defaultValue: 'true'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 743
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 739
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 795
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 796
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 797
svcOperationCfsParam: postgresConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '17'
- '16'
sslRequired:
dataType: boolean
defaultValue: false,true
isRequired: true
isModifiable: false
poolerMaster:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerSlave:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 798
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramValue:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
paramName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- log_connections
- log_disconnections
- svcOperationCfsParamId: 799
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 800
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
- svcOperationCfsParamId: 1095
svcOperationCfsParam: mtlsConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
durationCA:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
durationServer:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
certCA:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
certServer:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
refreshCert:
dataType: boolean
defaultValue: 'false'
isRequired: false
isModifiable: false
valueList:
- 'false'
- 'true'
type:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'off'
- manual
- auto
- svcOperationCfsParamId: 801
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
recoveryPoint:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 802
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 803
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 804
svcOperationCfsParam: postgresConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '17'
isRequired: true
isModifiable: false
valueList:
- '17'
- '16'
sslRequired:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerMaster:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
poolerSlave:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 805
svcOperationCfsParam: postgresConf
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
paramName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- log_connections
- log_disconnections
paramValue:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 806
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '7'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 807
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
cfsParamsByOp:
19:
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 1094
264: []
245:
- 741
- 742
241:
- 733
- 740
- 1096
20:
- 457
246:
- 743
244:
- 739
48:
- 795
- 796
- 797
- 798
- 799
- 800
- 1095
263: []
47:
- 801
- 802
- 803
- 804
- 805
- 806
- 807
54: []
114: []
115: []
stateParams:
clusterConfiguration: '{"replicas": 1, "disk": 10, "cpu": 500, "memory": 512}'
startupConfiguration: '{"resourceRealm": ""}'
accessConfiguration: '{"slaveAccessList": "[]", "masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": ""}'
postgresConfiguration: '{"version": "17", "sslRequired": true, "poolerMaster": false, "poolerSlave": false}'
postgresConf: '{"paramName": "", "paramValue": ""}'
backupConfiguration: '{"s3Uid": "", "retain": 7, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"percent": 10, "enabled": false, "schedule": 0, "quota": 100}'
mtlsConfiguration: '{"certServer": "", "type": "off", "durationCA": 175200, "durationServer": 87600, "certCA": ""}'
+186
View File
@@ -0,0 +1,186 @@
name: redis
service_id: 91
service_display_name: Redis
service_short_name: redis
service_man: 'Redis кластер. Под кеши. <br/>Ресурсная платформа: k8s. <br/>Автоматизация: k8s operator<br/>port 6379'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 21
operation: create
kind: instance
action: create
- svcOperationId: 22
operation: delete
kind: instance
action: delete
- svcOperationId: 394
operation: modify
kind: instance
action: modify
- svcOperationId: 391
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 393
operation: resume
kind: instance
action: resume
- svcOperationId: 392
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1061
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1062
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1063
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1064
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1065
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
slaveIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
slaveAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
21:
- 1061
- 1062
- 1063
22: []
394:
- 1064
- 1065
391: []
393: []
392: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]", "slaveIpSpace": "", "slaveAccessList": "[]"}'
+267
View File
@@ -0,0 +1,267 @@
name: mongodb
service_id: 92
service_display_name: MongoDB
service_short_name: mongodb
service_man: '# Инструкция по развертыванию MongoDB через платформу<br/><br/>## 1. Общая информация<br/><br/>MongoDB — документоориентированная распределённая база данных, обеспечивающая высокую доступность,
горизонтальное масштабирование и гибкую модель хранения.<br/><br/>### Доступные операции с кластером<br/><br/>* **create** — создание базы<br/>* **delete** — удаление базы данных<br/>* **suspend** —
остановка базы данных<br/>* **resume** — запуск базы данных<br/>* **modify** — изменение базы данных<br/><br/>### Доступные операции с пользователями<br/><br/>* **create_user** — создание пользователя<br/>*
**modify_user** — модификация пользователя<br/>* **delete_user** — удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры развертывания базы данных<br/><br/>Эти параметры необходимо указать при создании
базы данных.<br/><br/>### Платформа для развертывания<br/><br/>Среда, в которой будет развернут кластер. Выбирается из предложенного списка.<br/><br/>### Количество узлов<br/><br/>Количество реплик в
кластере MongoDB.<br/>Оптимально выбирать нечётное значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.<br/><br/>>
**Примечание:** уменьшение количества узлов после создания кластера не рекомендуется.<br/><br/>### Квота памяти пода (MB)<br/><br/>Объём памяти для одного пода в мегабайтах.<br/>Пример: `2048`<br/><br/>###
Квота CPU пода (mCPU)<br/><br/>CPU-квота для пода в миликорах (1000 mCPU = 1 vCPU).<br/>Пример: `1000`<br/><br/>### Размер диска для базы данных (GB)<br/><br/>Объём диска для хранения данных в гигабайтах.<br/>Пример:
`20`<br/><br/>### Имя ipSpace для публикации внешнего IP<br/><br/>Имя ipSpace, через который будет выделен внешний IP для доступа к master-узлу.<br/>Укажите `no-needed`, если внешний адрес не требуется.<br/>Пример:
`internet-no-antiddos-v1`<br/><br/>### Список разрешённых IP-адресов<br/><br/>Список IP-адресов или подсетей, с которых разрешён доступ к кластеру.<br/>Если оставить пустым — доступ открыт для всех источников.<br/>Пример:
`["10.0.0.0/24", "192.168.1.10/32"]`<br/><br/>---<br/><br/>## 3. Параметры модификации базы данных<br/><br/>Все параметры, которые вы указываете при модификации, являются необязательными — система автоматически
подставит ранее сохранённые значения, и при необходимости вы можете изменить их на нужные.<br/><br/>### Количество узлов<br/><br/>Количество реплик в кластере MongoDB.<br/>Оптимально выбирать нечётное
значение, так как это обеспечивает корректный процесс выбора ведущего узла и сохраняет работоспособность базы данных даже при отказе одной из нод.<br/><br/>> **Примечание:** уменьшение количества узлов
после создания кластера не рекомендуется.<br/><br/>### Квота памяти пода (MB)<br/><br/>Объём памяти для одного пода в мегабайтах.<br/>Пример: `2048`<br/><br/>### Квота CPU пода (mCPU)<br/><br/>CPU-квота
для пода в миликорах (1000 mCPU = 1 vCPU).<br/>Пример: `1000`<br/><br/>### Размер диска для базы данных (GB)<br/><br/>Объём диска для хранения данных указывается в гигабайтах. Его можно увеличить при
необходимости, однако уменьшить уже выделенный размер невозможно.<br/>Пример: `20`<br/><br/>### Имя ipSpace для публикации внешнего IP<br/><br/>Имя ipSpace, через который будет выделен внешний IP для
доступа к master-узлу.<br/>Укажите `no-needed`, если внешний адрес не требуется.<br/>Пример: `internet-no-antiddos-v1`<br/><br/>### Список разрешённых IP-адресов<br/><br/>Список IP-адресов или подсетей,
с которых разрешён доступ к кластеру.<br/>Если оставить пустым — доступ открыт для всех источников.<br/>Пример: `["10.0.0.0/24", "192.168.1.10/32"]`<br/><br/>---<br/><br/>## 3. Параметры создания пользователя<br/><br/>###
Имя пользователя<br/><br/>Указывается имя пользователя (любой регистр).<br/>Пример: `readApp`<br/><br/>### Имя базы данных<br/><br/>Название базы, в которой будет создан пользователь.<br/>Если база отсутствует,
она будет создана автоматически.<br/>Пример: `Apps_9392`<br/><br/>### Имя роли<br/><br/>* **read** — доступ только на чтение<br/>* **readWrite** — чтение и изменение данных<br/>* **dbOwner** — полный
контроль над базой данных<br/><br/>---<br/><br/>## 4. Параметры модификации пользователя<br/><br/>### Имя пользователя<br/><br/>Необходимо выбрать существующего пользователя.<br/>Если список пуст, требуется
предварительно создать пользователя.<br/><br/>### Имя базы данных<br/><br/>База данных, к которой относится пользователь.<br/>Если база отсутствует, она будет создана автоматически.<br/>Пример: `Apps_9392`<br/><br/>###
Имя роли<br/><br/>* **read**<br/>* **readWrite**<br/>* **dbOwner**<br/><br/>---<br/><br/>## 5. Параметры удаления пользователя<br/><br/>### Имя пользователя<br/><br/>Выберите пользователя из списка для
удаления.<br/><br/>---<br/><br/>## 6. Выходные параметры<br/><br/>После успешного развертывания базы данных платформа возвращает ключевые параметры.<br/><br/>### internalConnect<br/><br/>Внутренний эндпоинт
для подключения к кластеру из сервисов, работающих в той же сети.<br/>Используется для внутренних интеграций и системных сервисов.<br/><br/>### externalConnect<br/><br/>Внешний FQDN для подключения к
кластеру извне.<br/>Порт подключения — **27017**.<br/><br/>---<br/><br/>## 7. Пример подключения<br/><br/>Перед подключением необходимо установить **mongosh**.<br/><br/>Команда подключения к базе данных:<br/><br/>```<br/>mongosh
"mongodb://<username>:<password>@<endpoint_db>:27017/<dbName>"<br/>```<br/><br/>Где:<br/><br/>* `<username>` — имя пользователя<br/>* `<password>` — пароль<br/>* `<endpoint_db>` — internalConnect или
externalConnect<br/>* `<dbName>` — имя базы данных<br/><br/>## 8. Дополнительная информация<br/><br/>Сейчас соединение с базой работает без шифрования, и доступ к кластеру осуществляется только по логину
и паролю.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 37
operation: create
kind: instance
action: create
- svcOperationId: 198
operation: create_user
kind: subresource
action: create
- svcOperationId: 190
operation: delete
kind: instance
action: delete
- svcOperationId: 199
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 201
operation: modify
kind: instance
action: modify
- svcOperationId: 200
operation: modify_user
kind: subresource
action: modify
- svcOperationId: 409
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 196
operation: resume
kind: instance
action: resume
- svcOperationId: 194
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 1089
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1090
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1091
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 635
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 636
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 643
svcOperationCfsParam: role
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- dbOwner
- read
- readWrite
- svcOperationCfsParamId: 644
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1092
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1093
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 640
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 641
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 642
svcOperationCfsParam: role
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- dbOwner
- read
- readWrite
cfsParamsByOp:
37:
- 1089
- 1090
- 1091
198:
- 635
- 636
- 643
190: []
199:
- 644
201:
- 1092
- 1093
200:
- 640
- 641
- 642
409: []
196: []
194: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
+196
View File
@@ -0,0 +1,196 @@
name: rabbitmq
service_id: 93
service_display_name: RabbitMQ
service_short_name: rabbitmq
service_man: '# Инструкция по развертыванию RabbitMQ через платформу<br/><br/>---<br/>## 1. Общая информация<br/>RabbitMQ — это брокер сообщений с открытым исходным кодом, который обеспечивает надёжную
доставку сообщений между приложениями.<br/>Позволяет надёжно передавать сообщения между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние, так и защищённые TLS-подключения.
Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>- **create** — Создание кластера<br/>- **modify** — Изменение параметров кластера<br/>- **delete** — Удаление
кластера<br/>- **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/><br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо
указать при создании ресурса RabbitMQ:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>*
**Количество узлов в сети:**<br/> Количество реплик в кластере RabbitMQ. При значении больше 1 создаётся кластер с репликацией для обеспечения высокой доступности.<br/> Пример: `1` (single node) или
`3` (кластер с репликацией)<br/><br/>* **Квота (megabyte) памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах
(1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска для базы данных:**<br/> Размер диска для хранения данных RabbitMQ в гигабайтах. Пример: `50`<br/><br/>* **Выделяет внешний IP
для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-узлу. При включении создаётся Service типа LoadBalancer и настраивается VIP на порту 5672.<br/> Пример:
`true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP master:**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/><br/>---<br/>##
3. Модификация кластера<br/>Операция **modify** позволяет изменить параметры существующего кластера RabbitMQ.<br/><br/>**Изменяемые параметры:**<br/>* **Квота (megabyte) памяти пода** — можно увеличить
или уменьшить<br/>* **Квота (millicore) ядра пода** — можно увеличить или уменьшить<br/>* **Размер (gigabyte) диска для базы данных** — можно только увеличить (уменьшение не поддерживается)<br/>* **Количество
узлов в сети** — можно только увеличить (уменьшение не поддерживается)<br/>* **Выделяет внешний IP для доступа к master** — можно включить или выключить<br/>* **Имя ipSpace для публикации внешнего IP
master** — можно изменить при включенном внешнем IP<br/><br/>**Ограничения:**<br/>* Уменьшение размера диска не поддерживается<br/>* Уменьшение количества реплик не поддерживается<br/><br/>---<br/>##
4. Выходные параметры<br/>После успешного развертывания ресурса RabbitMQ платформа возвращает ряд параметров в разделе "Поля состояния (сгенерированные значения)":<br/><br/>**clusterDomain**<br/>Домен
кластера Kubernetes, в котором развернут RabbitMQ.<br/>Пример: `cluster.local`<br/><br/>**inernalConnect**<br/>Внутренние эндпоинты для подключения к кластеру RabbitMQ из других сервисов, развернутых
внутри той же сети.<br/>Содержит:<br/>* **master** — FQDN для подключения к кластеру. Пример: `rabbitmqk8s.{namespace}.svc.{clusterDomain}`<br/><br/>**externalConnect**<br/>Внешние эндпоинты для подключения
к кластеру RabbitMQ извне.<br/>Содержит объекты с полями:<br/>* **admin** — доступ к веб-интерфейсу управления:<br/> * `fqdn` — полное доменное имя для веб-интерфейса. Пример: `admin.{namespace}.{domain}`<br/> *
`ip` — IP-адрес<br/>* **master** — доступ к AMQP протоколу (если включен внешний IP):<br/> * `fqdn` — полное доменное имя для AMQP. Пример: `write.{namespace}.{domain}`<br/> * `ip` — IP-адрес<br/><br/>**monitoring**<br/>Информация
о дашбордах мониторинга:<br/>* **allDashboards** — URL для доступа ко всем дашбордам Grafana<br/><br/>Для подключения используются следующие порты:<br/><br/>* **5672** — AMQP протокол (внутренний и внешний
доступ, если включен внешний IP)<br/>* **15672** — веб-интерфейс управления (доступен через Ingress по HTTPS)<br/><br/>**Учётные данные**<br/>Данные для подключения к RabbitMQ доступны в разделе "Учётные
данные":<br/>* **adminUser** — имя пользователя администратора<br/>* **adminPass** — пароль администратора<br/><br/><br/>---<br/>## 5. Примеры подключения через консоль (rabbitmqadmin)<br/><br/>### Работа
с очередями через rabbitmqadmin<br/><br/>Для работы с RabbitMQ через консоль используется утилита `rabbitmqadmin`. Установите её или используйте образ с предустановленной утилитой.<br/><br/>Задайте переменные
окружения с учётными данными:<br/><br/>```bash<br/>export RABBITMQ_USERNAME=<adminUser><br/>export RABBITMQ_PASSWORD=<adminPass><br/>export RABBIT_HOST=<host><br/>```<br/><br/>Где:<br/>* `<adminUser>`
и `<adminPass>` — учётные данные из раздела "Учётные данные"<br/>* `<host>` — адрес для подключения:<br/> * Для внешнего подключения: `externalConnect.admin.fqdn` или `externalConnect.master.fqdn`<br/><br/>**Создание
очереди:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> declare queue name=healthcheck durable=false<br/>```<br/><br/>**Листинг
очередей:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> list queues<br/>```<br/><br/>**Отправка сообщения:**<br/><br/>```bash<br/>rabbitmqadmin
\<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> publish exchange=amq.default routing_key=healthcheck payload="ping-$(date +%s)"<br/>```<br/><br/>**Чтение
сообщения:**<br/><br/>```bash<br/>rabbitmqadmin \<br/> -H "$RABBIT_HOST" -P 15672 \<br/> -u "$RABBITMQ_USERNAME" -p "$RABBITMQ_PASSWORD" \<br/> get queue=healthcheck ackmode=ack_requeue_false<br/>```<br/><br/>---<br/>##
6. Дополнительная информация<br/>Для подключения к кластеру RabbitMQ используйте полученные эндпоинты из раздела "Поля состояния (сгенерированные значения)" и учётные данные из раздела "Учётные данные".<br/><br/>Веб-интерфейс
управления доступен по адресу, указанному в параметре `externalConnect.admin.fqdn` через HTTPS.<br/><br/>Для внутреннего подключения используйте адрес из `inernalConnect.master` на порту 5672.<br/><br/>---'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 38
operation: create
kind: instance
action: create
- svcOperationId: 39
operation: delete
kind: instance
action: delete
- svcOperationId: 106
operation: modify
kind: instance
action: modify
- svcOperationId: 410
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 117
operation: resume
kind: instance
action: resume
- svcOperationId: 116
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1097
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1098
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '1024'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '5'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1099
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1100
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1101
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
38:
- 1097
- 1098
- 1099
39: []
106:
- 1100
- 1101
410: []
117: []
116: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 1024, "replicas": 1, "disk": 5}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
+228
View File
@@ -0,0 +1,228 @@
name: lucee
service_id: 94
service_display_name: Lucee
service_short_name: lucee
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 49
operation: create
kind: instance
action: create
- svcOperationId: 50
operation: delete
kind: instance
action: delete
- svcOperationId: 55
operation: modify
kind: instance
action: modify
- svcOperationId: 373
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 53
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 163
operation: restart
kind: action
action: restart
- svcOperationId: 95
operation: resume
kind: instance
action: resume
- svcOperationId: 96
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1019
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1020
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '200'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '256'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1021
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
domain:
dataType: string
defaultValue: lucee-tepsq9jk
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1022
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '6.0'
isRequired: true
isModifiable: false
valueList:
- '5.4'
- '6.0'
gitPath:
dataType: string
defaultValue: https://github.com/xahys/testlucee
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1023
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
- svcOperationCfsParamId: 1024
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1025
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '6.0'
- '5.4'
gitPath:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1026
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1027
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
49:
- 1019
- 1020
- 1021
- 1022
- 1023
50: []
55:
- 1024
- 1025
- 1026
373: []
53:
- 1027
163: []
95: []
96: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "lucee-tepsq9jk"}'
appConfiguration: '{"version": "6.0", "gitPath": "https://github.com/xahys/testlucee", "healthPath": ""}'
jsonEnv: '{}'
+229
View File
@@ -0,0 +1,229 @@
name: nodejs
service_id: 95
service_display_name: NodeJS
service_short_name: nodejs
service_man: Развертывает контейнер в k8s кластере с node, который можно использовать для запуска своих приложений.<br/>Приложение должно быть доступно по ссылки в git репозитории, которая является входным
параметром.
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 58
operation: create
kind: instance
action: create
- svcOperationId: 61
operation: delete
kind: instance
action: delete
- svcOperationId: 59
operation: modify
kind: instance
action: modify
- svcOperationId: 374
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 60
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 121
operation: resume
kind: instance
action: resume
- svcOperationId: 120
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 1028
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 1029
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '200'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '256'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1030
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
domain:
dataType: string
defaultValue: node-btf263ja
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1031
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '23'
isRequired: true
isModifiable: false
valueList:
- '18'
- '20'
- '22'
- '23'
gitPath:
dataType: string
defaultValue: https://github.com/xahys/testnode.git
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1032
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
- svcOperationCfsParamId: 1033
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 1034
svcOperationCfsParam: appConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '18'
- '20'
- '22'
- '23'
gitPath:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
healthPath:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 1035
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1036
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
58:
- 1028
- 1029
- 1030
- 1031
- 1032
61: []
59:
- 1033
- 1034
- 1035
374: []
60:
- 1036
121: []
120: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 200, "memory": 256, "replicas": 1}'
accessConfiguration: '{"domain": "node-btf263ja"}'
appConfiguration: '{"version": "23", "gitPath": "https://github.com/xahys/testnode.git", "healthPath": ""}'
jsonEnv: '{}'
+137
View File
@@ -0,0 +1,137 @@
name: pgadmin
service_id: 96
service_display_name: pgAdmin
service_short_name: pgadmin
service_man: Инструмент с графическим интерфейсом для управления базами данных PostgreSQL
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 62
operation: create
kind: instance
action: create
- svcOperationId: 63
operation: delete
kind: instance
action: delete
- svcOperationId: 64
operation: modify
kind: instance
action: modify
- svcOperationId: 65
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 123
operation: resume
kind: instance
action: resume
- svcOperationId: 122
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 164
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: pgadmin-1
isModifiable: false
- svcOperationCfsParamId: 165
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 166
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 167
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 169
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 170
svcOperationCfsParam: login
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 171
svcOperationCfsParam: password
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 172
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 173
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 174
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: false
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 277
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
62:
- 164
- 165
- 166
- 167
- 169
- 170
- 171
63: []
64:
- 172
- 173
- 174
65:
- 277
123: []
122: []
stateParams:
domain: pgadmin-1
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceRealm: ''
login: ''
password: ''
+149
View File
@@ -0,0 +1,149 @@
name: http
service_id: 98
service_display_name: Простой HTTP контейнер
service_short_name: http
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 77
operation: create
kind: instance
action: create
- svcOperationId: 78
operation: delete
kind: instance
action: delete
- svcOperationId: 81
operation: modify
kind: instance
action: modify
- svcOperationId: 403
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 79
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 130
operation: resume
kind: instance
action: resume
- svcOperationId: 131
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 212
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: http-1
isModifiable: false
- svcOperationCfsParamId: 213
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '100'
isModifiable: true
- svcOperationCfsParamId: 214
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '200'
isModifiable: true
- svcOperationCfsParamId: 215
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 216
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
- svcOperationCfsParamId: 217
svcOperationCfsParam: registryPath
dataType: string
isRequired: true
defaultValue: nexus-sa.tst.nubes.ru/docker-nubes/jolt
isModifiable: false
- svcOperationCfsParamId: 241
svcOperationCfsParam: jsonEnv
dataType: map
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 782
svcOperationCfsParam: ingressAnnotations
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: false
- svcOperationCfsParamId: 218
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 219
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 220
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 272
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- iot-naeel
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- naeel-test-3
cfsParamsByOp:
77:
- 212
- 213
- 214
- 215
- 216
- 217
- 241
- 782
78: []
81:
- 218
- 219
- 220
403: []
79:
- 272
130: []
131: []
stateParams:
domain: http-1
resourceCPU: '100'
resourceMemory: '200'
resourceInstances: '1'
resourceRealm: ''
registryPath: nexus-sa.tst.nubes.ru/docker-nubes/jolt
jsonEnv: ''
ingressAnnotations: '{}'
+164
View File
@@ -0,0 +1,164 @@
name: gitea
service_id: 99
service_display_name: Gitea
service_short_name: gitea
service_man: '# Инструкция по развертыванию Gitea через платформу<br/><br/>---<br/>## 1. Общая информация<br/>Gitea — это лёгкий, быстрый и самодостаточный сервис хостинга Git-репозиториев с веб-интерфейсом.<br/>Позволяет
создавать и управлять репозиториями, организациями, командами, а также настраивать CI/CD через интеграции.<br/>Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>-
**create** — Создание сервиса Gitea<br/>- **delete** — Удаление сервиса Gitea<br/>- **modify** — Модификация сервиса Gitea<br/>- **suspend** — Остановка сервиса Gitea<br/>- **resume** —
Запуск сервиса Gitea<br/><br/>---<br/>## 2. Параметры развертывания<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Gitea:<br/><br/>* **Платформа для развертывания:**<br/> Платформа
для развертывания (среда, в которой будет развёрнут сервис). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество реплик подов Gitea. Пример: `1`<br/><br/>* **Квота (megabyte)
памяти пода:**<br/> Квота памяти пода в мегабайтах. Пример: `1024`<br/><br/>* **Квота (millicore) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Размер
(gigabyte) диска для базы данных:**<br/> Размер PVC для хранения репозиториев и данных Gitea в гигабайтах. Пример: `10`<br/><br/>* **FQDN / Домен:**<br/> Доменное имя, по которому будет доступен сервис.
Пример: `git.example.com`<br/><br/>* **Инстанс услуги PostgreSQL:**<br/> UUID услуги k8sPgsql, в которой будет создана база данных `gitea` и пользователь `techgitea`.<br/><br/>* **Дополнительные параметры
сервера (iniServerParams):**<br/> JSON-объект с дополнительными параметрами секции `[server]` в `app.ini`. Пример:<br/> ```json<br/> {"MAX_CONTENT_LENGTH": "524288000"}<br/> ```<br/><br/>* **Дополнительные
annotations для Ingress (ingressExtraAnnotations):**<br/> JSON-объект с дополнительными annotations для Ingress-контроллера. Пример:<br/> ```json<br/> {"nginx.ingress.kubernetes.io/proxy-body-size":
"500m"}<br/> ```<br/><br/>---<br/>## 3. Особенности подключения и работы с репозиториями<br/><br/>### 3.1. Доступ только по HTTPS<br/>Сервис развёртывается с **rootless-образом** Gitea. SSH-сервер внутри
и он **доступен только внутри кластера Kubernetes**.<br/><br/>**Внешний доступ к репозиториям осуществляется исключительно по HTTPS через Ingress.**<br/><br/>```bash<br/># Пример клонирования<br/>https://<домен>/<пользователь>/<репозиторий>.git<br/>```<br/><br/>###
3.2. Настройка git для передачи логина и пароля<br/>Для работы с приватными репозиториями через HTTPS необходимо передать учётные данные. Рекомендуется использовать один из следующих способов:<br/><br/>**Встроить
креды в URL remote**<br/>```bash<br/>git remote set-url origin https://<логин>:<пароль>@<домен>/<пользователь>/<репозиторий>.git<br/>```<br/>> **Важно:** Логин и пароль администратора создаются автоматически
при развертывании и хранятся в Vault.<br/><br/>### 3.3. Работа с большими файлами<br/>По умолчанию `MAX_CONTENT_LENGTH` установлен в **500 МБ**, а Ingress пропускает pack-файлы до **500 МБ**.<br/><br/>Если
необходимо запушить файлы близкие к лимиту, увеличьте HTTP-буфер git на стороне клиента:<br/>```bash<br/>git config http.postBuffer 524288000<br/>```<br/><br/>Для файлов **более 500 МБ** рекомендуется
использовать **Git LFS**.<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Gitea платформа возвращает ряд параметров.<br/><br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это
внешний URL для доступа к веб-интерфейсу и Git-репозиториям по HTTPS. Пример:<br/>```<br/>https://git.example.com<br/>```<br/><br/>**internalConnect**<br/>Внутренний эндпоинт для подключения к PostgreSQL
из других сервисов внутри кластера.<br/><br/>---<br/>## 5. Дополнительная информация<br/>- База данных `gitea` и пользователь `techgitea` создаются автоматически в указанной услуге PostgreSQL.<br/>- DNS-запись
и TLS-сертификат (Let''s Encrypt) настраиваются автоматически на основе указанного домена.<br/>- Для изменения параметров сервера Gitea (`app.ini`) используйте операцию **modify** с полем `iniServerParams`.<br/>-
Для добавления дополнительных Ingress-annotations используйте операцию **modify** с полем `ingressExtraAnnotations`.<br/>---'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 82
operation: create
kind: instance
action: create
- svcOperationId: 83
operation: delete
kind: instance
action: delete
- svcOperationId: 91
operation: modify
kind: instance
action: modify
- svcOperationId: 127
operation: resume
kind: instance
action: resume
- svcOperationId: 126
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 232
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 233
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 234
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 235
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: true
- svcOperationCfsParamId: 237
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: gitea-1
isModifiable: false
- svcOperationCfsParamId: 238
svcOperationCfsParam: psqlUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 818
svcOperationCfsParam: ingressExtraAnnotations
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 821
svcOperationCfsParam: iniServerParams
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 259
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 260
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 261
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 262
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 819
svcOperationCfsParam: ingressExtraAnnotations
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 820
svcOperationCfsParam: iniServerParams
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
82:
- 232
- 233
- 234
- 235
- 237
- 238
- 818
- 821
83: []
91:
- 259
- 260
- 261
- 262
- 819
- 820
127: []
126: []
stateParams:
resourceCPU: '500'
resourceMemory: '512'
resourceDisk: '1'
resourceInstances: '1'
domain: gitea-1
psqlUid: ''
ingressExtraAnnotations: ''
iniServerParams: ''
+258
View File
@@ -0,0 +1,258 @@
name: zones_v2
service_id: 109
service_display_name: Управление DNS
service_short_name: zonesV2
service_man: '# Управление DNS<br/><br/>## Что делает сервис<br/><br/>Управляет DNS-зоной вашего домена в инфраструктуре `ngcloud.ru`.<br/>Сервис помогает:<br/><br/>- создать DNS-зону;<br/>- поддерживать
записи в зоне (добавлять, удалять, массово менять);<br/>- удалять зону;<br/>- синхронизировать данные зоны с фактическим состоянием на DNS-серверах.<br/><br/>Сервис работает с авторитетными DNS-серверами
зоны:<br/><br/>- `ns3.ngcloud.ru`<br/> - `185.247.187.83`<br/> - `2a10:aa80:0:5::3`<br/>- `ns4.ngcloud.ru`<br/> - `81.22.46.43`<br/> - `2a10:aa80:0:6::3`<br/><br/>## Очень важно: что сделать у регистратора
домена<br/><br/>Чтобы зона действительно начала обслуживаться, **нужно делегировать домен** у регистратора на авторитетные DNS-серверы:<br/><br/>- `ns3.ngcloud.ru`<br/>- `ns4.ngcloud.ru`<br/><br/>В панели
регистратора нужно заменить NS-серверы домена на значения выше.<br/>Без этого записи в зоне могут быть созданы, но интернет не будет использовать их для вашего домена.<br/><br/>## Проверка после настройки<br/><br/>Проверить
ответы от серверов зоны:<br/><br/>```bash<br/>dig <ваш_домен> @ns3.ngcloud.ru<br/>dig <ваш_домен> @ns4.ngcloud.ru<br/>```<br/><br/>Проверить, что делегирование у регистратора применилось:<br/><br/>```bash<br/>dig
<ваш_домен> NS<br/>```<br/><br/>В ответе должны быть `ns3.ngcloud.ru` и `ns4.ngcloud.ru`.<br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 254
operation: create
kind: instance
action: create
- svcOperationId: 260
operation: create_record
kind: subresource
action: create
- svcOperationId: 255
operation: delete
kind: instance
action: delete
- svcOperationId: 261
operation: delete_record
kind: subresource
action: delete
- svcOperationId: 256
operation: modify
kind: instance
action: modify
- svcOperationId: 262
operation: modify_record
kind: subresource
action: modify
- svcOperationId: 259
operation: reconcile
kind: action
action: reconcile
stateOut:
records: {}
cfsParams:
- svcOperationCfsParamId: 761
svcOperationCfsParam: zoneName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 762
svcOperationCfsParam: zoneKind
dataType: string
isRequired: true
defaultValue: NATIVE
isModifiable: false
valueList:
- NATIVE
- SLAVE
- svcOperationCfsParamId: 763
svcOperationCfsParam: zoneMastersForSlave
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 764
svcOperationCfsParam: zoneRefresh
dataType: integer > 0
isRequired: true
defaultValue: '86400'
isModifiable: false
- svcOperationCfsParamId: 765
svcOperationCfsParam: zoneRetry
dataType: integer > 0
isRequired: true
defaultValue: '7200'
isModifiable: false
- svcOperationCfsParamId: 766
svcOperationCfsParam: zoneExpire
dataType: integer > 0
isRequired: true
defaultValue: '3600000'
isModifiable: false
- svcOperationCfsParamId: 767
svcOperationCfsParam: zoneTTL
dataType: integer > 0
isRequired: true
defaultValue: '86400'
isModifiable: false
- svcOperationCfsParamId: 768
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: powerdns
isModifiable: false
valueList:
- powerdns
- svcOperationCfsParamId: 777
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 778
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: '3600'
isModifiable: false
- svcOperationCfsParamId: 779
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: A
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 780
svcOperationCfsParam: recordInput
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
record:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 781
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 769
svcOperationCfsParam: records
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
recordName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
recordTTL:
dataType: integer > 0
defaultValue: '3600'
isRequired: true
isModifiable: false
recordType:
dataType: string
defaultValue: A
isRequired: true
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
- CAA
recordInput:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 783
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 784
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 785
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- A
- AAAA
- CNAME
- MX
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 786
svcOperationCfsParam: recordInput
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
record:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
254:
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
260:
- 777
- 778
- 779
- 780
255: []
261:
- 781
256:
- 769
262:
- 783
- 784
- 785
- 786
259: []
stateParams:
zoneName: ''
zoneKind: NATIVE
zoneMastersForSlave: ''
zoneRefresh: '86400'
zoneRetry: '7200'
zoneExpire: '3600000'
zoneTTL: '86400'
resourceRealm: powerdns
+92
View File
@@ -0,0 +1,92 @@
name: dnsrecord
service_id: 111
service_display_name: DNS запись
service_short_name: dnsrecord
service_man: Необходима DNS зона, в которой будет создана DNS запись.<br/>Выберите <br/>* Зону в которой будет создана запись<br/>* Тип записи<br/>* Имя записи<br/>* Значение записи
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 45
operation: create
kind: instance
action: create
- svcOperationId: 46
operation: delete
kind: instance
action: delete
- svcOperationId: 90
operation: modify
kind: instance
action: modify
- svcOperationId: 408
operation: reconcile
kind: action
action: reconcile
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 75
svcOperationCfsParam: zoneUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 76
svcOperationCfsParam: recordType
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- A
- AAAA
- CNAME
- MX
- PTR
- SOA
- SRV
- TXT
- LUA
- NS
- SSHFP
- svcOperationCfsParamId: 77
svcOperationCfsParam: recordName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 78
svcOperationCfsParam: recordInput
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 450
svcOperationCfsParam: recordTTL
dataType: integer > 0
isRequired: true
defaultValue: '3600'
isModifiable: false
- svcOperationCfsParamId: 256
svcOperationCfsParam: recordInput
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
45:
- 75
- 76
- 77
- 78
- 450
46: []
90:
- 256
408: []
stateParams:
zoneUid: ''
recordType: ''
recordName: ''
recordInput: ''
recordTTL: '3600'
+406
View File
@@ -0,0 +1,406 @@
name: mariadb
service_id: 115
service_display_name: Mariadb
service_short_name: mariadb
service_man: 'Mariadb кластер. Ресурсная платформа: k8s. Автоматизация: k8s operator.<br/>Автоматическое резервное копирование, ручное восстановление.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 138
operation: create
kind: instance
action: create
- svcOperationId: 242
operation: create_database
kind: subresource
action: create
- svcOperationId: 243
operation: create_user
kind: subresource
action: create
- svcOperationId: 139
operation: delete
kind: instance
action: delete
- svcOperationId: 248
operation: delete_database
kind: subresource
action: delete
- svcOperationId: 247
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 142
operation: modify
kind: instance
action: modify
- svcOperationId: 287
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 141
operation: resume
kind: instance
action: resume
- svcOperationId: 140
operation: suspend
kind: instance
action: suspend
stateOut:
databases: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 877
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 878
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 879
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 880
svcOperationCfsParam: mariadbConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: 9.4.0
isRequired: true
isModifiable: false
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 881
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '720'
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 882
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 734
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db-ebbjso21
isModifiable: false
- svcOperationCfsParamId: 735
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: user3vanbmfy
isModifiable: false
- svcOperationCfsParamId: 736
svcOperationCfsParam: password
dataType: string
isRequired: true
defaultValue: p4egnsar
isModifiable: false
- svcOperationCfsParamId: 737
svcOperationCfsParam: dbName
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
dbname:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 738
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '%'
isModifiable: false
- svcOperationCfsParamId: 456
svcOperationCfsParam: deleteS3Bucket
dataType: boolean
isRequired: true
defaultValue: 'true'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 745
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 744
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 883
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 884
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 885
svcOperationCfsParam: mariadbConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 8.4.0
- 9.4.0
- svcOperationCfsParamId: 886
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 887
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
schedule:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
138:
- 877
- 878
- 879
- 880
- 881
- 882
242:
- 734
243:
- 735
- 736
- 737
- 738
139:
- 456
248:
- 745
247:
- 744
142:
- 883
- 884
- 885
- 886
- 887
287: []
141: []
140: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 500, "memory": 512, "replicas": 1, "disk": 10}'
accessConfiguration: '{"masterAccessList": "[]", "masterIpSpace": ""}'
mariadbConfiguration: '{"version": "9.4.0"}'
backupConfiguration: '{"s3Uid": "", "retain": 720, "schedule": "0 0 * * *"}'
autoscaleConfiguration: '{"enabled": false, "schedule": 0, "quota": 100, "percent": 10}'
+347
View File
@@ -0,0 +1,347 @@
name: kafka
service_id: 116
service_display_name: ApacheKafka
service_short_name: kafka
service_man: '# Инструкция по развертыванию Организация в Cloud Director через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Организация в Cloud Director** предназначен для управления изолированными
организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль
уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.<br/><br/>### Доступные операции<br/><br/>**create**
— Создание новой организации с заданными характеристиками и типом доступа.<br/>**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.<br/>**modify**
— Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).<br/>**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.<br/>**resume**
— Разморозка организации, восстановление функций управления.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание:
платформа, на которой будет создана организация.<br/>Пример значения: `ngcloud.ru`.<br/><br/>### Тип организации<br/>Описание: тип создаваемой организации.<br/>Варианты:<br/>- `iaas` — организация с прямым
доступом к облаку и авторизацией через Keycloak.<br/>- `saas` — организация под управлением Nubes, без прямого доступа к облаку.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.<br/><br/>### Промышленное окружение<br/>- Тип организации: `saas` (упрощённая
модель использования).<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Идентификатор организации<br/>Уникальный
идентификатор созданной организации. Используется для всех дальнейших API-операций.<br/><br/>### Статус организации<br/>Отражает текущее состояние: active, suspended, modifying, deleting.<br/><br/>###
Параметры сети<br/>Выходные данные при наличии ipSpaces: список выделенных внешних IP, имя ip_space, количество IP.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних
IP внутри организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)**;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный к этой организации.<br/>-
Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов IP, сетей, ВМок
и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется через Keycloak.<br/><br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 148
operation: create
kind: instance
action: create
- svcOperationId: 165
operation: create_topic
kind: subresource
action: create
- svcOperationId: 168
operation: create_user
kind: subresource
action: create
- svcOperationId: 149
operation: delete
kind: instance
action: delete
- svcOperationId: 167
operation: delete_topic
kind: subresource
action: delete
- svcOperationId: 170
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 162
operation: modify
kind: instance
action: modify
- svcOperationId: 166
operation: modify_topic
kind: subresource
action: modify
- svcOperationId: 169
operation: modify_user
kind: subresource
action: modify
- svcOperationId: 161
operation: resume
kind: instance
action: resume
- svcOperationId: 160
operation: suspend
kind: instance
action: suspend
stateOut:
topics: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 1084
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1085
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1086
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
allocationExternal:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 523
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 524
svcOperationCfsParam: partitions
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 525
svcOperationCfsParam: replicas
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 530
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 531
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 532
svcOperationCfsParam: operations
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- Create
- Describe
- Read
- Write
- svcOperationCfsParamId: 533
svcOperationCfsParam: group
dataType: string
isRequired: true
defaultValue: '*'
isModifiable: false
- svcOperationCfsParamId: 534
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '*'
isModifiable: false
- svcOperationCfsParamId: 529
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 540
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1087
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1088
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
allocationExternal:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 526
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 527
svcOperationCfsParam: partitions
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 528
svcOperationCfsParam: replicas
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 535
svcOperationCfsParam: nameTopic
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 536
svcOperationCfsParam: operations
dataType: array
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- Create
- Describe
- Read
- Write
- svcOperationCfsParamId: 537
svcOperationCfsParam: group
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 538
svcOperationCfsParam: accessHosts
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 539
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
148:
- 1084
- 1085
- 1086
165:
- 523
- 524
- 525
168:
- 530
- 531
- 532
- 533
- 534
149: []
167:
- 529
170:
- 540
162:
- 1087
- 1088
166:
- 526
- 527
- 528
169:
- 535
- 536
- 537
- 538
- 539
161: []
160: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 2000, "memory": 2048, "replicas": 0, "disk": 1}'
accessConfiguration: '{"allocationExternal": false, "masterAccessList": "[]"}'
+107
View File
@@ -0,0 +1,107 @@
name: akhq
service_id: 119
service_display_name: Akhq
service_short_name: Akhq
service_man: '# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.<br/>Позволяет просматривать
топики, consumer group''ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.<br/>Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS)
подключения.<br/><br/>## Доступные операции<br/>- **create** — Создание ресурса AKHQ<br/>- **suspend** — Остановка ресурса<br/>- **resume** — Возобновление работы ресурса<br/>- **modify** —
Модификация настроек<br/>- **delete** — Удаление ресурса<br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>*
**Кластер Kafka к которому нужно настроить подключение**<br/>Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.<br/><br/>* **Платформа для развертывания:**<br/>Платформа
для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/>Количество узлов для работы Akhq. Пример `2`<br/><br/>* **Квота
(megabyte) памяти пода:**<br/>Квота памяти пода в мегабайтах. Пример: `512`<br/><br/>* **Квота (millicore ) ядра пода:**<br/>Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Имя
домена:**<br/>Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`<br/><br/>---<br/>##
4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это полное доменное имя (FQDN),
по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.<br/><br/>**Учетные данные**<br/>Здесь
представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Учётные записи, созданные для работы с AKHQ, предоставляют
доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.<br/>---'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 175
operation: create
kind: instance
action: create
- svcOperationId: 176
operation: delete
kind: instance
action: delete
- svcOperationId: 180
operation: modify
kind: instance
action: modify
- svcOperationId: 178
operation: resume
kind: instance
action: resume
- svcOperationId: 177
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 550
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 551
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: false
- svcOperationCfsParamId: 552
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: false
- svcOperationCfsParamId: 553
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 554
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '1'
isModifiable: false
- svcOperationCfsParamId: 555
svcOperationCfsParam: kafkaUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 565
svcOperationCfsParam: kafkaUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
175:
- 550
- 551
- 552
- 553
- 554
- 555
176: []
180:
- 565
178: []
177: []
stateParams:
resourceRealm: ''
resourceMemory: '512'
resourceCPU: '500'
domain: ''
resourceInstances: '1'
kafkaUid: ''
+521
View File
@@ -0,0 +1,521 @@
name: clickhouse
service_id: 120
service_display_name: ClickHouse
service_short_name: clickhouse
service_man: '# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная
для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер
создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик.
Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать
услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>*
**resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка
прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить
операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>###
Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/"
-d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE
= MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются
без специального ключа (`ON CLUSTER ''clickhousek8s''`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной
таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS
localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count()
FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE
TABLE IF NOT EXISTS database.localUsers ON cluster ''clickhousek8s''<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> ''/clickhouse/tables/{shard}/localUsers'',<br/> ''{replica}''<br/>)<br/>ORDER
BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster ''clickhousek8s''<br/>AS database.localUsers<br/>ENGINE = Distributed(''clickhousek8s'', ''database'', ''localUsers'', rand());<br/><br/>INSERT
INTO database.users VALUES (1, ''Alice'', ''alice@example.com'');<br/>INSERT INTO database.users VALUES (2, ''Bob'', ''bob@example.com'');<br/>INSERT INTO database.users VALUES (3, ''Charlie'', ''charlie@example.com'');<br/>INSERT
INTO database.users VALUES (4, ''David'', ''david@example.com'');<br/>INSERT INTO database.users VALUES (5, ''Gosha'', ''gosha@example.com'');<br/>INSERT INTO database.users VALUES (6, ''Eve'', ''eve@example.com'');<br/>INSERT
INTO database.users VALUES (7, ''Frank'', ''frank@example.com'');<br/>INSERT INTO database.users VALUES (8, ''Grace'', ''grace@example.com'');<br/>INSERT INTO database.users VALUES (9, ''Hannah'', ''hannah@example.com'');<br/>INSERT
INTO database.users VALUES (10, ''Ivan'', ''ivan@example.com'');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT
COUNT(*) AS total_users_local FROM database.localUsers;<br/>```'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 181
operation: create
kind: instance
action: create
- svcOperationId: 186
operation: create_database
kind: subresource
action: create
- svcOperationId: 185
operation: create_user
kind: subresource
action: create
- svcOperationId: 184
operation: delete
kind: instance
action: delete
- svcOperationId: 188
operation: delete_database
kind: subresource
action: delete
- svcOperationId: 187
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 189
operation: modify
kind: instance
action: modify
- svcOperationId: 276
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 183
operation: resume
kind: instance
action: resume
- svcOperationId: 182
operation: suspend
kind: instance
action: suspend
stateOut:
databases: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 837
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 838
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '1000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
shards:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 839
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 840
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '500'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '512'
isRequired: true
isModifiable: false
replicas:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '1'
- '3'
- svcOperationCfsParamId: 841
svcOperationCfsParam: clickhouseConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: '25.10'
isRequired: true
isModifiable: false
valueList:
- '25.10'
- svcOperationCfsParamId: 842
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: string
defaultValue: 0 0 * * *
isRequired: true
isModifiable: false
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: '7'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 843
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
schedule:
dataType: integer >= 0
defaultValue: '0'
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: '100'
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
enabled:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 851
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
path:
dataType: string
defaultValue: something.xml
isRequired: true
isModifiable: false
xmlConfig:
dataType: string
defaultValue: <clickhouse></clickhouse>
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 600
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: db01
isModifiable: false
- svcOperationCfsParamId: 596
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: myusername
isModifiable: false
- svcOperationCfsParamId: 598
svcOperationCfsParam: dbName
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
dbName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 599
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: ::/0
isModifiable: false
- svcOperationCfsParamId: 602
svcOperationCfsParam: dbName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 601
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 844
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
shards:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '2'
- '3'
disk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
- svcOperationCfsParamId: 845
svcOperationCfsParam: clickhouseKeeperConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
replicas:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '1'
- '3'
cpu:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 846
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
masterIpSpace:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
masterAccessList:
dataType: json
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 847
svcOperationCfsParam: clickhouseConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
version:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '25.10'
- svcOperationCfsParamId: 848
svcOperationCfsParam: backupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
s3Uid:
dataType: uuid
defaultValue: ''
isRequired: true
isModifiable: false
retain:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
schedule:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 849
svcOperationCfsParam: autoscaleConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
enabled:
dataType: boolean
defaultValue: false,true
isRequired: true
isModifiable: false
schedule:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '0'
- '5'
- '12'
- '23'
quota:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
percent:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '10'
- '15'
- '20'
- svcOperationCfsParamId: 850
svcOperationCfsParam: clickhouseFilesConfiguration
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
path:
dataType: string
defaultValue: something.xml
isRequired: true
isModifiable: false
xmlConfig:
dataType: string
defaultValue: <clickhouse></clickhouse>
isRequired: true
isModifiable: false
cfsParamsByOp:
181:
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 851
186:
- 600
185:
- 596
- 598
- 599
184: []
188:
- 602
187:
- 601
189:
- 844
- 845
- 846
- 847
- 848
- 849
- 850
276: []
183: []
182: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 1000, "memory": 2048, "replicas": 1, "shards": 1, "disk": 10}'
accessConfiguration: '{"masterIpSpace": "", "masterAccessList": "[]"}'
clickhouseKeeperConfiguration: '{"cpu": 500, "memory": 512, "replicas": 0}'
clickhouseConfiguration: '{"version": "25.10"}'
backupConfiguration: '{"schedule": "0 0 * * *", "s3Uid": "", "retain": 7}'
autoscaleConfiguration: '{"schedule": 0, "quota": 100, "percent": 10, "enabled": false}'
clickhouseFilesConfiguration: '{"path": "something.xml", "xmlConfig": "<clickhouse></clickhouse>"}'
+119
View File
@@ -0,0 +1,119 @@
name: s3
service_id: 12
service_display_name: S3 Object Storage
service_short_name: s3
service_man: Руководство доступно по ссылке:<br/>https://docs.s3-website.msk-1.ngcloud.ru/
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 1
operation: create
kind: instance
action: create
- svcOperationId: 6
operation: create_sub_user
kind: subresource
action: create
- svcOperationId: 5
operation: delete
kind: instance
action: delete
- svcOperationId: 7
operation: delete_sub_user
kind: subresource
action: delete
- svcOperationId: 4
operation: modify
kind: instance
action: modify
- svcOperationId: 407
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 3
operation: resume
kind: instance
action: resume
- svcOperationId: 2
operation: suspend
kind: instance
action: suspend
stateOut:
sub_users: {}
cfsParams:
- svcOperationCfsParamId: 163
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ceph.tst.nubes.ru
isModifiable: false
valueList:
- ceph.tst.nubes.ru
- svcOperationCfsParamId: 320
svcOperationCfsParam: displayName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 60
svcOperationCfsParam: subUserName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 61
svcOperationCfsParam: subUserAccess
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- read
- write
- readwrite
- full
- svcOperationCfsParamId: 63
svcOperationCfsParam: subUserName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 50
svcOperationCfsParam: maxSizeGbPerUser
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 51
svcOperationCfsParam: maxObjectsPerBucket
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 52
svcOperationCfsParam: maxBucketsPerUser
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
1:
- 163
- 320
6:
- 60
- 61
5: []
7:
- 63
4:
- 50
- 51
- 52
407: []
3: []
2: []
stateParams:
resourceRealm: ceph.tst.nubes.ru
displayName: ''
+90
View File
@@ -0,0 +1,90 @@
name: s3bucket
service_id: 13
service_display_name: S3 бакет
service_short_name: s3bucket
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 51
operation: create
kind: instance
action: create
- svcOperationId: 52
operation: delete
kind: instance
action: delete
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 124
svcOperationCfsParam: s3UserUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 125
svcOperationCfsParam: bucketName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 126
svcOperationCfsParam: maxSize
dataType: string
isRequired: true
defaultValue: '-1'
isModifiable: false
- svcOperationCfsParamId: 127
svcOperationCfsParam: readAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 128
svcOperationCfsParam: listAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 129
svcOperationCfsParam: corsAll
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 130
svcOperationCfsParam: placement
dataType: string
isRequired: true
defaultValue: HOT
isModifiable: false
valueList:
- HOT
- COLD
cfsParamsByOp:
51:
- 124
- 125
- 126
- 127
- 128
- 129
- 130
52: []
stateParams:
s3UserUid: ''
bucketName: ''
maxSize: '-1'
readAll: 'false'
listAll: 'false'
corsAll: 'false'
placement: HOT
@@ -0,0 +1,150 @@
name: vc_mgmt_sthutrval_cluster
service_id: 148
service_display_name: Менеджмент Kubernetes кластер Штурвал
service_short_name: vcMgmtSthutrvalCluster
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 258
operation: create
kind: instance
action: create
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 771
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: sandbox.nubes.ru
isRequired: true
isModifiable: false
valueList:
- sandbox.nubes.ru
clusterName:
dataType: string
defaultValue: example-brcyqrjr
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 772
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 773
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 774
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-jax0kk2f
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
- svcOperationCfsParamId: 775
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
cfsParamsByOp:
258:
- 771
- 772
- 773
- 774
- 775
stateParams:
startupConfiguration: '{"resourceRealm": "sandbox.nubes.ru", "clusterName": "example-brcyqrjr"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
controlPlaneConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingDisk": 50, "count": 2, "groupName": "workers-jax0kk2f", "sizingPolicy": ""}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
+216
View File
@@ -0,0 +1,216 @@
name: valo_tenant
service_id: 149
service_display_name: VALO Cloud
service_short_name: valoTenant
service_man: '# Инструкция по развертыванию Тенант Valo через платформу<br/><br/>## 1. Общая информация<br/>Тенант Valo — логический изолированный экземпляр сервиса VALO Cloud, предоставляющий защищённое
облачное хранилище, синхронизацию данных и доступ к документам с различных устройств. При создании тенант автоматически разворачивается в тестовом режиме сроком на 2 месяца. Перевод в промышленную эксплуатацию
выполняется отдельной операцией.<br/><br/>### Доступные операции<br/><br/>* **create** — создание нового тенанта в тестовом режиме сроком на 2 месяца.<br/>* **modify** — изменение настроек тенанта, включая
перевод из ТЕСТ в ПРОД.<br/>* **suspend** — выключение (приостановка работы) тенанта.<br/>* **resume** — включение ранее приостановленного тенанта.<br/>* **delete** — удаление тенанта; доступно только
после выполнения операции suspend.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание: платформа,
на которой будет создан тенант.<br/>Пример значения: `valo.ngcloud.ru`.<br/><br/>### DNS-Префикс<br/>Описание: Будет добавлено в зону valo.ngcloud.ru<br/>Пример значения: `mysimpledomain`.<br/><br/>###
Параметры хранилища<br/>Описание: Сколько места будет выделено под использование в тенанте. Данные хранятся в S3. Размер указывается в Gigabytes<br/>Пример значения: `10`.<br/><br/>### Настройки тенанта<br/>Описание:
Ряд конфигурации Valo-тенанта, такие как настройки пользователя и доступного функционала<br/>Пример значения: `опционально в рамках настройки`.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>Достаточно развернуть тенант в ТЕСТ. Срок предоставляется в 2 месяца. По истечению срока тенант автоматически переводится в `suspend` на стороне ресурсной платформы<br/><br/>###
Промышленное окружение<br/>Для разблокировки используйте операцию `modify`<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе
операций):<br/><br/>### Статус тенанта<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/>Тенант всегда создаётся в режиме ТЕСТ и не может быть сразу
переведён в ПРОД без операции modify.<br/>Удаление тенанта возможно только после его выключения с помощью операции suspend.<br/>Срок тестового режима составляет 2 месяца с момента создания.<br/>Операции
suspend и resume используются для временного управления доступностью сервиса без потери конфигурации.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 202
operation: create
kind: instance
action: create
- svcOperationId: 206
operation: delete
kind: instance
action: delete
- svcOperationId: 203
operation: modify
kind: instance
action: modify
- svcOperationId: 205
operation: resume
kind: instance
action: resume
- svcOperationId: 204
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 655
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: valo.ngcloud.ru
isModifiable: false
valueList:
- valo.ngcloud.ru
- svcOperationCfsParamId: 656
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 657
svcOperationCfsParam: valoOptions
dataType: map-fixed
isRequired: true
defaultValue: '{}'
isModifiable: true
dataDescriptor:
ffThemes:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: '10'
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
ffOnlineEditor:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffWatermark:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffUserImport:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 658
svcOperationCfsParam: s3Storage
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: true
- svcOperationCfsParamId: 659
svcOperationCfsParam: valoOptions
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
ffWatermark:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffUserImport:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffThemes:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffPublicLink:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
ffLogging:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
userCount:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
requestApproveMaxPeriod:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
ffOnlineEditor:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 660
svcOperationCfsParam: s3Storage
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
202:
- 655
- 656
- 657
- 658
206: []
203:
- 659
- 660
205: []
204: []
stateParams:
resourceRealm: valo.ngcloud.ru
domain: ''
valoOptions: '{"ffThemes": true, "ffPublicLink": true, "ffLogging": true, "userCount": 10, "requestApproveMaxPeriod": 2, "ffOnlineEditor": true, "ffWatermark": true, "ffUserImport": true}'
s3Storage: '10'
@@ -0,0 +1,324 @@
name: k8s_sthutrval_cluster
service_id: 150
service_display_name: Kubernetes кластер Штурвал
service_short_name: k8sSthutrvalCluster
service_man: Перед разворачиванием убедиться, что в облаке есть 2 свободных невыделенных IP в пуле
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 108
operation: create
kind: instance
action: create
- svcOperationId: 281
operation: create_user
kind: subresource
action: create
- svcOperationId: 109
operation: delete
kind: instance
action: delete
- svcOperationId: 282
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 110
operation: modify
kind: instance
action: modify
- svcOperationId: 253
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 174
operation: resume
kind: instance
action: resume
- svcOperationId: 173
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 750
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
vdcUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
nsxtUid:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
clusterName:
dataType: string
defaultValue: example-imhltbba
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 751
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: '[]'
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 752
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: '50'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '2'
isRequired: true
isModifiable: false
groupName:
dataType: string
defaultValue: workers-0krz2kek
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 753
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 755
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
appVersion:
dataType: string
defaultValue: 2.13.1
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 869
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 870
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 756
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
appVersion:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 2.13.1
- 2.12.1
- 2.11.0
- svcOperationCfsParamId: 757
svcOperationCfsParam: controlPlaneConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- svcOperationCfsParamId: 758
svcOperationCfsParam: workerConfiguration
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
groupName:
dataType: string
defaultValue: workers-apak4rks
isRequired: true
isModifiable: false
sizingPolicy:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
sizingDisk:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer >= 0
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 759
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
needExternalAddressAPI:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListAPI:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
needExternalAddressIngress:
dataType: boolean
defaultValue: 'true'
isRequired: true
isModifiable: false
valueList:
- 'true'
accessIpListIngress:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
cfsParamsByOp:
108:
- 750
- 751
- 752
- 753
- 755
281:
- 869
109: []
282:
- 870
110:
- 756
- 757
- 758
- 759
253: []
174: []
173: []
stateParams:
startupConfiguration: '{"vdcUid": "", "nsxtUid": "", "clusterName": "example-imhltbba"}'
controlPlaneConfiguration: '{"sizingPolicy": "[]", "sizingDisk": 50, "count": 1}'
workerConfiguration: '{"sizingPolicy": "", "sizingDisk": 50, "count": 2, "groupName": "workers-0krz2kek"}'
accessConfiguration: '{"needExternalAddressAPI": true, "accessIpListAPI": "[]", "needExternalAddressIngress": true, "accessIpListIngress": "[]"}'
clusterConfiguration: '{"appVersion": "2.13.1"}'
+372
View File
@@ -0,0 +1,372 @@
name: k8s_openbao
service_id: 151
service_display_name: Vault
service_short_name: k8sOpenbao
service_man: '# Инструкция по развертыванию Хранилища секретов через платформу<br/><br/>## 1. Общая информация<br/>Хранилище секретов — сервис централизованного и защищённого хранения чувствительных данных
(секретов, ключей, конфигураций). Предназначен для использования приложениями и сервисами в Kubernetes с управлением доступом на основе ролей.<br/>В качестве приложения используется открытый проект OpenBao
с поддержкой кластерного режима RAFT.<br/><br/>### Доступные операции<br/>**create** — Создание хранилища секретов и инициализация кластера.<br/>**delete** — Удаление хранилища секретов с полной очисткой
всех связанных сущностей.<br/>**modify** — Изменение параметров развернутого хранилища секретов.<br/>**suspend** — Приостановка работы кластера без удаления Persistent Volume.<br/>**resume** — Возобновление
работы кластера с автоматическим unseal всех нод.<br/>**restart** — Поочередный перезапуск нод с последующим подключением в кластер.<br/>**create_kv** — Создание Key/Value хранилища версии V2.<br/>**delete_kv**
— Удаление Key/Value хранилища со всеми содержащимися секретами.<br/>**create_secrets** — Создание секрета внутри Key/Value хранилища.<br/>**delete_secrets** — Удаление секрета из Key/Value хранилища.<br/>**update_secrets**
— Обновление значения секрета.<br/>**recovery_secrets** — Откат секрета к указанной версии.<br/>**create_role** — Создание роли для управления Key/Value хранилищем или секретами.<br/>**update_role** —
Обновление параметров роли.<br/>**delete_role** — Удаление роли доступа.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа
для развертывания<br/>Описание: Кластер Kubernetes, в котором будет развернуто приложение.<br/>Формат значения: имя Kubernetes-кластера.<br/><br/>### Имя домена<br/>Описание: Доменное имя сервиса. При
указании полного FQDN выполняется проверка DNS A-записи или добавляется А-запись в техническую зону.<br/>Формат значения: secrets.domain.com / mysecretdomain.<br/><br/>### Кол-во реплик<br/>Описание:
Количество узлов в кластере.<br/>Формат значения: целое число.<br/><br/>### Квота ядра пода<br/>Описание: Лимит CPU для одного узла. Указывается в milicores (1000 milicores = 1 CPU).<br/>Формат значения:
целое число.<br/><br/>### Квота памяти пода<br/>Описание: Лимит оперативной памяти для одного узла. Указывается в megabytes.<br/>Формат значения: целое число.<br/><br/>### Размер диска под хранение секретов<br/>Описание:
Объем диска для хранения данных. Фактический объем равен значению, умноженному на количество реплик. Указывается в Gigabytes<br/>Формат значения: целое число.<br/><br/>### Версия OpenBao<br/>Описание:
Версия OpenBao для развертывания сервиса.<br/>Формат значения: выбор из предоставленного списка версий.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/>Кол-во
реплик: 2.<br/>Квота ядра пода: 200.<br/>Квота памяти пода: 256.<br/>Размер диска под хранение секретов: 1.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>### Промышленное окружение<br/>Кол-во
реплик: от 3.<br/>Квота ядра пода: от 1000.<br/>Квота памяти пода: от 1024.<br/>Размер диска под хранение секретов: от 10.<br/>Версия OpenBao: актуальная стабильная версия.<br/><br/>---<br/><br/>## 4.
Выходные параметры<br/>Настройки внутри хранилища (kv/secrets/roles) — конфигурации Key/Value, секретов и ролей, созданные соответствующими операциями.<br/>Настройки самого хранилище (сайзинг, объемы)
— параметры ресурсов и хранилища данных, примененные к сервису.<br/>Статус кластера (running / suspended) — текущее состояние работы кластера.<br/>url для подключения к веб — адрес веб-интерфейса сервиса.<br/><br/>---<br/><br/>##
5. Дополнительная информация<br/>При удалении хранилища все данные и настройки безвозвратно удаляются.<br/>При использовании доменного имени требуется корректная настройка DNS.<br/>Операции управления
секретами и ролями выполняются только после успешного создания хранилища.<br/>Удаление кластера производится через операцию `suspend`, а удаление становится доступно через 14 дней после остановки кластера<br/>Правило
выше не относится к операции `delete_kv` / `delete_secrets` / `delete_role`'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 210
operation: create
kind: instance
action: create
- svcOperationId: 212
operation: create_kv
kind: subresource
action: create
- svcOperationId: 237
operation: create_policy
kind: subresource
action: create
- svcOperationId: 214
operation: create_secrets
kind: subresource
action: create
- svcOperationId: 231
operation: delete
kind: instance
action: delete
- svcOperationId: 213
operation: delete_kv
kind: subresource
action: delete
- svcOperationId: 239
operation: delete_policy
kind: subresource
action: delete
- svcOperationId: 233
operation: delete_secrets
kind: subresource
action: delete
- svcOperationId: 211
operation: modify
kind: instance
action: modify
- svcOperationId: 236
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 232
operation: recovery_secrets
kind: subresource
action: recovery
- svcOperationId: 234
operation: restart
kind: action
action: restart
- svcOperationId: 216
operation: resume
kind: instance
action: resume
- svcOperationId: 215
operation: suspend
kind: instance
action: suspend
- svcOperationId: 238
operation: update_policy
kind: subresource
action: update
- svcOperationId: 230
operation: update_secrets
kind: subresource
action: update
stateOut:
kvs: {}
policies: {}
secrets: {}
cfsParams:
- svcOperationCfsParamId: 663
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 664
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 665
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: '3'
isModifiable: true
- svcOperationCfsParamId: 666
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 667
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: '10'
isModifiable: true
- svcOperationCfsParamId: 668
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: 2.5.2
isModifiable: true
valueList:
- 2.5.2
- svcOperationCfsParamId: 669
svcOperationCfsParam: domain
dataType: string
isRequired: true
defaultValue: bao-onbcvsgk
isModifiable: false
- svcOperationCfsParamId: 675
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: kvname-9e9wvkt2
isModifiable: false
- svcOperationCfsParamId: 728
svcOperationCfsParam: policySettings
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
capabilities:
dataType: json
defaultValue: '["read", "list"]'
isRequired: true
isModifiable: false
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 729
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: policy-s0hfjfmn
isModifiable: false
- svcOperationCfsParamId: 677
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 678
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: path/to/mysecret
isModifiable: false
- svcOperationCfsParamId: 679
svcOperationCfsParam: secretData
dataType: map
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 676
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 732
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 726
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 727
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 670
svcOperationCfsParam: resourceInstances
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 671
svcOperationCfsParam: resourceCPU
dataType: integer > 0
isRequired: true
defaultValue: '500'
isModifiable: true
- svcOperationCfsParamId: 672
svcOperationCfsParam: resourceMemory
dataType: integer > 0
isRequired: true
defaultValue: '512'
isModifiable: true
- svcOperationCfsParamId: 673
svcOperationCfsParam: resourceDisk
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 674
svcOperationCfsParam: appVersion
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
valueList:
- 2.5.2
- svcOperationCfsParamId: 723
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 724
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 725
svcOperationCfsParam: secretVersion
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 730
svcOperationCfsParam: policyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 731
svcOperationCfsParam: policySettings
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
capabilities:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
path:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 719
svcOperationCfsParam: kvName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 720
svcOperationCfsParam: secretPath
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 721
svcOperationCfsParam: needFullUpdateSecret
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 722
svcOperationCfsParam: secretData
dataType: map
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
210:
- 663
- 664
- 665
- 666
- 667
- 668
- 669
212:
- 675
237:
- 728
- 729
214:
- 677
- 678
- 679
231: []
213:
- 676
239:
- 732
233:
- 726
- 727
211:
- 670
- 671
- 672
- 673
- 674
236: []
232:
- 723
- 724
- 725
234: []
216: []
215: []
238:
- 730
- 731
230:
- 719
- 720
- 721
- 722
stateParams:
resourceRealm: ''
resourceCPU: '500'
resourceInstances: '3'
resourceMemory: '512'
resourceDisk: '10'
appVersion: 2.5.2
domain: bao-onbcvsgk
+277
View File
@@ -0,0 +1,277 @@
name: llm_ai
service_id: 163
service_display_name: LLM
service_short_name: llmAi
service_man: '## 1. Общая информация<br/><br/>LLMaaS (Large Language Model as a Service) — это сервис для доступа к языковым моделям через OpenAI-совместимое API.<br/>Платформа позволяет создавать организации
(тенанты), команды, выпускать и управлять API-ключами, устанавливать лимиты на использование.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create** — Создание организации в LLMaaS<br/>-
**delete** — Удаление организации<br/><br/>- **create_team** — Создание команды внутри организации<br/>- **modify_team** — Редактирование команды (модели, RPM, TPM)<br/>- **delete_team** —
Удаление команды<br/><br/>- **create_secrets** — Создание API-ключа<br/>- **update_secrets** — Обновление параметров API-ключа<br/>- **delete_secrets** — Удаление API-ключа<br/><br/>---<br/><br/>##
2. Параметры создания организации<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании организации:<br/><br/>* **Платформа для развертывания**<br/> Выбирается автоматически, изменять
не нужно.<br/><br/>* **Период бюджета**<br/> Срок жизни организации в днях.<br/> Пример: `30`<br/><br/><br/>---<br/><br/>## 3. Параметры создания команды<br/><br/>* **Имя команды**<br/> Уникальное
имя команды в рамках организации.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для команды.<br/> Пример: `gpt-oss-120b`<br/><br/>* **Лимит запросов в минуту (RPM)**<br/> Максимальное
количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих + исходящих) в минуту.<br/> Пример: `100000`<br/><br/>---<br/><br/>##
4. Параметры редактирования команды<br/><br/>Для существующей команды можно изменить:<br/><br/>* **Модель**<br/> Новая модель для команды.<br/> Пример: `gpt-oss-20b`<br/><br/>* **Лимит запросов в минуту
(RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>---<br/><br/>## 5. Параметры создания API-ключа<br/><br/>Ниже
перечислены параметры, которые необходимо указать при создании API-ключа:<br/><br/>* **Имя ключа**<br/> Уникальное имя ключа в рамках организации.<br/> Пример: `prod-key`<br/><br/>* **Команда**<br/> Имя
команды для привязки ключа. Если не указано — ключ привязывается к команде `main`.<br/> Пример: `production`<br/><br/>* **Модель**<br/> Название модели, доступной для данного ключа.<br/> Пример: `gpt-oss-120b`<br/><br/>*
**Лимит запросов в минуту (RPM)**<br/> Максимальное количество запросов к API в минуту.<br/> Пример: `60`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Максимальное количество токенов (входящих
+ исходящих) в минуту.<br/> Пример: `100000`<br/><br/>**Важно:** Лимиты API-ключа не могут превышать лимиты команды, к которой он привязан.<br/>При превышении операция будет отклонена с ошибкой.<br/>Перед
созданием ключа убедитесь, что `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/><br/>---<br/><br/>## 6. Параметры обновления API-ключа<br/><br/>Для уже существующего ключа можно изменить параметры. Все
параметры являются опциональными:<br/><br/>* **Имя ключа**<br/> Имя обновляемого ключа.<br/> Пример: `prod-key`<br/><br/>* **Модель**<br/> Новое название модели.<br/> Пример: `gpt-oss-20b`<br/><br/>*
**Лимит запросов в минуту (RPM)**<br/> Новое значение RPM.<br/> Пример: `120`<br/><br/>* **Лимит токенов в минуту (TPM)**<br/> Новое значение TPM.<br/> Пример: `200000`<br/><br/>**Важно:** При обновлении
лимитов API-ключа новые значения не могут превышать лимиты команды.<br/>Если указать значения выше командных, операция завершится ошибкой.<br/>Указывайте `RPM <= team.RPM` и `TPM <= team.TPM`.<br/><br/>Команда
определяется автоматически по стейту услуги — изменить привязку к другой команде через эту операцию нельзя.<br/><br/>---<br/><br/>## 7. Параметры удаления API-ключа<br/><br/>* **Команда**<br/> Имя команды,
к которой привязан ключ.<br/> Пример: `production`<br/><br/>* **Имя ключа**<br/> Имя удаляемого ключа.<br/> Пример: `prod-key`<br/><br/>---<br/><br/>## 8. Параметры удаления команды<br/><br/>* **Имя
команды**<br/> Имя удаляемой команды.<br/> Пример: `production`<br/><br/>---<br/><br/>## 9. Параметры удаления организации<br/><br/>Удаление организации не требует дополнительных параметров — удаляется
вся организация со всеми командами и ключами.<br/><br/>---<br/><br/>## 10. Выходные параметры<br/><br/>После успешного создания организации платформа возвращает:<br/><br/>* **connectionUrl**<br/> URL
для доступа к inference API (OpenAI-совместимый).<br/> Пример: `https://api.aillm.ru`<br/><br/>---<br/><br/><br/>## 12. Пример использования API<br/><br/>После получения API-ключа клиент может обращаться
к LLMaaS напрямую:<br/><br/>**Запрос к chat completions:**<br/><br/>```bash<br/>curl https://api.aillm.ru/v1/chat/completions \<br/> -H "Authorization: Bearer sk-..." \<br/> -H "Content-Type: application/json"
\<br/> -d ''{<br/> "model": "gpt-oss-120b",<br/> "messages": [<br/> {"role": "user", "content": "Привет!"}<br/> ]<br/> }''<br/>```<br/><br/>**Получение списка доступных моделей:**<br/><br/>```bash<br/>curl
https://api.aillm.ru/v1/models \<br/> -H "Authorization: Bearer sk-..."<br/>```<br/>'
lifecycle:
suspendOnDestroyDefault: false
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 271
operation: create
kind: instance
action: create
- svcOperationId: 274
operation: create_secrets
kind: subresource
action: create
- svcOperationId: 278
operation: create_team
kind: subresource
action: create
- svcOperationId: 273
operation: delete
kind: instance
action: delete
- svcOperationId: 275
operation: delete_secrets
kind: subresource
action: delete
- svcOperationId: 280
operation: delete_team
kind: subresource
action: delete
- svcOperationId: 279
operation: modify_team
kind: subresource
action: modify
- svcOperationId: 277
operation: update_secrets
kind: subresource
action: update
stateOut:
secrets: {}
teams: {}
cfsParams:
- svcOperationCfsParamId: 826
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: llmAi.aillm.ru
isModifiable: false
valueList:
- llmAi.aillm.ru
- svcOperationCfsParamId: 833
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 834
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: false
- svcOperationCfsParamId: 835
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: false
- svcOperationCfsParamId: 857
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 859
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 1083
svcOperationCfsParam: variablesKeys
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
teamName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
keyName:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
models:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '{}'
tpmLimit:
dataType: integer > 0
defaultValue: '100000'
isRequired: true
isModifiable: false
rpmLimit:
dataType: integer > 0
defaultValue: '60'
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 858
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 860
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 861
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: false
- svcOperationCfsParamId: 862
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: false
- svcOperationCfsParamId: 836
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 876
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 868
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 864
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 865
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 873
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: true
- svcOperationCfsParamId: 874
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: true
- svcOperationCfsParamId: 852
svcOperationCfsParam: keyName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 853
svcOperationCfsParam: models
dataType: array
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 854
svcOperationCfsParam: rpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '60'
isModifiable: true
- svcOperationCfsParamId: 855
svcOperationCfsParam: tpmLimit
dataType: integer > 0
isRequired: true
defaultValue: '100000'
isModifiable: true
- svcOperationCfsParamId: 875
svcOperationCfsParam: teamName
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
271:
- 826
274:
- 833
- 834
- 835
- 857
- 859
- 1083
278:
- 858
- 860
- 861
- 862
273: []
275:
- 836
- 876
280:
- 868
279:
- 864
- 865
- 873
- 874
277:
- 852
- 853
- 854
- 855
- 875
stateParams:
resourceRealm: llmAi.aillm.ru
+133
View File
@@ -0,0 +1,133 @@
name: vc_org
service_id: 19
service_display_name: Организация в Cloud Director
service_short_name: vcOrg
service_man: '# Инструкция по развертыванию Организация в Cloud Director через платформу<br/><br/>## 1. Общая информация<br/><br/>Сервис **Организация в Cloud Director** предназначен для управления изолированными
организационными единицами (тенантами) внутри инфраструктуры Cloud Director. Он обеспечивает создание, модификацию и администрирование организаций, предоставление им облачных ресурсов, а также контроль
уровня доступа. Сервис используется для организации рабочих окружений потребителей, управления жизненным циклом организаций и их сетевой инфраструктурой.<br/><br/>### Доступные операции<br/><br/>**create**
— Создание новой организации с заданными характеристиками и типом доступа.<br/>**delete** — Удаление организации после перехода в состояние suspend; приводит к удалению всех связанных сущностей.<br/>**modify**
— Изменение параметров внутри организации (на текущий момент поддерживается изменение ipSpaces).<br/>**suspend** — Заморозка организации, ограничение возможности изменения и добавления сущностей.<br/>**resume**
— Разморозка организации, восстановление функций управления.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Параметры входных данных операции **create**:<br/><br/>### Платформа для развертывания<br/>Описание:
платформа, на которой будет создана организация.<br/>Пример значения: `ngcloud.ru`.<br/><br/>### Тип организации<br/>Описание: тип создаваемой организации.<br/>Варианты:<br/>- `iaas` — организация с прямым
доступом к облаку и авторизацией через Keycloak.<br/>- `saas` — организация под управлением Nubes, без прямого доступа к облаку.<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>###
Тестовое окружение<br/>- Тип организации: `iaas` для обеспечения полного доступа к облачным ресурсам и самостоятельного управления.<br/><br/>### Промышленное окружение<br/>- Тип организации: `saas` (упрощённая
модель использования).<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Услуга предоставляет следующие выходные параметры (формируются в процессе операций):<br/><br/>### Url организации<br/>Для
быстрого доступа в тенант<br/><br/>### Статус организации<br/>Отражает текущее состояние и параметры.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Для конфигурации внешних IP внутри
организации необходимо предварительно создать:<br/>-- хотя бы один **Виртуальный датацентр (VDC)** привязанный к этой организации;<br/>-- хотя бы один **Сетевой шлюз периметра (Edge Gateway)**, привязанный
к vdc выше.<br/>- Удаление организации возможно только через 14 дней после перевода в состояние suspend.<br/>- Удаление организации приводит к удалению всех связанных сущностей: VDC, Edge Gateway, пулов
IP, сетей, ВМок и иных объектов.<br/>- Операция suspend не останавливает виртуальные машины, но блокирует любые изменения инфраструктуры внутри организации.<br/>- Для iaas-организаций доступ осуществляется
через Keycloak.'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 136
operation: create
kind: instance
action: create
- svcOperationId: 283
operation: create_user
kind: subresource
action: create
- svcOperationId: 137
operation: delete
kind: instance
action: delete
- svcOperationId: 284
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 207
operation: modify
kind: instance
action: modify
- svcOperationId: 249
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 144
operation: resume
kind: instance
action: resume
- svcOperationId: 143
operation: suspend
kind: instance
action: suspend
stateOut:
users: {}
cfsParams:
- svcOperationCfsParamId: 418
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: sandbox.nubes.ru
isModifiable: false
valueList:
- sandbox.nubes.ru
- svcOperationCfsParamId: 556
svcOperationCfsParam: organizationType
dataType: string
isRequired: true
defaultValue: iaas
isModifiable: false
valueList:
- iaas
- saas
- svcOperationCfsParamId: 871
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: false
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 872
svcOperationCfsParam: admins
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
email:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 662
svcOperationCfsParam: vIPConfigure
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
count:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
136:
- 418
- 556
283:
- 871
137: []
284:
- 872
207:
- 662
249: []
144: []
143: []
stateParams:
resourceRealm: sandbox.nubes.ru
organizationType: iaas
+314
View File
@@ -0,0 +1,314 @@
name: dummy
service_id: 1
service_display_name: Болванка
service_short_name: dummy
service_man: '## Болванка для тестов.<br/><br/>А это просто много букв, чтобы посмотреть, как ведет себя текст при переполнении контейнера. <br/><br/><br/>``` json<br/>{<br/> "iamServiceUrl": "https://auth-api-test.ngcloud.ru/api/v1/user",<br/> "idpResponse":
{<br/> "prefix": {<br/> "charset": "",<br/> "status_text": "Request Time-out",<br/> "text": true,<br/> "errordetail": "",<br/> "filecontent":
"Connection Timeout",<br/> "responseheader": {},<br/> "header": "",<br/> "statuscode": "408 Request Time-out",<br/> "status_code": 408,<br/> "mimetype":
"Unable to determine MIME type of file."<br/> }<br/> }<br/>}<br/>```'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 18
operation: create
kind: instance
action: create
- svcOperationId: 71
operation: delete
kind: instance
action: delete
- svcOperationId: 92
operation: modify
kind: instance
action: modify
- svcOperationId: 257
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 240
operation: redeploy
kind: action
action: redeploy
- svcOperationId: 94
operation: resume
kind: instance
action: resume
- svcOperationId: 93
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 198
svcOperationCfsParam: durationMs
dataType: integer >= 0
isRequired: true
defaultValue: '0'
isModifiable: true
- svcOperationCfsParamId: 199
svcOperationCfsParam: failAtStart
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 200
svcOperationCfsParam: failInProgress
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 201
svcOperationCfsParam: whereFail
dataType: integer > 0
isRequired: false
defaultValue: '1'
isModifiable: true
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 242
svcOperationCfsParam: resourceRealm
dataType: string
isRequired: true
defaultValue: dummy
isModifiable: false
valueList:
- dummy
- svcOperationCfsParamId: 286
svcOperationCfsParam: bodymessage
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 321
svcOperationCfsParam: mapExample
dataType: map
isRequired: false
defaultValue: ''
isModifiable: true
dataDescriptor:
subparam2:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
subparam1:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
secret:
dataType: string
defaultValue: ''
isRequired: false
isModifiable: false
- svcOperationCfsParamId: 322
svcOperationCfsParam: jsonExample
dataType: json
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 396
svcOperationCfsParam: nestedRefExample
dataType: string
isRequired: false
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 647
svcOperationCfsParam: mapFixed
dataType: map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
param1:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
param3:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
bol1:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: abracadabra
isRequired: true
isModifiable: false
valueList:
- abracadabra
- svcOperationCfsParamId: 654
svcOperationCfsParam: arrayMapFixedExample
dataType: array-map-fixed
isRequired: false
defaultValue: ''
isModifiable: false
dataDescriptor:
bol1:
dataType: boolean
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
minStr1:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- abracadabra
param1:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
param2:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '["1"'
- '"2"'
- '"3"]'
param3:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 863
svcOperationCfsParam: arr
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- test
- '2'
- val1
- svcOperationCfsParamId: 287
svcOperationCfsParam: durationMs
dataType: integer >= 0
isRequired: true
defaultValue: '0'
isModifiable: true
- svcOperationCfsParamId: 288
svcOperationCfsParam: failAtStart
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 289
svcOperationCfsParam: failInProgress
dataType: boolean
isRequired: true
defaultValue: 'false'
isModifiable: true
valueList:
- 'false'
- 'true'
- svcOperationCfsParamId: 290
svcOperationCfsParam: whereFail
dataType: integer > 0
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- '1'
- '2'
- '3'
- svcOperationCfsParamId: 291
svcOperationCfsParam: bodymessage
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 373
svcOperationCfsParam: mapExample
dataType: map
isRequired: false
defaultValue: '{}'
isModifiable: true
dataDescriptor:
secret:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 374
svcOperationCfsParam: jsonExample
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
cfsParamsByOp:
18:
- 198
- 199
- 200
- 201
- 242
- 286
- 321
- 322
- 396
- 647
- 654
- 863
71: []
92:
- 287
- 288
- 289
- 290
- 291
- 373
- 374
257: []
240: []
94: []
93: []
stateParams:
durationMs: '0'
failAtStart: 'false'
failInProgress: 'false'
whereFail: '1'
resourceRealm: dummy
bodymessage: ''
mapExample: '{"subparam2": "", "subparam1": "", "secret": ""}'
jsonExample: ''
nestedRefExample: ''
mapFixed: '{"param1": 1, "param2": "1", "param3": 1, "bol1": false, "minStr1": "abracadabra"}'
arrayMapFixedExample: '{"bol1": false, "minStr1": "", "param1": 0, "param2": "", "param3": 1}'
arr: ''
+166
View File
@@ -0,0 +1,166 @@
name: vc_vdc
service_id: 21
service_display_name: Виртуальный датацентр (vDC)
service_short_name: vc_vdc
service_man: '# Инструкция по развертыванию Виртуальный датацентр (vDC) через платформу<br/><br/>## 1. Общая информация<br/><br/>**Виртуальный датацентр (vDC)** — это логическая изолированная среда в VMware
Cloud Director, предназначенная для размещения и управления виртуальными машинами, сетевой инфраструктурой и ресурсами хранения. Сервис обеспечивает выделение вычислительных ресурсов под конкретную организацию
и предоставляет гибкие параметры масштабирования, контроля потребления и разделения ресурсов.<br/><br/>### Доступные операции<br/><br/>**create** — Создание виртуального датацентра (vDC) с заданными параметрами
CPU, RAM, Storage и сетевой конфигурацией.<br/>**delete** — Удаление vDC. Требуется предварительный перевод vDC в состояние *suspend*. Полное удаление возможно через 14 дней.<br/>**modify** — Внесение
изменений в параметры ресурсов (CPU/RAM/Storage), выделенных для vDC.<br/>**suspend** — Заморозка vDC. Новые ресурсы или изменения внутри vDC становятся невозможными, работа ВМ не останавливается.<br/>**resume**
— Разморозка vDC. Восстановление возможности управления сущностями внутри vDC.<br/><br/>---<br/><br/>## 2. Параметры развертывания<br/><br/>Ниже перечислены входные параметры операции **create**.<br/><br/>###
UUID Организации<br/>Уникальный идентификатор организации в Cloud Director. Перед созданием vDC требуется предварительное создание услугу `Организация в Cloud Director`.<br/><br/>### Provider VDC в Cloud
Director<br/>Свойство ресурсной платформы, определяющее, какой пул физических ресурсов будет использоваться.<br/><br/>### Network Pool в Cloud Director<br/>Определяет возможности сетевой конфигурации,
включая создание Edge Gateway и выход во внешние сети.<br/><br/>### Гарантированная доля ЯДЕР<br/>Гарантированный процент вычислительных ресурсов (CPU), закрепленный за vDC. Значение устанавливается разово
при создании.<br/><br/>### Гарантированная доля ОЗУ<br/>Гарантированный процент оперативной памяти, закрепленный за vDC. Также задаётся один раз при создании.<br/><br/>### Сколько аллоцировать на VDC
ЯДЕР<br/>Количество виртуальных ядер, выделяемых в рамках vDC.<br/><br/>### Сколько аллоцировать на VDC ОЗУ<br/>Количество оперативной памяти в GB, выделяемой для vDC.<br/><br/>### Конфигурация Storage<br/>Набор
дисковых политик и их объёмов, выделяемых для vDC. Указывается имя политики и требуемый размер (GB).<br/><br/>---<br/><br/>## 3. Рекомендованные характеристики<br/><br/>### Тестовое окружение<br/><br/>-
Количество ядер CPU: 1020<br/>- Аллоцируемая RAM: 1664 GB<br/>- Гарантированная доля CPU: 20%<br/>- Гарантированная доля RAM: 20%<br/>- Storage:<br/>- Политика `SATA`<br/>- Объём: 100300 GB<br/><br/>###
Промышленное окружение<br/><br/>- Количество ядер CPU: 16128<br/>- Аллоцируемая RAM: 64512 GB<br/>- Гарантированная доля CPU: 50%<br/>- Гарантированная доля RAM: 50%<br/>- Storage:<br/>- Политики уровня
`SSD`<br/>- Объём: 110 TB, выбор несколько политик под разные нагрузки<br/><br/>---<br/><br/>## 4. Выходные параметры<br/><br/>Выходные параметры формируются операцией **create** (и используются другими
операциями):<br/><br/>### Имя vDC<br/>Уникальный идентификатор созданного виртуального датацентра. Используется в дальнейших операциях (modify, suspend, delete).<br/><br/>### Параметры выделенных ресурсов<br/>Подтверждение
итогового объёма CPU/RAM/Storage, выделенных vDC. Используются для учёта и контроля потребления.<br/><br/>---<br/><br/>## 5. Дополнительная информация<br/><br/>- Перед созданием vDC необходимо обеспечить
наличие корректно созданной организации и доступных пула ресурсов ресурсной платформы.<br/>- Гарантированная доля CPU и RAM задаётся **однократно при создании vDC**. После развертывания изменить эти значения
невозможно; для изменения необходимо пересоздать vDC.<br/>- Удаление vDC возможно только через **14 дней после перевода в состояние *suspend***. Удаление очищает все связанные сущности (ВМ, сети, каталоги),
поэтому необходимо убедиться, что данные перенесены.<br/>- Платформа Cloud Director использует концепцию изолированных организационных ресурсов, поэтому корректная настройка Provider VDC и Network Pool
является обязательной при создании vDC.<br/>- При изменении параметров (modify) изменяются только показатели CPU, RAM и Storage. Сетевые параметры и гарантированные доли остаются неизменными.<br/>'
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 9
operation: create
kind: instance
action: create
- svcOperationId: 24
operation: delete
kind: instance
action: delete
- svcOperationId: 112
operation: modify
kind: instance
action: modify
- svcOperationId: 250
operation: reconcile
kind: action
action: reconcile
- svcOperationId: 172
operation: resume
kind: instance
action: resume
- svcOperationId: 171
operation: suspend
kind: instance
action: suspend
stateOut: {}
cfsParams:
- svcOperationCfsParamId: 30
svcOperationCfsParam: organizationUid
dataType: uuid
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 335
svcOperationCfsParam: providerVdc
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 361
svcOperationCfsParam: storageConfig
dataType: array-map-fixed
isRequired: true
defaultValue: '[{}]'
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 397
svcOperationCfsParam: cpuGuaranteed
dataType: integer > 0
isRequired: true
defaultValue: '20'
isModifiable: false
valueList:
- '20'
- '50'
- '80'
- svcOperationCfsParamId: 557
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
isRequired: true
defaultValue: '80'
isModifiable: true
- svcOperationCfsParamId: 558
svcOperationCfsParam: memAllocated
dataType: integer > 0
isRequired: true
defaultValue: '200'
isModifiable: true
- svcOperationCfsParamId: 746
svcOperationCfsParam: networkProvider
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 560
svcOperationCfsParam: cpuAllocated
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 561
svcOperationCfsParam: memAllocated
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 562
svcOperationCfsParam: storageConfig
dataType: array-map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
name:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
size:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
cfsParamsByOp:
9:
- 30
- 335
- 361
- 397
- 557
- 558
- 746
24: []
112:
- 560
- 561
- 562
250: []
172: []
171: []
stateParams:
organizationUid: ''
providerVdc: ''
storageConfig: '{"name": "", "size": 2000}'
cpuGuaranteed: '20'
cpuAllocated: '80'
memAllocated: '200'
networkProvider: ''

Some files were not shown because too many files have changed in this diff Show More