# Prole Service Dependencies Installer A desktop application for installing, deploying, and validating Prole services. ## Features ### 1. Install Screen - Check installation status of required dependencies: - Docker - Homebrew - k3d - kubectl - Helm - krew - cmctl - Download links to each project's homepage - Generate installer script (`install_dependencies.sh`) with all installation commands ### 2. Deploy Screen - Single "Build and Deploy" button that: - Checks Docker is running - Creates or restarts k3d `prole-service-cluster` - Builds the local `prole-db` Docker image - Tags the image for the registry - Pushes the image to the registry - Imports the image to the k3d cluster - Real-time progress tracking with visual indicators (pending, running, completed, error) - Green checkmarks for completed steps ### 3. Validate Screen - Displays `kubectl cnpg status prole-db` output - Shows k3d cluster list status - Auto-refreshes every 10 seconds (can be toggled) - Manual refresh button - Link to Prometheus (http://localhost:9090) ## Usage ### Running the Installer ```bash python3 install.py ``` Or make it executable and run directly: ```bash chmod +x install.py ./install.py ``` ### Requirements - Python 3.6+ - tkinter (usually included with Python on macOS/Linux) - macOS (for Homebrew installation) ### Installation Steps 1. **Install Dependencies**: Use the Install screen to check and install required dependencies 2. **Deploy Services**: Use the Deploy screen to build and deploy Prole services 3. **Validate**: Use the Validate screen to monitor the deployment status ## Notes - The installer requires Docker Desktop to be running for deployment - The k3d cluster name is `prole-service-cluster` as specified in README.md - The Docker image version is `prole-db:17.5-027` - The registry is configured as `k8s-prole-org-registry:k8s.prole.org:5000` ## Apple Silicon Support The installer automatically detects if running on Apple Silicon (ARM64) and: - Sets `--platform linux/amd64` flag for Docker builds - Ensures mssql Docker images are built for AMD64 platform (required for MSSQL Server) - Ensures prole-db images are built for AMD64 platform for compatibility This ensures compatibility with services that require AMD64 architecture, such as MSSQL Server.