OmniDeploy¶
Universal deployment tool for container applications.
Deploy to any cloud provider using any Infrastructure as Code tool.
Overview¶
OmniDeploy separates where you deploy (targets) from how you provision (backends), giving you flexibility to choose the best combination for your needs.
Backend (HOW to provision)
┌─────────┬─────────┬───────────┐
│ Pulumi │ CDK │ Terraform │
┌───────────┼─────────┼─────────┼───────────┤
│ LightSail │ ✓ │ ◐ │ ◐ │
Target │ ECS │ ◐ │ ◐ │ ◐ │
(WHERE) │ AgentCore │ ◐ │ ◐ │ ◐ │
│ Kubernetes│ ◐ │ - │ ◐ │
│ DigitalOcean│ ◐ │ - │ ◐ │
└───────────┴─────────┴─────────┴───────────┘
✓ = Available ◐ = Planned - = Not applicable
Key Features¶
- Multi-Target: Deploy to AWS LightSail, ECS, Kubernetes, DigitalOcean, and more
- Multi-Backend: Use Pulumi, AWS CDK, or Terraform as your IaC tool
- Runtime Adapters: Auto-detect OmniAgent, AgentKit, or generic container configs
- Simple CLI: One command to deploy, preview, or destroy
- CI/CD Ready: Built-in support for GitHub Actions and GitLab CI
Quick Start¶
# Install
go install github.com/plexusone/omnideploy/cmd/omnideploy@latest
# Deploy to AWS LightSail using Pulumi
omnideploy up --config deploy.yaml --target lightsail --backend pulumi
# Preview changes
omnideploy preview --config deploy.yaml
# Destroy
omnideploy destroy --stack my-app
Example Configuration¶
name: my-api
region: us-east-1
container:
image: nginx:latest
ports:
- container_port: 80
protocol: HTTP
service:
replicas: 1
public: true
resources:
size: micro
Architecture¶
OmniDeploy uses a pluggable architecture with three main components:
- Targets - Define where to deploy (LightSail, ECS, Kubernetes)
- Backends - Define how to provision (Pulumi, CDK, Terraform)
- Runtime Adapters - Translate app configs to deployment configs
┌─────────────────────────────────────────────────────┐
│ Your Application │
│ (OmniAgent, AgentKit, Container) │
└─────────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Runtime Adapter │
│ Converts app config → deployment config │
└─────────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────┐
│ Deployment Config │
│ (containers, ports, resources, health) │
└─────────────────────────┬───────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ LightSail│ │ ECS │ │ K8s │
│ Target │ │ Target │ │ Target │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
└─────────────┼─────────────┘
▼
┌─────────────────────────┐
│ IaC Backend │
│ (Pulumi, CDK, TF) │
└─────────────────────────┘
Next Steps¶
- Installation - Install omnideploy
- Quick Start - Deploy your first app
- Concepts - Understand the architecture
- Configuration - Full configuration reference