Skip to content

Repository files navigation

OpenFrame

License Latest Release Slack

OpenFrame CLI

OpenFrame CLI is a modern, interactive command-line tool written in Go that bootstraps and manages OpenFrame Kubernetes environments. With a single openframe binary, you can provision local K3D clusters, install the full OpenFrame platform stack via ArgoCD GitOps, and manage the entire lifecycle of your deployment — through both guided interactive wizards and fully scriptable non-interactive modes.

OpenFrame is the unified platform from Flamingo that integrates multiple MSP tools into a single AI-driven interface, automating IT support operations across the stack.


✨ Features

Feature Description
One-command bootstrap openframe bootstrap provisions a cluster and deploys the full platform in one step
Interactive wizards Step-by-step guided prompts for new users — no YAML editing required
Non-interactive / CI mode --non-interactive flag makes every command scriptable for pipelines
ArgoCD GitOps integration Platform deployment is fully GitOps-driven using the openframe-oss-tenant chart
Auto-prerequisite management Detects and installs Docker, k3d, and Helm automatically on macOS/Linux
Cosign signature verification All self-updates are cryptographically verified against the official release workflow
WSL2 support on Windows Transparently re-executes inside WSL2 — no manual Linux setup needed
Secret redaction Credentials and tokens are automatically scrubbed from all debug output
Machine-readable output --output json/yaml for clean scripted consumption

🏗️ Architecture

graph TB
    subgraph CLI["CLI Entry Point"]
        main["main.go"]
        root["cmd/root.go"]
    end

    subgraph Commands["Command Layer"]
        bootstrap["bootstrap"]
        cluster_cmd["cluster"]
        app_cmd["app"]
        prereq_cmd["prerequisites"]
        update_cmd["update"]
    end

    subgraph Services["Service Layer"]
        bsvc["bootstrap.Service"]
        csvc["cluster.ClusterService"]
        chsvc["chart/services.ChartService"]
        prefw["prerequisites.Runner"]
        supdater["selfupdate.Updater"]
    end

    subgraph Providers["Providers"]
        k3dp["K3D Provider"]
        argop["ArgoCD Manager"]
        helmp["Helm Manager"]
        gitp["Git Repository"]
    end

    subgraph Platform["OpenFrame Platform"]
        k3d["K3D Kubernetes Cluster"]
        argocd["ArgoCD GitOps Engine"]
        openframe["OpenFrame OSS Tenant Chart"]
    end

    main --> root
    root --> Commands
    bootstrap --> bsvc
    cluster_cmd --> csvc
    app_cmd --> chsvc
    prereq_cmd --> prefw
    update_cmd --> supdater

    bsvc --> csvc
    bsvc --> chsvc
    csvc --> k3dp
    chsvc --> argop
    chsvc --> helmp
    chsvc --> gitp

    k3dp --> k3d
    argop --> argocd
    argocd --> openframe
Loading

🚀 Quick Start

System Requirements

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

Step 1: Download the CLI

macOS (Apple Silicon)

curl -L https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_darwin_arm64.tar.gz | tar xz
sudo mv openframe /usr/local/bin/

macOS (Intel)

curl -L https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_darwin_amd64.tar.gz | tar xz
sudo mv openframe /usr/local/bin/

Linux (amd64)

curl -L https://github.com/flamingo-stack/openframe-cli/releases/latest/download/openframe-cli_linux_amd64.tar.gz | tar xz
sudo mv openframe /usr/local/bin/

Windows (amd64)

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

Extract and run the openframe.exe — it automatically forwards commands into WSL2.

Browse all releases: https://github.com/flamingo-stack/openframe-cli/releases

Step 2: Check Prerequisites

openframe prerequisites check

Install any missing tools automatically (macOS/Linux):

openframe prerequisites install

Step 3: Bootstrap OpenFrame

openframe bootstrap

The interactive wizard guides you through cluster naming, configuration, and version selection. For CI/CD environments:

openframe bootstrap --non-interactive

🛠️ Command Reference

openframe bootstrap

Creates a K3D cluster and installs the full OpenFrame platform in a single step.

openframe bootstrap                    # Interactive wizard
openframe bootstrap my-cluster        # Named cluster
openframe bootstrap --non-interactive  # CI/CD mode
openframe bootstrap --verbose          # Show detailed ArgoCD sync progress

openframe cluster

openframe cluster create              # Create a new K3D cluster
openframe cluster list                # List all managed clusters
openframe cluster status              # Show detailed cluster status
openframe cluster delete my-cluster   # Delete a cluster
openframe cluster cleanup             # Remove unused resources

openframe app

openframe app install                 # Install ArgoCD + OpenFrame platform
openframe app upgrade --ref v1.4.0   # Change to a new release tag
openframe app status                  # Show platform readiness
openframe app access                  # Print ArgoCD credentials and URLs
openframe app uninstall               # Remove app (keep cluster)

openframe update

openframe update                      # Update to latest release
openframe update check                # Check for available updates
openframe update rollback             # Revert to previous version

🔧 Technology Stack

Technology Role
Go Primary language
Cobra CLI framework (command/flag parsing)
K3D Local Kubernetes cluster provider
ArgoCD GitOps deployment engine (via client-go dynamic client)
Helm Kubernetes package manager (CLI wrapper)
go-git Git operations (no git binary dependency)
client-go Kubernetes API client
pterm Terminal UI rendering (spinners, prompts, colors)
Sigstore/cosign Binary signature verification for self-updates

📦 External Platform Repository

The OpenFrame platform configuration (Helm charts, values) lives in a separate repository:


📚 Documentation

See the Documentation Index for comprehensive guides:


💬 Community & Support

All discussions, support, and feature requests happen in the OpenMSP Slack community — there are no GitHub Issues or Discussions for this project.


🤝 Contributing

See CONTRIBUTING.md for guidelines on code style, branch naming, commit messages, and the PR process.


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

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages