Commit Graph

14 Commits

Author SHA1 Message Date
chrisfu
dafed53810 Enhance build system with 'make test' and fix installer test debris. Added 'make test' to Makefile with 'pyconv' (black) integration and coverage summary. Reformatted codebase with black. Fixed 'install.py' test bug where MagicMock objects created directory debris by improving mocking and patching in 'tests/test_navigation.py', 'tests/test_service_layer_navigation.py', and 'tests/test_install_logic.py'. 2026-02-25 14:55:05 -08:00
chrisfu
9094d10117 Installer refactor: k3d cluster lifecycle, kubeconfig handling, UI polish & cleanup - Fix KUBECONFIG not generated for dev/k3d clusters by merging k3d kubeconfig in _script_env_for_namespace() and after cluster creation - Fix Add/Delete button macOS black focus ring with highlightbackground/highlightthickness styling - Refactor milestones, actions, controller, deploy pipeline, and env helpers - Simplify prole.cfg and port-mapping.cfg defaults - Improve archive_garage_backup.py and init_cloudnative_pg.sh - Remove unused img/LOADING_GIF_README.md and img/generate_loading_gif.py - Add qodana.yaml for static analysis configuration 2026-02-20 01:28:52 -08:00
chrisfu
edbc6c5385 Checkpoint: Refactor installer UI and update Supabase deployment strategy
- Refactored install.py and installer package for improved UI and navigation.

- Replaced Supabase k8s manifests with a dedicated deployment script and port-wiring logic.

- Added new deployment pipeline and finalization scripts in etc/.

- Updated initialization scripts for Kerberos, authority, and port forwards.

- Updated port mappings and tests.
2026-02-03 14:55:05 -08:00
chrisfu
9c1f58caf4 Checkpoint: namespace management improvements and prole-db updates. Enhanced namespace management with automated namespace detection and configuration in etc/prole_cfg.sh and etc/init_prole-db.sh. Added namespace reset and recovery scripts: scripts/reset-ns.sh, etc/init_prole-db-reset.sh, and k8s/prole/prole-db-recovery.yaml.tpl. Updated prole-db image versioning to use release files and bumped version to 17.7-041. Improved installer UI and configuration handling in install.py and installer/screen.py. Updated Kerberos and CloudNativePG initialization scripts for better namespace support. Added /prole/backup/ to .gitignore. 2026-01-31 19:22:05 -08:00
chrisfu
a7cb5b5fca Add prole_cfg.sh sourcing for configuration management
- Consistently source `prole_cfg.sh` across multiple init scripts for unified configuration handling.
- Enhanced error handling in `screen.py` to manage potential UI exceptions gracefully.
- Improved asynchronous function scheduling using the new `safe_after` method.
2026-01-30 23:37:32 -08:00
chrisfu
58d693de05 UI: Standardized console appearance and fixed cosmetic inconsistencies. This commit establishes a stable, consistent UI across the entire installer: Unified 'Light Background, Dark Text' theme for all console components. Standardized console creation routine to eliminate thick black borders on macOS. Refactored SSH key generation to use the standard canvas-based layout. Switched to tk.Frame and tk.Scrollbar for TerminalConsole to resist macOS dark mode shifts. Fixed shutil.SameFileError when PROLE_HOME matches the source directory. Improved notebook styling for inactive tabs and execution outputs. All screens now share the same professional look and feel. 2026-01-27 22:32:27 -08:00
chrisfu
906392d462 feat(installer): improve UI and add test coverage for core features
- Refactored installer UI with updated canvas rendering, sidebar navigation, and footer buttons.
- Enhanced styling for macOS compatibility and consistent design across controls.
- Added Pytest-based unit tests for `screen.py` and `config.py`.
- Expanded dependency catalog with new tools like `tshark` and `pyshark`.
- Improved error tolerance for background rendering and added placeholders for Kerberos configuration.
2026-01-08 21:51:30 -08:00
chrisfu
73bc5bfede feat: implement encrypted development database with OpenBao and CNPG - Update install.py with password matching visual feedback and OpenBao integration - Enhance etc/init_openbao.sh to store database password in OpenBao KV - Update etc/init_cloudnative_pg.sh to synchronize database password from OpenBao to K8s secrets - Configure CNPG cluster in k8s/prole/prole-db.yaml with pg_hba for password authentication - Update various scripts and app sources for better service integration 2025-12-30 22:18:55 -08:00
chrisfu
325d180e9e fix(installer, scripts): improve read-only text handling and streamline db password input
- Update `screen.py` to make text read-only using `state='disabled'`, while allowing text selection and copying.
- Simplify `init_primary_domain.sh` by removing unnecessary local variable declaration for `db_pass`.
2025-12-20 20:55:52 -08:00
chrisfu
3a1f5ea444 Milestone: Integrated CloudNative-PG initialization and build flow into Prole installer. Added new initialization screens, refactored scripts, and updated k8s manifests. 2025-12-20 20:33:19 -08:00
chrisfu
3f0f4b4c22 install.py drag and drop deploy. mv gcp to deploy dir. add init-port-fowards.sh and port-mappings.properties; now configured by Prole.app 2025-12-14 23:18:54 -08:00
chrisfu
bbeef67a0f merge Dependencies + Deploy into single 'Setup & Deploy' page; add console preview, Next binding, and stable footer"
Live-updating Dependencies (background checks via installer.config.get_dep_info)\n- Final steps retained: pre-completed items + Start Prole Workstation + Install Prole.app\n- Console shows docker run; Enter/Next runs detatched and verifies\n- Drag-to-install popup marks completion on close\n- Fixed-height footer to prevent background geometry shifts\n- Back/Next footer; Next triggers same action as Enter\n\nNote: docker run preview didn’t appear for the user; follow-up fix planned.
2025-12-04 21:03:06 -08:00
chrisfu
120c9c2567 feat(installer): unified welcome flow, reliable footer gating; externalize install scripts; add Ollama; centralize canvas helpers
- Startup/UI: open main window with background; run dependency check on-canvas; hide footer during scan; reveal Next after debounce; add 600ms refresh and 9s failsafe; fixed background image replacement without clearing content.

- Canvas helpers: route all canvas calls via installer/screen.py; consistent status drawing.

- Installer script externalization: per-dependency templates + validator; compose install_dependencies.sh.

- Dependencies: add Ollama and template; install order: brew → ollama → k3d → kubectl → helm → krew → cmctl → plugins.

- Cleanup: removed deprecated splash and unused code paths.
2025-12-04 14:01:28 -08:00
chrisfu
aad4c9c919 installer: switch workstation build to Docker, drop Vagrant
- Remove Vagrant from dependency checks and UI; use Docker for workstation build.\n- Add WORKSTATION_VERSION ARG + OCI version label in workstation/Dockerfile; tag image as prole-workstation:<version>.\n- Add installer.workstation helpers: parse version, compose canonical docker build (auto platform flags on Apple Silicon).\n- Refactor install.py Workstation page to display/execute docker build; write logs to logs/workstation-docker-<ts>.log; update summary links.\n- Update Deploy page copy: "Build workstation Docker image".\n- Centralize footer buttons styling/layout with installer.screen.create_nav_footer and use it from install.py.\n- Update installer package docs to describe Docker-based workstation helpers.
2025-12-03 22:55:21 -08:00