$ show opencmit/pangee-cluster
Pangee Cluster is a graphical tool for offline Kubernetes cluster lifecycle management, including installation, upgrade, backup, node operations, and SSH access. The backend is a Go REST API (Gin) that orchestrates Ansible playbooks from versioned resource packages. The frontend is a Vue 3 single-page application (with some legacy Vue 2 patterns) that provides a comprehensive UI for cluster planning, operation execution, real-time log tailing, and SSH terminal. The tool is primarily designed for air-gapped environments where clusters are provisioned from pre-packaged resource bundles containing Kubernetes binaries, container runtimes, and Ansible roles. Despite its functional breadth, the codebase shows signs of technical debt: mixed Vue API styles, heavy mixins, no test suite, and tight coupling to a custom-patched Ansible version. The resource package abstraction and generic form editing components are notable for reusability, but overall the architecture is typical of a production tool that has evolved organically rather than being designed for clean reuse.
The LLM identified 3 files worth highlighting for reuse:
Provides generic functions for deep get, set, and delete operations on nested Go maps with string keys. This is a standalone utility that can be used in any Go project requiring dynamic map traversal, especially for configuration or tree-like data structures. The implementation is concise and handles edge cases (missing keys, type assertions) cleanly, making it easily extractable.
A generic form field component that supports displaying, editing, and viewing modes via a provided injectable edit mode. It serves as the parent for typed edit components (EditString, EditBool, EditNumber, etc.) and handles common layout, validation, and placeholder logic. The pattern is self-contained and can be reused across Vue projects to implement consistent inline editing with minimal customization.
A small, focused function that generates cryptographically secure random passwords of configurable length using Go's crypto/rand. It is parameterized and produces URL-safe alphabetic characters. Simple, correct, and directly reusable in any Go application that needs to generate random passwords or tokens.