Getting Started
Install Odin platform and CLI in under 15 minutes
Get up and running with Odin on a local Kubernetes cluster. This guide will walk you through installation, configuration, and deploying your first service.
Prerequisites
Hardware Requirements
Local Development (Kind Cluster)
| Resource | Minimum |
|---|---|
| RAM | 6 GB |
| CPU | 4 cores |
| OS | macOS 11+, Linux (Ubuntu 20.04+) |
Software Requirements
The following tools must be installed on your system:
| Tool | Minimum Version | Installation |
|---|---|---|
| kubectl | v1.24+ | Install Guide |
| Helm | v3.8+ | Install Guide |
| Docker | v20.10+ | Install Guide |
| curl | v7.68+ | Pre-installed on most systems |
Kubernetes Version Compatibility
| Kubernetes Version | Status |
|---|---|
| 1.30 - 1.34 | ✅ Compatible |
| < 1.29 | ⚠️ Not Tested |
Quick Start: One-Command Installation
Get Odin running on a local Kind cluster in under 15 minutes:
bash <(curl -fsSL https://raw.githubusercontent.com/ds-horizon/odin/master/install.sh) What This Does
The installation script automatically:
- ✅ Clones the Odin repository
- ✅ Checks and installs prerequisites (kubectl, Helm, Docker, Kind)
- ✅ Creates a local Kind cluster named
odin-cluster - ✅ Sets up local Docker registry
- ✅ Installs KEDA and Percona MySQL Operator
- ✅ Deploys Odin with all components
- ✅ Creates local development accounts
- ✅ Optionally installs Odin CLI
Expected Duration: 7-10 minutes (depending on internet speed and hardware)
CLI Setup
After installation completes, configure the Odin CLI:
Step 1: Locate the CLI Binary
If you installed the CLI during installation:
# CLI is installed in your home directory
ls -la ~/odin
# Move to PATH
sudo mv ~/odin /usr/local/bin/odin
chmod +x /usr/local/bin/odin Step 2: Verify CLI Installation
# Check version
odin version Step 3: Port-Forward to Deployer
Open a terminal and forward the deployer service to localhost:
# Forward deployer service to localhost
kubectl port-forward svc/odin-deployer -n odin 8080:80 Step 4: Configure Odin CLI
In a new terminal, configure the CLI to connect to your local Odin backend:
# Configure Odin CLI for local development
odin configure --org-id 0 --backend-address 127.0.0.1:8080 -I -P Flags explained:
--org-id 0: Use organization ID 0 (default for local development)--backend-address 127.0.0.1:8080: Connect to port-forwarded deployer-I: Skip TLS host verification (insecure mode for local dev)-P: Use plaintext gRPC without TLS
Step 5: Test the Installation
# List environments (should be empty initially)
odin list env If you see the output without errors, congratulations! 🎉 Odin is successfully installed and configured.
Next Steps: Deploy Your First Service
Now that Odin is installed and configured, you can deploy your first service:
- Create an Environment: Set up an isolated namespace for your services
- Define Your Service: Create a service definition JSON
- Configure Provisioning: Specify how components should be deployed
- Deploy: Use the CLI to deploy your service
For a complete walkthrough, see:
- Deploy Your First Service - Step-by-step tutorial
- Key Concepts - Understand environments, services, and components
- CLI Reference - Complete command documentation
Common CLI Commands
Here are some common commands you'll use:
# List all environments
odin list env
# Create an environment
odin create env dev --accounts docker/local
# Describe an environment
odin describe env dev
# Deploy a service
odin deploy service --env dev --file service.json --provisioning provisioning.json
# Check service status
odin status env dev --service my-service
# Undeploy a service
odin undeploy service my-service --env dev
# Get help
odin --help
odin deploy --help Troubleshooting
Port-Forward Connection Issues
If you can't connect to the backend:
# Check if port-forward is running
ps aux | grep "port-forward"
# Verify deployer pod is running
kubectl get pods -n odin | grep deployer
# Restart port-forward
kubectl port-forward svc/odin-deployer -n odin 8080:80 CLI Configuration Issues
If odin list env fails:
# Check CLI configuration
cat ~/.odin/config
# Reconfigure with verbose output
odin configure --org-id 0 --backend-address 127.0.0.1:8080 -I -P --verbose Advanced Installation Options
Installing on Existing Kubernetes Cluster
To install on an existing cluster instead of Kind:
# Clone the repository
git clone https://github.com/ds-horizon/odin.git
cd odin
# Install with Helm directly
helm install odin ./charts/odin --namespace odin --create-namespace Uninstallation
To remove Odin from your cluster:
# Using the uninstall script
cd odin
./uninstall.sh
# Or manually with Helm
helm uninstall odin -n odin
kubectl delete namespace odin