Skip to content

About

A modern CLI tool for managing OpenFrame Kubernetes clusters and development workflows. Provides an interactive, user-friendly alternative to shell scripts with comprehensive cluster lifecycle management.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

OpenFrame

License

OpenFrame CLI

OpenFrame CLI (openframe) is a modern, interactive command-line tool for provisioning Kubernetes clusters — locally via k3d or in the cloud via GKE/EKS (using Terraform) — and deploying the OpenFrame platform onto them using ArgoCD's app-of-apps pattern.

It is the primary bootstrap and lifecycle-management tool for OpenFrame, the unified, AI-driven MSP platform built by Flamingo. OpenFrame CLI manages the full lifecycle of an OpenFrame deployment: checking prerequisites, provisioning a cluster, installing the platform, monitoring status, upgrading, and tearing down — with both fully interactive wizards and non-interactive flags for CI/automation.

Note: OpenFrame CLI is one component of the broader OpenFrame ecosystem. The main platform code lives in a separate repository, flamingo-stack/openframe-oss-tenant, which this CLI deploys and manages.

Features

  • One-command bootstrap — openframe bootstrap creates a local k3d cluster and installs the entire OpenFrame platform (ArgoCD + app-of-apps) in a single step.
  • Multi-provider cluster support — Provision clusters locally with k3d (Docker-based, Kubernetes-in-Docker) or in the cloud with GKE (Google) and EKS (AWS), all through Terraform under the hood.
  • Platform lifecycle management — Install, upgrade, monitor status, and uninstall the OpenFrame platform via ArgoCD, without touching the underlying cluster.
  • Interactive and CI-friendly — Every workflow supports an interactive wizard (prompts, spinners, cost estimates) as well as --non-interactive/--skip-wizard flags for automation pipelines.
  • Built-in prerequisites management — Detects missing tools (Docker, k3d, Helm, Terraform, gcloud, AWS CLI) and can auto-install them on macOS/Linux.
  • Live status dashboard — An interactive, k9s-style terminal UI (openframe app status --interactive) for inspecting ArgoCD application health and triggering syncs.
  • Secure by default — All tool binaries are downloaded with pinned versions and SHA256 checksum verification (no curl | bash), and CLI self-updates are verified with Sigstore/cosign signatures.
  • Self-updating — openframe update checks for, downloads, verifies, and applies new CLI releases, with rollback support.

Hardware Requirements

Resource Minimum Recommended
RAM 24 GB 32 GB
CPU Cores 6 12
Disk Space 50 GB 100 GB

These figures reflect running a full local OpenFrame platform install (ArgoCD + app-of-apps) inside a k3d cluster on your machine. Cloud cluster deployments (EKS/GKE) shift most resource consumption to the cloud provider, but the CLI host still needs enough local resources to run Docker, Terraform, and Helm operations.

Quick Start

Install

Windows — download the AMD64 build directly:

https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_windows_amd64.zip

Unzip the archive and run the openframe executable the same way you would run any other installer/binary on your system.

macOS / Linux — download the platform-appropriate archive from the Releases page, unzip it, and place the openframe binary somewhere on your $PATH (e.g. /usr/local/bin).

If you have a Go toolchain available, you can alternatively install directly from source:

go install github.com/flamingo-stack/openframe-cli@latest

Verify the install:

openframe --version

Bootstrap your first environment

# 1. Check that Docker/k3d/helm are ready (auto-installs on macOS/Linux where possible)
openframe prerequisites check

# 2. Bootstrap: creates a local k3d cluster AND installs the OpenFrame platform
openframe bootstrap

openframe bootstrap runs interactively by default — it validates (or prompts for) a cluster name, creates a local k3d cluster, installs ArgoCD via Helm, installs the app-of-apps chart, waits for all ArgoCD applications to become synced/healthy, and prints a summary card with access instructions.

For CI/automation, run it non-interactively:

openframe bootstrap --non-interactive

Confirm everything is healthy and view ArgoCD access credentials:

openframe app status
openframe app access

Technology Stack

OpenFrame CLI is a Go service (module github.com/flamingo-stack/openframe-cli) built with:

  • Cobra — command routing and flag parsing for the entire cmd/ tree.
  • client-go — native Kubernetes API access, replacing shelled-out kubectl calls.
  • pterm — terminal rendering: tables, spinners, boxes, colored status printers.
  • huh and bubbletea — interactive prompts/wizards and the app status --interactive TUI.
  • sigstore-go — cosign keyless signature verification for self-update integrity.
  • External CLI tools invoked via a testable CommandExecutor abstraction: Docker, k3d, Helm, Terraform, gcloud, aws — binaries verified and pinned via a checksum-verified download layer (k3d, Helm, mkcert, Terraform, infracost).

Architecture

OpenFrame CLI is organized around three core abstractions — cluster (provisioning), app (platform deployment via ArgoCD), and prerequisites (tool verification/installation) — plus supporting shared infrastructure for UI, execution, and self-update.

graph TB
    subgraph "CLI Layer"
        Bootstrap[bootstrap]
        Cluster[cluster]
        App[app]
        Prereq[prerequisites]
        Update[update]
    end

    subgraph "Domain Services"
        ClusterSvc["ClusterService"]
        ChartSvc["ChartService"]
        AppStatus["app.status.Service"]
        PrereqFw["prerequisites.Runner"]
        SelfUpdate["selfupdate.Updater"]
    end

    subgraph "Providers"
        K3d["k3d provider"]
        EKS["EKS provider (terraform)"]
        GKE["GKE provider (terraform)"]
        ArgoCD["ArgoCD provider"]
        Helm["Helm provider"]
    end

    subgraph "External Systems"
        Docker[(Docker)]
        K8sAPI[(Kubernetes API)]
        CloudAPI[(GCP / AWS APIs)]
        GitHub[(GitHub Releases)]
    end

    Bootstrap --> ClusterSvc
    Bootstrap --> ChartSvc
    Cluster --> ClusterSvc
    App --> ChartSvc
    App --> AppStatus
    Prereq --> PrereqFw
    Update --> SelfUpdate

    ClusterSvc --> K3d
    ClusterSvc --> EKS
    ClusterSvc --> GKE
    ChartSvc --> ArgoCD
    ChartSvc --> Helm

    K3d --> Docker
    EKS --> CloudAPI
    GKE --> CloudAPI
    ArgoCD --> K8sAPI
    Helm --> K8sAPI
    SelfUpdate --> GitHub
Loading

The CLI deploys the OpenFrame platform, whose main code lives in the separate flamingo-stack/openframe-oss-tenant repository.

Documentation

📚 See the Documentation for comprehensive guides, including getting-started tutorials, development workflows, and architecture reference.

Community

There are no GitHub Issues or Discussions for this project — all discussions happen in the OpenMSP Slack community:


Built with 💛 by the Flamingo team

About

A modern CLI tool for managing OpenFrame Kubernetes clusters and development workflows. Provides an interactive, user-friendly alternative to shell scripts with comprehensive cluster lifecycle management.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages