prole/installer/core.py
chrisfu 6b89ea23d7 Stabilize deliverable k3d pipeline and refactor installer components
- Finalized stable, repeatable reset logic for the k3d pipeline.

- Refactored installer into modular components: core, milestone, runner, and state.

- Introduced new UI abstractions with support for ncurses and Tkinter.

- Updated initialization scripts and configurations for CloudNativePG, Kerberos, OpenBao, and Monitoring.

- Improved pipeline repair and port-forwarding mechanisms.
2026-02-15 00:03:24 -08:00

26 lines
732 B
Python

"""UI-agnostic installer engine."""
from __future__ import annotations
from typing import Iterable
from .milestone import Milestone
from .runner import InstallerRunner
from .state import InstallerState
class InstallerCore:
"""Convenience wrapper around the runner and milestones."""
def __init__(self, milestones: Iterable[Milestone], state: InstallerState | None = None):
self.runner = InstallerRunner(milestones, state=state)
@property
def state(self) -> InstallerState:
return self.runner.state
def on(self, event: str, callback) -> None:
self.runner.on(event, callback)
def run(self, start_id: str | None = None) -> bool:
return self.runner.run(start_id=start_id)