Nomad PaaS Controlplane
An experimental platform-as-a-service built on HashiCorp Nomad implementing the Open Application Model (OAM) specification.
Features
- OAM Native: Deploy applications using the Open Application Model specification
- Multi-Workload Support: Docker containers, executables, VMs, batch jobs, and system daemons
- Advanced Scheduling: Auto-scaling, rolling deployments, canary releases, and blue-green deployments
- Service Mesh: Built-in Consul integration for service discovery and mTLS
- Multi-Tenancy: Namespace isolation with resource quotas
- Secure Secrets: Vault integration for secret management
- Flexible Networking: Bridge, host, and overlay network modes
Quick Example
apiVersion: core.oam.dev/v1alpha2
kind: Application
metadata:
name: my-app
spec:
components:
- name: web
type: webservice
properties:
image: nginx:1.25
ports:
- name: http
port: 80
resources:
cpu: 500m
memory: 256Mi
traits:
- type: scaler
properties:
replicas: 3
- type: ingress
properties:
host: example.com
Architecture
The controlplane translates OAM applications into Nomad job specifications:
OAM Application ──► Translator ──► Nomad Jobs
│ │
├── Component (workload) ├── Task Groups
└── Trait (operations) └── Tasks
Supported Workloads
| Type | Nomad Job Type | Description |
|---|---|---|
webservice |
service | Long-running HTTP services |
worker |
service | Background workers |
task |
batch | One-shot batch jobs |
cron-task |
batch | Periodic batch jobs |
daemon |
system | Node-level daemons |
Next Steps
- Getting Started - Install and configure
- Quick Start - Deploy your first application
- Concepts - Understand the architecture
- Examples - See real-world deployments