319 lines
6.4 KiB
Markdown
319 lines
6.4 KiB
Markdown
|
|
# Prerequisites
|
||
|
|
|
||
|
|
Before installing the Provisioning platform, ensure your system meets the following requirements.
|
||
|
|
|
||
|
|
## Required Software
|
||
|
|
|
||
|
|
### Nushell 0.109.1+
|
||
|
|
|
||
|
|
Nushell is the primary shell and scripting environment for the platform.
|
||
|
|
|
||
|
|
**Installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# macOS (Homebrew)
|
||
|
|
brew install nushell
|
||
|
|
|
||
|
|
# Linux (Cargo)
|
||
|
|
cargo install nu
|
||
|
|
|
||
|
|
# From source
|
||
|
|
git clone [https://github.com/nushell/nushell](https://github.com/nushell/nushell)
|
||
|
|
cd nushell
|
||
|
|
cargo install --path .
|
||
|
|
```
|
||
|
|
|
||
|
|
**Verify installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
nu --version
|
||
|
|
# Should show: 0.109.1 or higher
|
||
|
|
```
|
||
|
|
|
||
|
|
### Nickel 1.15.1+
|
||
|
|
|
||
|
|
Nickel is the infrastructure-as-code language providing type-safe configuration with lazy evaluation.
|
||
|
|
|
||
|
|
**Installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# macOS (Homebrew)
|
||
|
|
brew install nickel
|
||
|
|
|
||
|
|
# Linux (Cargo)
|
||
|
|
cargo install nickel-lang-cli
|
||
|
|
|
||
|
|
# From source
|
||
|
|
git clone [https://github.com/tweag/nickel](https://github.com/tweag/nickel)
|
||
|
|
cd nickel
|
||
|
|
cargo install --path cli
|
||
|
|
```
|
||
|
|
|
||
|
|
**Verify installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
nickel --version
|
||
|
|
# Should show: 1.15.1 or higher
|
||
|
|
```
|
||
|
|
|
||
|
|
### SOPS 3.10.2+
|
||
|
|
|
||
|
|
SOPS (Secrets OPerationS) provides encrypted configuration and secrets management.
|
||
|
|
|
||
|
|
**Installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# macOS (Homebrew)
|
||
|
|
brew install sops
|
||
|
|
|
||
|
|
# Linux (binary download)
|
||
|
|
wget [https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.linux.amd64](https://github.com/getsops/sops/releases/download/v3.10.2/sops-v3.10.2.linux.amd64)
|
||
|
|
sudo mv sops-v3.10.2.linux.amd64 /usr/local/bin/sops
|
||
|
|
sudo chmod +x /usr/local/bin/sops
|
||
|
|
```
|
||
|
|
|
||
|
|
**Verify installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sops --version
|
||
|
|
# Should show: 3.10.2 or higher
|
||
|
|
```
|
||
|
|
|
||
|
|
### Age 1.2.1+
|
||
|
|
|
||
|
|
Age provides modern encryption for secrets used by SOPS.
|
||
|
|
|
||
|
|
**Installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# macOS (Homebrew)
|
||
|
|
brew install age
|
||
|
|
|
||
|
|
# Linux (binary download)
|
||
|
|
wget [https://github.com/FiloSottile/age/releases/download/v1.2.1/age-v1.2.1-linux-amd64.tar.gz](https://github.com/FiloSottile/age/releases/download/v1.2.1/age-v1.2.1-linux-amd64.tar.gz)
|
||
|
|
tar xzf age-v1.2.1-linux-amd64.tar.gz
|
||
|
|
sudo mv age/age /usr/local/bin/
|
||
|
|
sudo chmod +x /usr/local/bin/age
|
||
|
|
```
|
||
|
|
|
||
|
|
**Verify installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
age --version
|
||
|
|
# Should show: 1.2.1 or higher
|
||
|
|
```
|
||
|
|
|
||
|
|
### K9s 0.50.6+
|
||
|
|
|
||
|
|
K9s provides a terminal UI for managing Kubernetes clusters.
|
||
|
|
|
||
|
|
**Installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# macOS (Homebrew)
|
||
|
|
brew install derailed/k9s/k9s
|
||
|
|
|
||
|
|
# Linux (binary download)
|
||
|
|
wget [https://github.com/derailed/k9s/releases/download/v0.50.6/k9s_Linux_amd64.tar.gz](https://github.com/derailed/k9s/releases/download/v0.50.6/k9s_Linux_amd64.tar.gz)
|
||
|
|
tar xzf k9s_Linux_amd64.tar.gz
|
||
|
|
sudo mv k9s /usr/local/bin/
|
||
|
|
```
|
||
|
|
|
||
|
|
**Verify installation**:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
k9s version
|
||
|
|
# Should show: 0.50.6 or higher
|
||
|
|
```
|
||
|
|
|
||
|
|
## Optional Software
|
||
|
|
|
||
|
|
### mdBook
|
||
|
|
|
||
|
|
For building and serving local documentation.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Install with Cargo
|
||
|
|
cargo install mdbook
|
||
|
|
|
||
|
|
# Verify
|
||
|
|
mdbook --version
|
||
|
|
```
|
||
|
|
|
||
|
|
### Docker or Podman
|
||
|
|
|
||
|
|
Container runtime for test environments and local development.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Docker (macOS)
|
||
|
|
brew install --cask docker
|
||
|
|
|
||
|
|
# Podman (Linux)
|
||
|
|
sudo apt-get install podman
|
||
|
|
|
||
|
|
# Verify
|
||
|
|
docker --version
|
||
|
|
# or
|
||
|
|
podman --version
|
||
|
|
```
|
||
|
|
|
||
|
|
### Cargo (Rust)
|
||
|
|
|
||
|
|
Required for building platform services and native plugins.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Install Rust and Cargo
|
||
|
|
curl --proto '=https' --tlsv1.2 -sSf [https://sh.rustup.rs](https://sh.rustup.rs) | sh
|
||
|
|
|
||
|
|
# Verify
|
||
|
|
cargo --version
|
||
|
|
```
|
||
|
|
|
||
|
|
### Git
|
||
|
|
|
||
|
|
Version control for workspace management and configuration.
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Most systems have Git pre-installed
|
||
|
|
git --version
|
||
|
|
|
||
|
|
# Install if needed (macOS)
|
||
|
|
brew install git
|
||
|
|
|
||
|
|
# Install if needed (Linux)
|
||
|
|
sudo apt-get install git
|
||
|
|
```
|
||
|
|
|
||
|
|
## System Requirements
|
||
|
|
|
||
|
|
### Minimum Hardware
|
||
|
|
|
||
|
|
**Development Workstation**:
|
||
|
|
|
||
|
|
- CPU: 2 cores
|
||
|
|
- RAM: 4 GB
|
||
|
|
- Disk: 20 GB available space
|
||
|
|
- Network: Internet connection for provider APIs
|
||
|
|
|
||
|
|
**Production Control Plane**:
|
||
|
|
|
||
|
|
- CPU: 4 cores
|
||
|
|
- RAM: 8 GB
|
||
|
|
- Disk: 50 GB available space (SSD recommended)
|
||
|
|
- Network: Stable internet connection, public IP optional
|
||
|
|
|
||
|
|
### Supported Operating Systems
|
||
|
|
|
||
|
|
**Primary Support**:
|
||
|
|
|
||
|
|
- macOS 12.0+ (Monterey or newer)
|
||
|
|
- Linux distributions with kernel 5.0+
|
||
|
|
- Ubuntu 20.04 LTS or newer
|
||
|
|
- Debian 11 or newer
|
||
|
|
- Fedora 35 or newer
|
||
|
|
- RHEL 8 or newer
|
||
|
|
|
||
|
|
**Limited Support**:
|
||
|
|
|
||
|
|
- Windows 10/11 via WSL2 (Windows Subsystem for Linux)
|
||
|
|
|
||
|
|
### Network Requirements
|
||
|
|
|
||
|
|
**Outbound Access**:
|
||
|
|
|
||
|
|
- HTTPS (443) to cloud provider APIs
|
||
|
|
- HTTPS (443) to GitHub (for version updates)
|
||
|
|
- SSH (22) for server management
|
||
|
|
|
||
|
|
**Inbound Access** (optional, for platform services):
|
||
|
|
|
||
|
|
- Port 8080: HTTP API
|
||
|
|
- Port 8081: MCP server
|
||
|
|
- Port 5000: Orchestrator service
|
||
|
|
|
||
|
|
### Cloud Provider Access
|
||
|
|
|
||
|
|
At least one cloud provider account with API credentials:
|
||
|
|
|
||
|
|
**UpCloud**:
|
||
|
|
|
||
|
|
- API username and password
|
||
|
|
- Account with sufficient quota for servers
|
||
|
|
|
||
|
|
**AWS**:
|
||
|
|
|
||
|
|
- AWS Access Key ID and Secret Access Key
|
||
|
|
- IAM permissions for EC2, VPC, EBS operations
|
||
|
|
- Account with sufficient EC2 quota
|
||
|
|
|
||
|
|
**Local Provider**:
|
||
|
|
|
||
|
|
- Docker or Podman installed
|
||
|
|
- Sufficient local system resources
|
||
|
|
|
||
|
|
## Permission Requirements
|
||
|
|
|
||
|
|
### User Permissions
|
||
|
|
|
||
|
|
**Standard User** (recommended):
|
||
|
|
|
||
|
|
- Read/write access to workspace directory
|
||
|
|
- Ability to create symlinks for CLI installation
|
||
|
|
- SSH key generation capability
|
||
|
|
|
||
|
|
**Administrative Tasks** (optional):
|
||
|
|
|
||
|
|
- Installing CLI to `/usr/local/bin` (requires sudo)
|
||
|
|
- Installing system-wide dependencies
|
||
|
|
- Configuring system services
|
||
|
|
|
||
|
|
### File System Permissions
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Workspace directory
|
||
|
|
chmod 755 ~/provisioning-workspace
|
||
|
|
|
||
|
|
# Configuration files
|
||
|
|
chmod 600 ~/.config/provisioning/user_config.yaml
|
||
|
|
chmod 600 ~/.ssh/provisioning_*
|
||
|
|
|
||
|
|
# Executable permissions for CLI
|
||
|
|
chmod +x /path/to/provisioning/core/cli/provisioning
|
||
|
|
```
|
||
|
|
|
||
|
|
## Verification Checklist
|
||
|
|
|
||
|
|
Before proceeding to installation, verify all prerequisites:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check required tools
|
||
|
|
nu --version # 0.109.1+
|
||
|
|
nickel --version # 1.15.1+
|
||
|
|
sops --version # 3.10.2+
|
||
|
|
age --version # 1.2.1+
|
||
|
|
k9s version # 0.50.6+
|
||
|
|
|
||
|
|
# Check optional tools
|
||
|
|
mdbook --version # Latest
|
||
|
|
docker --version # Latest
|
||
|
|
cargo --version # Latest
|
||
|
|
git --version # Latest
|
||
|
|
|
||
|
|
# Verify system resources
|
||
|
|
nproc # CPU cores (2+ minimum)
|
||
|
|
free -h # RAM (4GB+ minimum)
|
||
|
|
df -h ~ # Disk space (20GB+ minimum)
|
||
|
|
|
||
|
|
# Test network connectivity
|
||
|
|
curl -I [https://api.github.com](https://api.github.com)
|
||
|
|
curl -I [https://hub.upcloud.com](https://hub.upcloud.com) # UpCloud API
|
||
|
|
curl -I [https://ec2.amazonaws.com](https://ec2.amazonaws.com) # AWS API
|
||
|
|
```
|
||
|
|
|
||
|
|
## Next Steps
|
||
|
|
|
||
|
|
Once all prerequisites are met, proceed to:
|
||
|
|
|
||
|
|
- [Installation](installation.md) - Install the Provisioning platform
|
||
|
|
- [Quick Start](quick-start.md) - Deploy your first infrastructure in 5 minutes
|