Awesome NomadAutomation and Infrastructure Management

davidsbond/homad

⭐ 46 HCL added to this list on 2024-12-11 repository created 2022-02-04

The project "homad" is a comprehensive repository that contains the full configuration for a personal HashiCorp Nomad deployment on a home server rack. It is designed to run in a high-availability setup utilizing HashiCorp Vault for secrets management and HashiCorp Consul for service discovery and configuration. The cluster operates on Ubuntu and is accessible remotely through a Tailscale VPN, ensuring secure and private network access. The entire infrastructure and workload deployment are managed using Terraform, with source files organized by provider in a dedicated directory. This approach allows for infrastructure as code, making the deployment reproducible and maintainable. The Nomad cluster runs a variety of workloads including popular services such as Bitwarden for password management, Boundary for user identity management, Grafana for monitoring dashboards, Home Assistant for IoT device integration and automation, Minio for S3-compatible object storage, PiHole for network-wide DNS and ad blocking, Postgres as a SQL database, Prometheus for metrics scraping and monitoring, and Traefik as a reverse proxy and load balancer with TLS certificate management. Additionally, the repository includes custom-built applications like "homadctl," a command-line tool for automating homelab tasks, and "speed-dial," a dashboard for quick access to services running in the homelab. Persistent storage needs are addressed through volumes mounted via NFS using the rocketduck CSI driver, with volume specifications maintained in the Terraform configuration. The project also features continuous integration workflows that automatically plan and apply Terraform changes upon merges to the master branch, connecting securely to the Tailscale tailnet. Upgrades for Nomad and the underlying Ubuntu system are automated using Nomad's periodic jobs and the raw_exec driver, ensuring the environment remains up-to-date with minimal manual intervention. Overall, this project exemplifies a well-architected, automated, and secure home lab deployment of HashiCorp Nomad, integrating multiple HashiCorp tools and popular open-source services for a robust and manageable infrastructure.

https://github.com/davidsbond/homad

bitwardenboundarycontinuous-integrationcustom-applicationsgithub-actionsgrafanahashicorphashicorp-consulhashicorp-nomadhashicorp-vaulthigh-availabilityhomadctlhome-assistanthomelabinfrastructure-as-codeload-balancerminionfsnomadpersistent-storagepiholepostgresprometheusraw_exec-driverreverse-proxyrocketduck-csi-driverspeed-dialtailscale-vpnterraformtls-certificatestraefikubuntuupgrades

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.