hashgraph / hashgraph/solo-weaver

feat(consensus): consensus node start command

Open
#1,067 0 comments 0 reactions 1 assignee Claimed by @leninmehedy View on GitHub
Dominant language
Go
Stars
3
Forks
0
Avg merge
3d 5h
Merged PRs (30d)
47

Description

Implement `solo-provisioner consensus node start` command.

Parent epic: #408
Depends on: solo-operator PR hashgraph/solo-operator#1263 (declarative `spec.desiredRunState`) and epic hashgraph/solo-operator#1165

### Context — declarative model (updated)
The design pivoted away from the earlier imperative `ConsensusNodeStart`/`ConsensusNodeStop` CRDs. solo-operator PR #1263 adds a declarative field on the ConsensusCapsule:

- `spec.startPolicy`: `Auto` (default) | `Manual` — who starts the s6 process on pod boot.
- `spec.desiredRunState`: `Running` | `Stopped` (optional) — the desired s6 process state; the operator actuates s6 in-place (pod stays up).

Effective behavior: Auto + unset ⇒ runs; Auto + Stopped ⇒ stopped; Manual + unset ⇒ stopped; Manual + Running ⇒ runs. Setting `desiredRunState` drives the process regardless of `startPolicy`, so **start/stop is not restricted to `startPolicy=Manual`** (this supersedes the old acceptance criterion).

### Scope
- `solo-provisioner consensus node start --node-id [--namespace]`
- Server-Side-Apply patch `spec.desiredRunState=Running` on the target ConsensusCapsule (no separate CR).
- Precheck: the ConsensusCapsule exists.
- Reuse `WaitConsensusCapsuleReady` to wait for phase Running/Active (honor `--ready-timeout`).
- Idempotent — patching to Running when already running is a no-op.

### Blocked until
Our vendored solo-operator API does not yet expose `desiredRunState`; this cannot be built until PR #1263 merges and we re-vendor.

### Acceptance Criteria
- [ ] `desiredRunState=Running` applied to the correct capsule via SSA
- [ ] Works regardless of `startPolicy` (no Auto/Manual gate)
- [ ] Waits for Running/Active with `--ready-timeout`
- [ ] Idempotent
- [ ] Clear, decorated error when the capsule is not found

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.