How to Convert Kubernetes Manifests into Nomad Jobspecs

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SonarLint - Clean code begins in your IDE with SonarLint
  • InfluxDB - Access the most powerful time series database as a service
  • SaaSHub - Software Alternatives and Reviews
  • tracetest-nomad

    Nomad pack repo for tracetest

    Ever since I started exploring Nomad, one of the things that I’ve enjoyed doing is taking Docker Compose files and Kubernetes manifests, and translating them into HashiCorp Nomad jobspec. I did it for Temporal back in March 2022, and also for an early version of Tracetest, back in the summer of 2022.

  • opentelemetry-demo

    This repository contains the OpenTelemetry Astronomy Shop, a microservice-based distributed system intended to illustrate the implementation of OpenTelemetry in a near real-world environment.

    In my latest Nomadification Project (TM), I got the OpenTelemetry Demo App to run on Nomad (with HashiQube, of course). To do this, I used the OpenTelemetry Demo App Helm Chart as my guide. In doing this, and other Nomadifications, I realized that I’ve never gone through the process of explaining the conversion process from Kubernetes manifests to Nomad jobspecs.

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • opentelemetry-helm-charts

    OpenTelemetry Helm Charts

    In my latest Nomadification Project (TM), I got the OpenTelemetry Demo App to run on Nomad (with HashiQube, of course). To do this, I used the OpenTelemetry Demo App Helm Chart as my guide. In doing this, and other Nomadifications, I realized that I’ve never gone through the process of explaining the conversion process from Kubernetes manifests to Nomad jobspecs.

  • hcl

    HCL is the HashiCorp configuration language.

    While I like working with both Kubernetes and Nomad alike, there is one thing that I find exceedingly irritating in Kubernetes Land: the fact that a Kubernetes manifest for an app deployment is made up of a scavenger hunt of YAML definitions of various Kubernetes objects. Nomad, however, takes a different approach, using a single HashiCorp Configuration Language (HCL) jobspec file as a one-stop shop for defining your app. I personally find Nomad HCL a lot easier to manage, since there are fewer moving parts, and when it comes to converting Kubernetes manifests to Nomad jobspecs, I find that having a single file to work with makes things a lot simpler.

  • nomad-conversions

    Repo containing conversions of Kubernetes and/or Docker Compose apps to Nomad jobspecs

    NOTE: You can find the repo with all of the OpenTelemetry Demo App jobspec files here.

  • Nomad

    Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. Nomad is easy to operate and scale and has native Consul and Vault integrations.

    The check stanza runs a health check on the service Since the service is registered to Consul, the health check runs on Consul. The above health check is configured to run every 10 seconds, and is given 5 seconds for the health check query to succeed. Health checks in Nomad are similar to Kubernetes health checks.

  • PostgreSQL

    Mirror of the official PostgreSQL GIT repository. Note that this is just a *mirror* - we don't work with pull requests on github. To contribute, please see https://wiki.postgresql.org/wiki/Submitting_a_Patch

    Which begs the question...how does this translate to Nomad-speak? example-ffspostgres and example-otelcol, are the service names in Kubernetes for PostgreSQL and the OpenTelemetry Collector, respectively, so if we tried to use those same names in our jobspec definition, you’d get a big ‘ole nasty error from Nomad.

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • traefik

    The Cloud Native Application Proxy

    We’re exposing this service to the outside world via Traefik, and the service is accessible via the URL: http://featureflag.localhost (since I’m running this locally, using HashiQube). Keep in mind that you also need to deploy the Traefik jobspec alongside the featureflagservice jobspec in order to expose this service to the outside world. To learn more about running Traefik on Nomad, check out this post and this post.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts