Completa il hardening autoscaler (Fase 4): budget, kill-switch e runbook.
Drain sicuro in scale-in, alert Ops su overflow e controlli admin senza abilitare il deploy in produzione. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -16,6 +16,15 @@
|
||||
max: @autoscale_metrics[:max_overflow_nodes],
|
||||
kind: @autoscale_metrics[:kind]
|
||||
) %>
|
||||
· <%= t(
|
||||
"admin.stream_nodes.autoscale_budget",
|
||||
eur: @autoscale_metrics[:estimated_monthly_eur],
|
||||
budget: @autoscale_metrics[:monthly_budget_eur],
|
||||
ok: (@autoscale_metrics[:within_budget] ? "OK" : "OVER")
|
||||
) %>
|
||||
<% if @autoscale_metrics[:kill_switch] %>
|
||||
· <strong><%= t("admin.stream_nodes.kill_switch_active") %></strong>
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -26,6 +35,12 @@
|
||||
<% else %>
|
||||
<span class="admin-muted"><%= t("admin.stream_nodes.hetzner_token_missing") %></span>
|
||||
<% end %>
|
||||
<% if @autoscale_metrics[:kill_switch] %>
|
||||
<%= button_to t("admin.stream_nodes.clear_kill_switch"), clear_kill_switch_admin_stream_nodes_path, method: :delete, class: "admin-btn admin-btn-secondary" %>
|
||||
<% else %>
|
||||
<%= button_to t("admin.stream_nodes.engage_kill_switch"), kill_switch_admin_stream_nodes_path, method: :post, class: "admin-btn admin-btn-danger",
|
||||
form: { data: { confirm: t("admin.stream_nodes.kill_switch_confirm") } } %>
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
<table class="admin-table">
|
||||
|
||||
Reference in New Issue
Block a user