hashgraph / hashgraph/solo-weaver
Epic 4: Daemon-side Job Execution (frozen, pre-install & post-install phases)
- Dominant language
- Go
- Stars
- 3
- Forks
- 0
- Avg merge
- 3d 2h
- Merged PRs (30d)
- 46
Description
## Overview
Wire `pkg/jobs` (imported from solo-operator) into the solo-weaver daemon (`internal/daemon/consensus/`) so it executes phase-scoped K8s Jobs at the `frozen`, `pre-install`, and `post-install` phases as specified in HIP-1494.
Depends on **Epic 1** (pkg/jobs library) and **Epic 5** (solo-weaver imports pkg/jobs).
## Phase mapping
| Phase | File | Trigger point |
|---|---|---|
| `frozen` | `upgrade_monitor.go` `handleExecute()` | After `now_frozen.mf` detected; before upgrade scripts run |
| `pre-install` | `bll/*/install_handler.go` | Pre-install step; CN not yet deployed |
| `post-install` | `bll/*/install_handler.go` | Post-install step; CN pod Ready |
## Stories
_To be linked below once created_
## Acceptance Criteria
- [ ] Jobs run at `frozen` phase before upgrade scripts execute
- [ ] Jobs run at `pre-install` and `post-install` phases
- [ ] `failurePolicy: Abort` sets `DaemonResult=Failed` with reason `ReasonDaemonCustomJobFailed`
- [ ] `operationId` extracted from `NetworkUpgradeExecute` CR and passed as label
- [ ] `upgrade_monitor_test.go` extended to cover new job execution paths
Contributor guide
Research direction
Start by reading the pkg/jobs integration and the listed trigger points in upgrade_monitor.go handleExecute() and bll/*/install_handler.go. Then inspect upgrade_monitor_test.go and the Epic 1 and Epic 5 dependencies. Done means phase-scoped Jobs execute at frozen, pre-install, and post-install, with the specified failure result and operationId label behavior covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100