hashgraph / hashgraph/solo-weaver

Epic 4: Daemon-side Job Execution (frozen, pre-install & post-install phases)

Open
#852 0 comments 0 reactions 0 assignees View on GitHub
Epic New Feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.