Wanderer: Automatic deployment of Nomad jobs via GitHub Actions

Wanderer: Automatic deployment of Nomad jobs via GitHub Actions

Wanderer is a self-hosted deployment tool for Nomad orchestrated jobs.

Roman Zipp, September 14th, 2022

Wanderer on GitHub

What

Wanderer is a self-hosted deployment tool for Nomad orchestrated jobs.

Features

  • Provides a centralized repository for Nomad HCL templates

  • Offers API for CD tools to automate deployment of new versions

  • Simple Web UI for editing templates & monitoring deployments

  • Supports Nomad instances behind Cloudflare Access Zero Trust network

  • GitHub Actions Workflow available for easy pipeline integration

UI

Wanderer comes with a basic Web GUI which provides all necessary operations such as editing Nomad clusters, templates or issuing API tokens.

Nice to know: There is not a single line of JavaScript.

Deploy in Nomad

You can also deploy Wanderer in your Nomad cluster. This is an example HCL template:

job "wanderer" {
  datacenters = ["dc1"]
  type        = "service"

  group "wanderer" {
    count = 1

    network {
      mode = "bridge"

      port "http" {
        to = 8080
      }
    }

    service {
      name = "wanderer"
      port = "http"
    }

    task "wanderer" {
      driver = "docker"

      config {
        image = "ghcr.io/romanzipp/wanderer:1.1.2"
        ports = ["http"]

        mount {
          type     = "bind"
          target   = "/.env"
          source   = "/your-shared-data/wanderer/.env"
          readonly = true
          bind_options {
            propagation = "rshared"
          }
        }

        mount {
          type     = "bind"
          target   = "/data/"
          source   = "/your-shared-data/wanderer/data/"
          readonly = false
          bind_options {
            propagation = "rshared"
          }
        }
      }
    }
  }
}

More Information

See Wanderer on GitHub.