Knowledge Hub
Comprehensive guides and references for the OpenFrame platform
Comprehensive guides and references for the OpenFrame platform
Guides for building, running, and contributing to OpenFrame CLI.
| Technology | Purpose | Version |
|---|---|---|
| Go | Primary language | 1.26 |
| Cobra | CLI framework | v1.10 |
| client-go | Kubernetes API client | v0.36 |
| k3d | Local Kubernetes clusters | v5+ |
| Helm | Chart installation | v3+ |
| ArgoCD | GitOps deployments (consumed via the Kubernetes dynamic client) | — |
openframe-cli/
├── main.go # Application entry point
├── go.mod / go.sum # Go module definition and checksums
├── Makefile # build / test / lint targets
├── cmd/ # CLI command definitions
│ ├── root.go # Root command and version info
│ ├── bootstrap/ # Full environment bootstrap
│ ├── cluster/ # Cluster management (create/delete/list/status/cleanup)
│ ├── app/ # App-of-apps install/upgrade/status/access/uninstall
│ ├── prerequisites/ # Prerequisite check/install
│ └── update/ # Self-update (check/rollback)
├── internal/ # Private application code
│ ├── bootstrap/ # Bootstrap orchestration
│ ├── cluster/ # Cluster lifecycle management
│ ├── chart/ # Helm/ArgoCD integration
│ ├── app/ # App install/upgrade logic
│ ├── k8s/ # Kubernetes client helpers
│ ├── platform/ # OS/platform detection
│ ├── prerequisites/ # Prerequisite detection and install
│ └── shared/ # Common utilities (incl. wsllauncher for Windows/WSL2)
├── tests/ # Cross-package tests
│ ├── integration/ # Integration tests
│ └── testutil/ # Test helpers
└── docs/ # Documentation
Unit tests are colocated as *_test.go files inside each package under cmd/ and internal/.
flowchart TD
A[Fork Repository] --> B[Setup Dev Environment]
B --> C[Create Feature Branch]
C --> D[Write Code & Tests]
D --> E[make test]
E --> F{Tests Pass?}
F -->|No| D
F -->|Yes| G[make lint]
G --> H[Commit & Push]
H --> I[Open Pull Request]
On Windows the CLI forwards into WSL2 and runs as a Linux binary; the WSL launch is handled by internal/shared/wsllauncher.