Commit Graph

58 Commits

Author SHA1 Message Date
Paul Payne
fff321b05c fix: Use camelCase JSON tags for ClusterStatus and NodeStatus API responses
The Go structs used snake_case JSON tags (kubernetes_version, control_plane_nodes, etc.)
but the frontend expected camelCase, with no conversion layer. This broke the Kubernetes
version, node counts, and node status display on the dashboard and cluster pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-19 04:40:21 +00:00
Paul Payne
bdbc26d892 WIP: Blue-green backup-restore implementation
Continuation of blue-green backup work. Includes recovery plan
generation, active deployment tracking, and strategy updates for
postgres, mysql, longhorn, and config. Incomplete — branched to
make way for services/apps convergence.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-18 04:25:40 +00:00
Paul Payne
0dabb8b824 feat: add script execution functionality in app manifests and enhance manifest handling 2026-05-18 04:24:18 +00:00
Paul Payne
7ddebaa80c feat: add directory copying functionality during app update process 2026-05-18 03:39:31 +00:00
Paul Payne
18259034ea feat: enhance deployment process with CRD handling and refactor node management components 2026-05-18 03:33:05 +00:00
Paul Payne
48f8809587 feat: add node upgrade and rollback commands to CLI
- Implemented `node upgrade <hostname> <version>` command to upgrade a node's Talos version.
- Implemented `node rollback <hostname>` command to rollback a node to its previous Talos version.
- Added corresponding API calls for node upgrade and rollback in the nodes service.
- Enhanced CLI help documentation for new commands.

feat: introduce Talos utilities in CLI

- Added `talos` command group for Talos Image Factory utilities.
- Implemented `talos versions` command to list available Talos versions.
- Implemented `talos validate <schematic-id> <version>` command to validate schematic compatibility.
- Implemented `talos client` command to show talosctl client information and upgrade functionality.

feat: integrate Talos version selection in UI components

- Created `TalosVersionSelect` component for selecting Talos versions.
- Updated `CentralComponent`, `ClusterSettings`, `NodeUpgradeDialog`, and asset pages to use the new version selection component.
- Added validation feedback for schematic compatibility in relevant components.

fix: update entity tile to support version display

- Modified `EntityTile` component to accept React nodes for descriptions, allowing for version display alongside IP addresses.

chore: refactor API hooks for Talos

- Created new hooks for fetching Talos versions, validating schematics, and managing Talos client information and upgrades.
- Updated existing services and components to utilize the new hooks for improved data management and reactivity.
2026-05-18 02:53:54 +00:00
Paul Payne
da7a165447 Enhance namespace resolution and backup functionality
- Implemented ResolveNamespace method to determine the Kubernetes namespace for an app based on priority: config.yaml, manifest, or appName.
- Updated AppsGetLogs and AppsGetEvents handlers to use the resolved namespace.
- Modified backup process to correctly reference the app's namespace when copying secrets.
- Added unit tests for ResolveNamespace and copyDir functions to ensure correct behavior.
2026-05-17 23:24:20 +00:00
Paul Payne
2b8ef8e2b6 Add manifests endpoint and integrate into app detail panel 2026-05-17 22:32:55 +00:00
Paul Payne
b1f0ba07d8 Refactor application and cluster services management
- Removed the ClusterServicesComponent and integrated its functionality into the AppsComponent.
- Updated AppSidebar to reflect the removal of cluster services navigation.
- Adjusted AppsComponent to handle infrastructure services, including fetching, compiling, and deploying.
- Enhanced AppDetailPanel to support infrastructure-specific actions and lifecycle status display.
- Modified routing to redirect cluster-related paths to the apps section, ensuring proper phase checks.
- Updated phase guard logic to accommodate multiple required phases for app management.
- Cleaned up unused ServiceCard component and related imports.
- Adjusted app status types to include category for better categorization of apps.
2026-05-17 22:26:09 +00:00
Paul Payne
f37cb458f8 Add infrastructure setup. 2026-05-17 19:22:56 +00:00
Paul Payne
2dd661118c Consolidate service/app. 2026-05-17 19:11:10 +00:00
Paul Payne
7e017eaec7 Removes unnecessary crowdsec cluster role. 2026-05-16 22:45:53 +00:00
Paul Payne
f1a6a70bf8 Update crowdsec and change deployment to use /var/log on affinity traefik node instead of API (performance improvement and traffic-burst DOS prevention). 2026-05-16 22:45:01 +00:00
Paul Payne
5804c5fdd0 k8s dashboard replaced by headlamp 2026-05-16 22:21:53 +00:00
Paul Payne
42a58d383f Blue-green backup-restore implementation (incomplete). 2026-03-04 17:32:23 +00:00
Paul Payne
773d2e88c8 fix(postgres): Separate drop and create database commands in Restore function 2026-03-02 05:19:37 +00:00
Paul Payne
86cf4443d6 feat(postgres): Enhance database name retrieval from config.yaml for PostgreSQL strategy 2026-03-01 17:56:11 +00:00
Paul Payne
5f305672ac feat(kubectl): Add GetPodsByDeployment and GetPodsByLabel methods for improved pod retrieval
refactor(logs): Enhance pod retrieval logic in GetLogs and StreamLogs methods
refactor(backup): Update JSON unmarshalling to marshal response data before parsing
2026-02-28 21:31:58 +00:00
Paul Payne
26c88decd8 New backup system. 2026-02-28 20:51:46 +00:00
Paul Payne
aa528a2b01 feat(config): Implement config value extraction and tracking for service compilation 2026-02-28 07:58:44 +00:00
Paul Payne
395b740d78 refactor(deployment): Update deployment state terminology from 'needs_redeploy' to 'out_of_sync' 2026-02-28 07:21:43 +00:00
Paul Payne
07bb8f83ef feat(apps): Add restart functionality for deployed apps and update related components 2026-02-28 05:20:06 +00:00
Paul Payne
09171b7d85 refactor(config): Remove dnsmasq configuration from global settings and update related tests and components 2026-02-17 09:21:05 +00:00
Paul Payne
f8e826eade refactor(dns): Remove DNS configuration interface from global settings and clean up related UI components 2026-02-17 08:30:50 +00:00
Paul Payne
591c58a1a5 feat(dns): Implement modular dnsmasq configuration and update instance DNS handling
refactor(tests): Enhance DNS testing functionality and streamline component structure
refactor(ui): Improve loading states and descriptions in service and app detail dialogs
2026-02-17 07:58:15 +00:00
Paul Payne
afa39a9786 refactor(sse): Update event type formatting for Kubernetes resources in watchers and tests 2026-02-17 06:18:02 +00:00
Paul Payne
4f08487abe refactor: Clean up unused functions and improve error handling in tests 2026-02-17 06:11:09 +00:00
Paul Payne
f8ca59f6ef refactor(tests): Rename and enhance resource quantity parsing tests for CPU and memory 2026-02-17 05:56:42 +00:00
Paul Payne
982933e802 feat(sse): Add Server-Sent Events support for real-time updates in web app 2026-02-17 05:56:35 +00:00
Paul Payne
2ed8c94d2a feat: Implement global SSE architecture and remove all polling
- Replaced all polling with Server-Sent Events (SSE) for real-time updates
- Created unified global SSE endpoint at /api/v1/events
- Implemented SSE broadcasting for operations, central status, and dnsmasq events
- Added SSE manager with wildcard subscription support for global events
- Created useGlobalSSE hook with singleton connection management
- Updated all frontend hooks to use SSE instead of polling:
  - useApps: SSE for app deployments and status
  - useSetupStatus: SSE for setup operations
  - useNodes: SSE for node management
  - useDnsmasq: SSE for DNS configuration
  - useCentralStatus: SSE for central daemon status
  - useServices: SSE for service management
  - useOperations: SSE for long-running operations
- Fixed CORS configuration for wild-central.lan access
- Fixed SSE connection loop issues with proper state management
- Added client-side event filtering for instance-specific updates
- Increased React Query staleTime since SSE provides real-time updates
- Added proper cleanup and reconnection logic with timeouts

This eliminates all polling overhead and provides instant UI updates
when cluster state changes occur.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-17 04:53:49 +00:00
Paul Payne
326a6bf2b6 feat(backup): Implement backup resource discovery for apps and enhance app detail panel with backup data display 2026-02-16 22:16:50 +00:00
Paul Payne
d0f03dd644 fix(api): Correct CPU percentage calculation in resource metrics
The CPU percentage was showing incorrect values (e.g., 10,000% instead of 10%)
because the parseResourceQuantity function wasn't properly converting CPU cores
to millicores. CPU values specified as whole numbers (e.g., "1" for 1 core) were
being treated as 1 millicore instead of 1000 millicores.

Split parseResourceQuantity into separate parseCPUQuantity and parseMemoryQuantity
functions to properly handle the different unit conversions:
- CPU values without "m" suffix are now converted from cores to millicores (×1000)
- CPU values with "m" suffix remain in millicores
- Memory parsing remains unchanged

This ensures consistent millicore units for accurate percentage calculations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-02-13 06:23:09 +00:00
Paul Payne
6f221978fa Enhance app and node management: update deployment status handling, introduce EntityTile component for UI consistency, and implement live app status fetching 2026-02-13 05:16:38 +00:00
Paul Payne
543967ae81 Refactor CoreDNS and utility installation scripts to use kustomize for applying configurations, and update version in utility manifest 2026-02-11 16:31:46 +00:00
Paul Payne
9e97ec6aa9 Enhance service management: add checks for manifest and kustomization files, improve error handling in Fetch, and implement CleanFiles method to remove service files 2026-02-11 16:30:09 +00:00
Paul Payne
b7da8133e1 Add endpoint to clean compiled and cached service files 2026-02-11 16:29:56 +00:00
Paul Payne
7c8c182a9c Enhance service lifecycle management: add lifecycle status tracking, update UI components for lifecycle actions, and improve service manifest definitions 2026-02-10 09:24:33 +00:00
Paul Payne
96dfaaf07c Add comprehensive documentation for Talos v1.11: architecture, operations, troubleshooting, and CLI essentials 2026-02-10 07:28:58 +00:00
Paul Payne
5d8129dad8 Refactor service management: update SMTP handling to be configuration-only and enhance CloudComponent with SMTP configuration UI 2026-02-10 06:30:35 +00:00
Paul Payne
c054dbff39 Fix type-check problems. 2026-02-10 06:03:57 +00:00
Paul Payne
01bea32b9c Refactor cluster configuration management: streamline instance configuration checks, remove unused cluster settings, and replace NodeFormDrawer with NodeFormDialog for improved node management. 2026-02-01 18:45:36 +00:00
Paul Payne
654fcc94a2 Enhance DNS configuration: add support for commented DNS entries without load balancer IP; update instance count logic to include commented domains; implement dynamic DNS configuration with save functionality and setup instructions. 2026-02-01 13:24:39 +00:00
Paul Payne
8c5e83f667 Remove Talos version check from instance configuration phase for streamlined setup validation 2026-02-01 11:46:54 +00:00
Paul Payne
f6864bb2a7 Refactor configuration management to replace 'dns' with 'dnsmasq' for clarity; update EnsureInstanceConfig to accept instance name, and streamline instance creation in the main API. 2026-02-01 11:28:23 +00:00
Paul Payne
0d4fb41e7e Refactor DNS configuration to use 'dnsmasq' instead of 'dns' for improved clarity and consistency across the codebase; update related tests and configuration files accordingly. 2026-02-01 10:42:48 +00:00
Paul Payne
4e49c435a9 Enhance configuration management by adding global config validation and network detection; refactor tests to align with updated config structure 2026-02-01 09:00:03 +00:00
Paul Payne
c20006192e Refactor type definitions to use 'unknown' instead of 'any' for improved type safety across multiple components and services 2026-02-01 08:03:25 +00:00
Paul Payne
158b1cbf6b Add setup status endpoint and enhance instance configuration structure 2026-01-28 08:08:16 +00:00
Paul Payne
5c582f07a9 Refactor configuration structure and update test cases for instance configuration 2026-01-28 01:12:18 +00:00
Paul Payne
229f52baa0 Terminal access from the app. 2026-01-12 00:49:18 +00:00