Skip to content

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