feat: restart a workload in place, health-gated and audited

Đang mở
#219 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
30/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
docker, go
Lĩnh vực
cli, devops

Hướng nghiên cứu

Start from the existing ob deploy path, which keeps replicas when images are unchanged (runtime_unchanged), and from the deploy lock/fence, the rolling/converge path, and the journal and ob audit code the issue names. The payload names no specific files or tests, so locate these by searching the repository. Done means ob restart shows a plan, asks for confirmation, restarts replicas one at a time with health gating, records a journal and audit entry, and leaves the release and ob status unchanged.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement
The problem

An operator sometimes needs to restart a running workload without releasing anything new. A typical case: a singleton worker misses an upstream event, and only its startup catch-up recovers it. The image and configuration have not changed; the process just needs to start again.

Onebox has no command for this. ob deploy with unchanged images retains the workload (runtime_unchanged), and neither the top-level commands nor ob service offer a restart.

Proposed change

ob restart <workload> [--reason TEXT], using the same guarantees as a deploy, without changing the release:

  • Shows what will restart and asks for confirmation (-y to skip). Takes the deploy lock/fence, so it cannot race a concurrent deploy or resume.
  • Restarts multi-replica workloads one replica at a time, health-gated, using the existing rolling/converge path. A replica that fails its health check stops the restart and reports it.
  • Restarts a single-replica workload, waits for it to become healthy, and reports the outcome.
  • Records a journal entry and an ob audit entry: who, when, which workload, the release it belongs to, the reason and the result.
  • Does not change images, configuration or the recorded release. ob status stays consistent.

The same could later cover supporting services (ob service restart <name>), where a restart may affect the data plane and should say so in the plan.

Current workaround

ssh <host> docker restart <container>. It works because the container, image and configuration stay the same, but it bypasses Onebox:

  • no confirmation and no deploy-lock fencing;
  • no health gate, so a failed start shows up only in ob status or in logs;
  • no rolling for multi-replica workloads;
  • nothing in the journal or ob audit, so the restart is invisible in the deployment history.
Scope and safety

It stays inside the one-application, one-host scope. It acts on a running production system only on an explicit operator command, after showing a plan and getting confirmation, and it changes no release state.

Ngôn ngữ chính
Go
Star
4
Fork
0
Merge trung bình
36 phút
Pull request đã merge (30 ngày)
13

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của labstack/onebox

Tất cả issue của labstack/onebox

Issue tương tự

Thêm issue về Go

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.