Files
RoleForge/app/templates/cluster-ops.xhtml
Sergey Antropoff 1d2301fb09 first commit
2026-04-30 08:59:31 +03:00

73 lines
3.8 KiB
HTML

{% extends "base.xhtml" %}
{% from "macros/page-hero.xhtml" import page_hero %}
{% block content %}
{% set ops_titles = {
"service-accounts": "Service Accounts",
"api": "Cluster Advanced API",
"jobs": "Jobs API"
} %}
{% set ops_desc = {
"service-accounts": "Create and review service accounts for this cluster.",
"api": "Run advanced cluster actions: scale, clone, rollback and previews.",
"jobs": "Enqueue background tasks and inspect execution output."
} %}
{% set ops_title = ops_titles.get(ops_sub, "Cluster ops") %}
{{ page_hero("Operations", ops_title, ops_desc.get(ops_sub, "Service accounts, scale, clone, rollback, advanced API actions, and background jobs.")) }}
<pre id="cluster-detail-output" class="form-output hidden" data-cluster-id="{{ cluster_id }}"></pre>
<section class="card cops-sec" data-cops="service-accounts">
<h2>Service Accounts</h2>
<form id="service-account-create-form" class="toolbar-row form-modern toolbar-form">
<input id="service-account-name" type="text" placeholder="service account name" required="required" />
<input id="service-account-expires-seconds" type="number" min="60" placeholder="expires in seconds (optional)" />
<div class="form-actions form-actions-start">
<button type="submit">Create Service Account</button>
<button id="service-account-refresh-btn" type="button" class="btn-muted">Refresh Service Accounts</button>
</div>
</form>
<div id="service-accounts-table"></div>
<pre id="service-accounts-output" class="form-output"></pre>
</section>
<section class="card cops-sec" data-cops="api">
<h2>Cluster Advanced API</h2>
<form id="cluster-advanced-form" class="toolbar-row form-modern toolbar-form">
<input id="cluster-scale-nodes-json" type="text" placeholder='scale nodes JSON [{"name":"w1","role":"worker","ip_address":"10.0.0.2"}]' />
<input id="cluster-clone-name" type="text" placeholder="clone name" />
<input id="cluster-config-json" type="text" placeholder='config JSON {"k":"v"}' />
<input id="cluster-config-version" type="number" min="1" placeholder="rollback version (optional)" />
<label class="toggle-chip" for="cluster-delete-confirm">
<input id="cluster-delete-confirm" type="checkbox" />
<span>include delete cluster</span>
</label>
<div class="form-actions form-actions-start">
<button id="cluster-run-advanced-btn" type="button">Run Advanced Actions</button>
</div>
</form>
<form id="cluster-preview-form" class="toolbar-row form-modern toolbar-form">
<input id="cluster-preview-config-json" type="text" placeholder='preview cluster config JSON {"k":"v"}' />
<input id="cluster-preview-addon-json" type="text" placeholder='preview addon JSON {"name":"metrics-server","version":"latest","enabled":true,"values_yaml":"{}"}' />
<div class="form-actions form-actions-start">
<button id="cluster-run-preview-btn" type="button">Run Preview Actions</button>
</div>
</form>
<pre id="cluster-advanced-output" class="form-output"></pre>
</section>
<section class="card cops-sec" data-cops="jobs">
<h2>Jobs API</h2>
<form id="jobs-enqueue-form" class="toolbar-row form-modern toolbar-form">
<select id="jobs-task-type">
<option value="run_molecule">run_molecule</option>
<option value="create_cluster">create_cluster</option>
<option value="install_addon">install_addon</option>
<option value="delete_cluster">delete_cluster</option>
</select>
<input id="jobs-addon-name" type="text" placeholder="addon name (for install_addon)" />
<input id="jobs-addon-version" type="text" placeholder="addon version (for install_addon)" />
<input id="jobs-scenario" type="text" value="default" />
<div class="form-actions form-actions-start">
<button type="submit">Enqueue Job</button>
</div>
</form>
<pre id="jobs-output" class="form-output"></pre>
</section>
{% endblock %}