Awesome NomadAutomation and Infrastructure Management

sagarrakshe/nomad-dtree

⭐ 51 Go added to this list on 2024-12-11 repository created 2020-01-15

nomad-dtree is a specialized tool designed to manage dependencies between HashiCorp Nomad jobs, addressing a significant gap in Nomad's native capabilities. Nomad, while powerful for orchestrating containerized workloads, lacks built-in dependency management and pre/post hook features, which are crucial for orchestrating complex microservices deployments where the order of job execution matters. For example, a database service must be fully operational before an API service that depends on it can start. nomad-dtree solves this by treating every job, including pre- and post-hooks, as Nomad jobs themselves and managing their execution order based on a user-defined JSON dependency file. The tool allows users to define dependencies explicitly, specifying which jobs must run before or after others, along with wait conditions that represent the time needed for a job to become healthy. This is particularly useful in microservices architectures where services have intricate startup sequences and dependencies. The JSON dependency file outlines these relationships, enabling nomad-dtree to orchestrate the deployment sequence automatically. For instance, in a setup with nginx, API, and Postgres services, nomad-dtree ensures that Postgres starts first, followed by any necessary setup jobs, then the API, and finally nginx. nomad-dtree supports commands to run and stop jobs while respecting these dependencies. The stop command includes options to purge jobs from the system and to stop dependent child jobs recursively. This functionality simplifies managing complex Nomad job lifecycles, reducing the need for external orchestration tools like Rundeck. Overall, nomad-dtree enhances Nomad's usability in microservices environments by providing a structured way to handle job dependencies and lifecycle hooks, making deployments more reliable and easier to manage.

https://github.com/sagarrakshe/nomad-dtree

consuldependency-managementdeployment-ordergolanghashicorpjob-dependenciesjob-lifecyclemicroservicesnomadnomad-dtreenomad-jobsorchestrationpost-hookpre-hook

Also in Automation and Infrastructure Management

ansible-community/ansible-nomad

Ansible-Nomad is an Ansible role that automates the installation, configuration, and management of HashiCorp Nomad clusters, supporting both development and production environments.

mr-karan/homelab

Hydra is an infrastructure-as-code project for managing a personal home server using HashiCorp Nomad, Consul, and other tools to automate and orchestrate various services.

astro/skyflake

Skyflake is a NixOS-based hyperconverged infrastructure solution that uses HashiCorp Nomad to manage dynamic virtual machines, enabling GitOps-style deployments and cluster management.

seatgeek/nomad-helper

nomad-helper is a set of tools designed to simplify and enhance the management and operational tasks of HashiCorp Nomad clusters at scale.

cosmonic-labs/netreap

Netreap is a Cilium controller designed to manage Cilium networking and policies within Nomad clusters, providing Kubernetes-independent cluster management and policy synchronization.

nomad-ops/nomad-ops

Nomad-Ops is a GitOps operator for HashiCorp Nomad that reconciles running jobs with Git repositories to automate and simplify Nomad job management.

jonasvinther/nomad-gitops-operator

Nomoporator is a GitOps operator that automates the deployment and synchronization of HashiCorp Nomad jobs using Git repositories or local file systems, supporting secure and flexible configuration.

tristanpemble/nix-nomad

nix-nomad is a tool to generate and manage HashiCorp Nomad job JSON files using NixOS modules, enabling modular and scalable deployment of Nomad jobs across multiple environments.