Skip to content

Installation

Prerequisites

  • Go 1.21+
  • Nomad Cluster (1.5+)
  • Consul Cluster (1.15+) for service discovery
  • Vault (1.13+) for secrets (optional)

Install from Source

git clone https://gitlab.com/drpdishant/nomad-paas.git
cd nomad-paas/controlplane
go build -o bin/controlplane ./cmd/server

Docker

docker run -d \
  -p 8080:8080 \
  -e NOMAD_ADDR=http://nomad:4646 \
  -e CONSUL_ADDR=consul:8500 \
  -e VAULT_ADDR=http://vault:8200 \
  nomad-paas/controlplane:latest

Configuration

The controlplane can be configured via config file or environment variables.

Config File (config.yaml)

server:
  host: 0.0.0.0
  port: 8080

nomad:
  address: http://localhost:4646
  region: global
  namespace: default

consul:
  address: localhost:8500
  namespace: default

vault:
  address: http://localhost:8200
  path: secret/data/nomad-paas

defaults:
  datacenter: dc1
  resources:
    cpu: 250m
    memory: 256Mi

Environment Variables

Variable Description Default
NOMAD_ADDR Nomad API address http://localhost:4646
CONSUL_ADDR Consul API address http://localhost:8500
VAULT_ADDR Vault API address http://localhost:8200
SERVER_PORT HTTP server port 8080

Running

./bin/controlplane -config config.yaml

Health Check

curl http://localhost:8080/health