Skip to content

NixOS: declare the agent with services.step-agent; document edge releases - #552

Open
tashian wants to merge 2 commits into
mainfrom
carl/eff-696-update-install-docs-showing-how-to-install-an-edge-release
Open

NixOS: declare the agent with services.step-agent; document edge releases#552
tashian wants to merge 2 commits into
mainfrom
carl/eff-696-update-install-docs-showing-how-to-install-an-edge-release

Conversation

@tashian

@tashian tashian commented Sep 3, 2026

Copy link
Copy Markdown
Member

Fixes EFF-696.

Rewrites the NixOS install section of the Smallstep Agent page and adds edge-release instructions. Replaces the smallstep-agent.mdx half of #549 (its environment.etc paragraph is subsumed by settings). #549's troubleshooting-agent.mdx wording, which rewrites the quoted condition to ConditionPathExists=, is not included here: it depends on the deb/rpm unit change and should land with it.

What changed

  • Install is one services.step-agent block. Import the module, set enable = true, and declare team and fingerprint in settings. nixos-rebuild switch installs the package, starts the agent, and the device enrolls on first start once it has been added via the API. The interactive step-agent register step is now the alternative for empty settings, not the default.
  • Edge releases subsection: point services.step-agent.package at an overrideAttrs of pkgs.step-agent with the edge tarball URL on packages.smallstep.com and the hex sha256 from the release manifest, which Nix accepts as-is.
  • Names the error a TPM-less host hits, updates the uninstall step, and notes in troubleshooting that the NixOS unit's gate is ConditionPathExists=.

The services.step-agent module with enable/settings ships from files.smallstep.com/step-agent.nix and has the same option surface as the module proposed upstream in NixOS/nixpkgs#555971, so the imports line is the only thing that changes once that lands.

The --skip-config note exists because register silently drops a failed config write; that is filed as OFF-21.

Verified

Followed the new section on a nixos-unstable aarch64 VM: install, all units enabled, agent.yaml rendered from settings, step-agent version output as shown, and the edge override switching the running agent to 0.69.2. The example hash in the edge snippet is the real one for step-agent_0.69.2_linux_amd64.tar.gz.

⚠️ Merge after the module change ships to files.smallstep.com, otherwise step 3's enable/settings options don't exist for readers yet.

🤖 Generated with Claude Code

…ases

Rewrite the NixOS install section around one services.step-agent block:
import the module, enable it, and declare team and fingerprint in
settings. The rebuild installs the package, starts the agent, and the
device enrolls on first start once it has been added via the API, so
the interactive register step goes away for fleets. Interactive
registration stays as the alternative for empty settings.

Add an "Edge releases" subsection: point services.step-agent.package at
an overrideAttrs of pkgs.step-agent with the edge tarball URL on
packages.smallstep.com and the hex sha256 from the release manifest,
which Nix accepts as-is.

Name the error a TPM-less host hits, update the uninstall step, and
note that on NixOS the unit's gate is ConditionPathExists=.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@tashian
tashian requested a review from a team as a code owner September 3, 2026 00:02
With settings declared, agent.yaml is a store symlink, so document the
--skip-config form of register, which registers the device without
attempting to rewrite the declared file.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant