<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nomad on Lykins Blog</title><link>https://blog.lykins.xyz/tags/nomad/</link><description>Recent content in Nomad on Lykins Blog</description><generator>Hugo</generator><language>en-us</language><copyright>© Benjamin Lykins</copyright><lastBuildDate>Mon, 03 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.lykins.xyz/tags/nomad/index.xml" rel="self" type="application/rss+xml"/><item><title>Recording CLI Demos with a Cursor Skill and VHS</title><link>https://blog.lykins.xyz/posts/vhs-cursor-skill/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/vhs-cursor-skill/</guid><description>&lt;p&gt;Agents are already running CLI workflows for you. So why not a shareable, editable recording you can drop into a blog post, README, or pull request. I wired that up as a Cursor &lt;a href="https://cursor.com/docs/skills"&gt;Agent Skill&lt;/a&gt; that drives &lt;a href="https://github.com/charmbracelet/vhs"&gt;Charmbracelet VHS&lt;/a&gt;: the agent turns a session into a &lt;code&gt;.tape&lt;/code&gt; file and renders a GIF. Below is how it works, using the Nomad CLI as the concrete walkthrough.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Also, &lt;a href="https://www.linkedin.com/in/terraform-tom/"&gt;Tom Straub&lt;/a&gt; was the one who inspired this skill, but don&amp;rsquo;t tell him.&lt;/p&gt;</description></item><item><title>Codified Observability — Layer 4: Orchestration</title><link>https://blog.lykins.xyz/posts/codified-observability-orchestration/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/codified-observability-orchestration/</guid><description>&lt;p&gt;This is part 5 of a series based on my &lt;a href="https://devopscon.io/monitoring-observability/codified-observability-devops-teams/"&gt;DevOpsCon San Diego 2026&lt;/a&gt; talk. &lt;a href="https://blog.lykins.xyz/posts/codified-observability-provisioning/"&gt;Part 4&lt;/a&gt; co-deployed dashboards with Terraform. This post is Layer 4 — Orchestration: keeping agents dynamic on day 2 instead of treating them like frozen packages on disk.&lt;/p&gt;
&lt;p&gt;The Alloy job lives in &lt;a href="https://gitlab.com/lykins/devopscon-2026/-/blob/main/2-LGTM/jobs/lgtm/alloy.nomad.hcl"&gt;&lt;code&gt;2-LGTM/jobs/lgtm/alloy.nomad.hcl&lt;/code&gt;&lt;/a&gt;. It is the payoff for &lt;a href="https://blog.lykins.xyz/posts/codified-observability-images/"&gt;Layer 1&lt;/a&gt; installing Alloy but leaving systemd disabled.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note:
Like the rest of this series, this post was drafted by an agent from content I generated for the &lt;a href="https://devopscon.io/monitoring-observability/codified-observability-devops-teams/"&gt;talk&lt;/a&gt;, as a test of what an agent can plan and produce. See &lt;a href="https://blog.lykins.xyz/posts/codified-observability-intro/"&gt;part 1&lt;/a&gt; for context.&lt;/p&gt;</description></item><item><title>Codified Observability — Layer 2: Platforms</title><link>https://blog.lykins.xyz/posts/codified-observability-platforms/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/codified-observability-platforms/</guid><description>&lt;p&gt;This is part 3 of a series based on my &lt;a href="https://devopscon.io/monitoring-observability/codified-observability-devops-teams/"&gt;DevOpsCon San Diego 2026&lt;/a&gt; talk. &lt;a href="https://blog.lykins.xyz/posts/codified-observability-images/"&gt;Part 2&lt;/a&gt; baked Alloy into the base image. This post is Layer 2 — Platforms: the observability stack itself, managed as code.&lt;/p&gt;
&lt;p&gt;The code lives in &lt;a href="https://gitlab.com/lykins/devopscon-2026/-/tree/main/2-LGTM"&gt;&lt;code&gt;2-LGTM/&lt;/code&gt;&lt;/a&gt; of the &lt;a href="https://gitlab.com/lykins/devopscon-2026"&gt;devopscon-2026&lt;/a&gt; lab.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note:
Like the rest of this series, this post was drafted by an agent from content I generated for the &lt;a href="https://devopscon.io/monitoring-observability/codified-observability-devops-teams/"&gt;talk&lt;/a&gt;, as a test of what an agent can plan and produce. See &lt;a href="https://blog.lykins.xyz/posts/codified-observability-intro/"&gt;part 1&lt;/a&gt; for context.&lt;/p&gt;</description></item><item><title>First Look Nomad 1.11.x - System Job Deployments</title><link>https://blog.lykins.xyz/posts/system-job-deployments/</link><pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/system-job-deployments/</guid><description>&lt;p&gt;This last &lt;a href="https://developer.hashicorp.com/nomad/docs/release-notes/nomad/v1-11-x"&gt;Nomad 1.11.x&lt;/a&gt; feature I will be covering is not new to Nomad itself, but enhances how system jobs can be updated in your clusters.&lt;/p&gt;
&lt;h2 id="whats-new"&gt;What&amp;rsquo;s New?&lt;/h2&gt;
&lt;p&gt;In Nomad 1.11.x, system jobs now support &lt;a href="https://developer.hashicorp.com/nomad/docs/release-notes/nomad/v1-11-x#system-job-deployments"&gt;deployment functionality&lt;/a&gt; which will allow operators to manage changes and rollbacks for system jobs more effectively. This enhancement gives additional control over how system jobs are deployed and maintained across your infrastructure.&lt;/p&gt;
&lt;p&gt;As always, I would heavily recommend reading the release notes, which I have linked above, and the documentation on the &lt;a href="https://developer.hashicorp.com/nomad/docs/job-specification/update"&gt;update block&lt;/a&gt; as it has been updated to call out different behaviors when used with system jobs, such as the following:&lt;/p&gt;</description></item><item><title>First Look Nomad 1.11.x - Secret Block</title><link>https://blog.lykins.xyz/posts/secret-block/</link><pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/secret-block/</guid><description>&lt;p&gt;The next Nomad &lt;a href="https://developer.hashicorp.com/nomad/docs/release-notes/nomad/v1-11-x"&gt;1.11.x&lt;/a&gt; feature we will be looking at is &lt;a href="https://developer.hashicorp.com/nomad/docs/release-notes/nomad/v1-11-x#artifact-secrets"&gt;Artifact Secrets&lt;/a&gt; which introduces a new &lt;code&gt;secret&lt;/code&gt; &lt;a href="https://developer.hashicorp.com/nomad/docs/job-specification/secret"&gt;block in the job specification&lt;/a&gt; to simplify the process of fetching secrets for your Nomad jobs in addition to one key difference compared to the existing &lt;code&gt;template&lt;/code&gt; block.&lt;/p&gt;
&lt;p&gt;Out of the box there are two &lt;a href="https://developer.hashicorp.com/nomad/docs/job-specification/secret#built-in-providers"&gt;built-in plugins&lt;/a&gt; which support Nomad variables and Vault. In addition to the built-in plugins there is a &lt;a href="https://developer.hashicorp.com/nomad/plugins/author/secret-provider"&gt;secret provider plugin framework&lt;/a&gt; which allows community or privately built plugins to support their secrets management systems. For example, check out the demo they provided for &lt;a href="https://developer.hashicorp.com/nomad/plugins/author/secret-provider#plugin-code"&gt;AWS Secrets Manager&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>First Look Nomad 1.11.x - Client Node Introduction and Identity</title><link>https://blog.lykins.xyz/posts/nomad-client-introduction/</link><pubDate>Mon, 17 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/nomad-client-introduction/</guid><description>&lt;p&gt;Nomad &lt;a href="https://developer.hashicorp.com/nomad/docs/release-notes/nomad/v1-11-x"&gt;1.11.x&lt;/a&gt; was recently released and I wanted to highlight some of the new features in a series of posts.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Client node introduction and identity&lt;/li&gt;
&lt;li&gt;Artifact secrets&lt;/li&gt;
&lt;li&gt;System job deployments&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For this first post, I want to focus on the &lt;a href="https://developer.hashicorp.com/nomad/docs/release-notes/nomad/v1-11-x#client-node-introduction-and-identity"&gt;client node introduction and identity.&lt;/a&gt; This will require reading through the release note documentation, updated pages, CLI and API references, as a lot has been added around this feature and I will not cover in detail.&lt;/p&gt;</description></item><item><title>Containerizing a GitHub Actions Runner for Nomad</title><link>https://blog.lykins.xyz/posts/containerizing-github-runner/</link><pubDate>Sat, 09 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/containerizing-github-runner/</guid><description>&lt;p&gt;So containerizing a custom runner image actually came out a bit simpler than I had expected, this is mostly since others did the heavy lifting for me :).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Credit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;All credit goes to the following posts:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baccini-al.medium.com/how-to-containerize-a-github-actions-self-hosted-runner-5994cc08b9fb"&gt;How to containerize a GitHub Actions self-hosted runner&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://testdriven.io/blog/github-actions-docker/"&gt;Deploying Self-Hosted GitHub Actions Runners with Docker&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Changes&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So I did make a few changes when I was building my runners.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Built with Packer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This gave me an opportunity to play with the &lt;a href="https://developer.hashicorp.com/packer/integrations/hashicorp/docker/latest/components/builder/docker"&gt;Packer Docker Plugin&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Intermission: HashiConf</title><link>https://blog.lykins.xyz/posts/intermission-hashiconf/</link><pubDate>Mon, 21 Oct 2024 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/intermission-hashiconf/</guid><description>&lt;p&gt;Just getting back from HashiConf. After 5ish years of watching it virtually, I was finally able to attend in person. This is also the first time I have also publicly presented, definitely will do it again if I am given the opportunity.&lt;/p&gt;
&lt;p&gt;This is me.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wd66qnk9yz7588w14l13.png" alt="me on stage"&gt;&lt;/p&gt;
&lt;p&gt;Yes, I was wearing a fanny pack. I used it to carry my two of my props on stage. Raspberry Pi and one of my Minicomputers to show what I ran Nomad on.&lt;/p&gt;</description></item><item><title>Setting up the Nomad Cluster</title><link>https://blog.lykins.xyz/posts/setting-up-nomad-cluster/</link><pubDate>Sun, 13 Oct 2024 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/setting-up-nomad-cluster/</guid><description>&lt;p&gt;My first task in setting up my Nomad Image Factory is creating the Nomad cluster.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lab:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;3 : Mini Computers
&lt;ul&gt;
&lt;li&gt;N100 CPU&lt;/li&gt;
&lt;li&gt;16 GB Memory&lt;/li&gt;
&lt;li&gt;2 : 1GB Nics&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Proxmox&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8hpb2o2wiuqw6t88zjcf.png" alt="Cluster Nodes"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nomad Cluster:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Simple Cluster
&lt;ul&gt;
&lt;li&gt;3 Nodes with Server and Client Role&lt;/li&gt;
&lt;li&gt;2 CPU&lt;/li&gt;
&lt;li&gt;4 GB Memory&lt;/li&gt;
&lt;li&gt;Ubuntu 24&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c2rpwcc1l3li0ka9ui8a.png" alt="Nomad VMs"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installing Nomad:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I take the easy way to install Nomad.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;&lt;/span&gt; sudo apt-get install wget gpg coreutils
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget -O- https://apt.releases.hashicorp.com/gpg | &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;&lt;/span&gt; sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com &lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;lsb_release -cs&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt; main&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;&lt;/span&gt;| sudo tee /etc/apt/sources.list.d/hashicorp.list
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt-get install nomad
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After installing you should be able to check the Nomad version to confirm.&lt;/p&gt;</description></item><item><title>Intro - Nomad Image Factory</title><link>https://blog.lykins.xyz/posts/intro-nomad-image-factory/</link><pubDate>Tue, 08 Oct 2024 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/intro-nomad-image-factory/</guid><description>&lt;p&gt;Howdy.&lt;/p&gt;
&lt;p&gt;Just a quick introduction in preparation for my series to expand on my HashiConf talk.&lt;/p&gt;
&lt;p&gt;Unfortunately, I had to cut out portions of building a full end to end Nomad Image Factory from my talk, but I am going to use my blog to fill in what was missed.&lt;/p&gt;
&lt;p&gt;My series of posts are going to be as follows:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Setting up Nomad - Development Server and Cluster&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Preparing for my talk, I did not get the chance to play with Consul, so I am going to give it a shot, as well.&lt;/p&gt;</description></item><item><title>Terraform Professional + HashiConf Talk</title><link>https://blog.lykins.xyz/posts/terraform-professional-hashiconf-talk/</link><pubDate>Wed, 28 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.lykins.xyz/posts/terraform-professional-hashiconf-talk/</guid><description>&lt;p&gt;Just a short little update today. I am going to be documenting a new series of blog posts.&lt;/p&gt;
&lt;h2 id="hashicorp-certified-terraform-authoring-and-operations-professional"&gt;HashiCorp Certified: Terraform Authoring and Operations Professional&lt;/h2&gt;
&lt;p&gt;Took the test as part of the beta program a while back and finally got a result :)&lt;/p&gt;
&lt;p&gt;It was a fun opportunity and would recommend others to give it a shot!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/orx1b5xvs02tmls5uasc.png" alt="HashiCorp Certified: Terraform Authoring and Operations Professional"&gt;&lt;/p&gt;
&lt;h2 id="hashiconf-presentation"&gt;HashiConf Presentation&lt;/h2&gt;
&lt;p&gt;So back when a call for presenters went out for HashiConf, I put out a short topic on learning Nomad. It is one of the Hashi products which has intrigued me the most. I just have not had a reason or opportunity to work with it. Especially with 2 kids aged 3 and under, the amount of free time I have to learn something new is limited.&lt;/p&gt;</description></item></channel></rss>