Knowledge Hub
Comprehensive guides and references for the OpenFrame platform
Comprehensive guides and references for the OpenFrame platform
Before installing and using OpenFrame CLI, ensure your system meets the following requirements and has the necessary dependencies installed.
| Resource | Minimum | Recommended |
|---|---|---|
| RAM | 24GB | 32GB |
| CPU Cores | 6 cores | 12 cores |
| Disk Space | 50GB free | 100GB free |
| Architecture | x86_64, ARM64 | x86_64, ARM64 |
| OS | Version | Status |
|---|---|---|
| Linux | Ubuntu 20.04+, CentOS 8+, RHEL 8+ | ✅ Fully Supported |
| macOS | 11+ (Big Sur and later) | ✅ Fully Supported |
| Windows | Windows 10/11 with WSL2 | ⚠️ Supported via WSL2 |
Windows Users: OpenFrame CLI requires WSL2 for proper Kubernetes integration. Native Windows support is not currently available.
These tools must be installed before using OpenFrame CLI:
| Tool | Version | Purpose | Installation |
|---|---|---|---|
| Docker | 20.10+ | Container runtime for K3D clusters | Docker Install Guide |
| kubectl | 1.25+ | Kubernetes command-line tool | kubectl Install Guide |
| Helm | 3.10+ | Kubernetes package manager | Helm Install Guide |
| K3D | 5.0+ | Lightweight Kubernetes clusters | K3D Install Guide |
Required only if using development features (openframe dev commands):
| Tool | Version | Purpose | Installation |
|---|---|---|---|
| Telepresence | 2.10+ | Service intercepts for local development | Telepresence Install |
| jq | 1.6+ | JSON processing for dev scripts | jq Install Guide |
docker --version
docker ps
Expected output:
Docker version 20.10.0 or higher
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
kubectl version --client
Expected output:
Client Version: version.Info{Major:"1", Minor:"25"+...}
helm version
Expected output:
version.BuildInfo{Version:"v3.10.0"+...}
k3d version
Expected output:
k3d version v5.0.0+
telepresence version
Expected output:
Client: v2.10.0+
jq --version
Expected output:
jq-1.6+
OpenFrame CLI requires internet access for:
| Port Range | Protocol | Purpose |
|---|---|---|
| 80, 443 | TCP | HTTPS/HTTP for downloads |
| 6443 | TCP | Kubernetes API server |
| 30000-32767 | TCP | Kubernetes NodePort range |
| 2376, 2377 | TCP | Docker daemon (if remote) |
Ensure your firewall allows:
Set these environment variables for optimal experience:
# Docker daemon configuration
export DOCKER_HOST="unix:///var/run/docker.sock"
# Kubernetes configuration
export KUBECONFIG="$HOME/.kube/config"
# OpenFrame CLI configuration
export OPENFRAME_LOG_LEVEL="info"
export OPENFRAME_CONFIG_DIR="$HOME/.openframe"
# Development tools
export TELEPRESENCE_LOGIN_DOMAIN="auth.datawire.io"
For convenience, here's a script to verify all prerequisites:
#!/bin/bash
# prerequisites-check.sh
echo "🔍 Checking OpenFrame CLI prerequisites..."
# Function to check if command exists
command_exists() {
command -v "$1" >/dev/null 2>&1
}
# Function to check version
check_version() {
local tool="$1"
local min_version="$2"
local current_version="$3"
echo " $tool: $current_version (required: $min_version+)"
}
errors=0
# Check Docker
if command_exists docker; then
docker_version=$(docker --version | cut -d' ' -f3 | cut -d',' -f1)
check_version "Docker" "20.10.0" "$docker_version"
if ! docker ps >/dev/null 2>&1; then
echo " ❌ Docker daemon is not running or accessible"
((errors++))
fi
else
echo " ❌ Docker not found"
((errors++))
fi
# Check kubectl
if command_exists kubectl; then
kubectl_version=$(kubectl version --client -o json 2>/dev/null | jq -r '.clientVersion.gitVersion' 2>/dev/null || echo "unknown")
check_version "kubectl" "1.25.0" "$kubectl_version"
else
echo " ❌ kubectl not found"
((errors++))
fi
# Check Helm
if command_exists helm; then
helm_version=$(helm version --short | cut -d'+' -f1)
check_version "Helm" "3.10.0" "$helm_version"
else
echo " ❌ Helm not found"
((errors++))
fi
# Check K3D
if command_exists k3d; then
k3d_version=$(k3d version | grep k3d | cut -d' ' -f2)
check_version "K3D" "5.0.0" "$k3d_version"
else
echo " ❌ K3D not found"
((errors++))
fi
# Check optional tools
echo ""
echo "📋 Optional development tools:"
if command_exists telepresence; then
telepresence_version=$(telepresence version --output=json 2>/dev/null | jq -r '.client.version' 2>/dev/null || "unknown")
check_version "Telepresence" "2.10.0" "$telepresence_version"
else
echo " ⚠️ Telepresence not found (optional for dev workflows)"
fi
if command_exists jq; then
jq_version=$(jq --version | cut -d'-' -f2)
check_version "jq" "1.6" "$jq_version"
else
echo " ⚠️ jq not found (optional for dev scripts)"
fi
echo ""
if [ $errors -eq 0 ]; then
echo "✅ All required prerequisites are installed!"
echo "🚀 You're ready to install OpenFrame CLI"
else
echo "❌ $errors required dependencies are missing"
echo "📖 Please install missing dependencies before proceeding"
exit 1
fi
Save this as prerequisites-check.sh, make it executable, and run:
chmod +x prerequisites-check.sh
./prerequisites-check.sh
If you get permission denied errors:
# Add your user to the docker group
sudo usermod -aG docker $USER
# Log out and back in, or run:
newgrp docker
# Create kubeconfig directory
mkdir -p ~/.kube
# Verify KUBECONFIG environment variable
echo `$KUBECONFIG`
# If using Homebrew
brew install k3d
# If using curl
curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
wsl --installOnce all prerequisites are installed and verified:
Need help? Join our community: