Skip to content

docs(skills): add lessons from a real talhelper migration - #132

Merged
clementnuss merged 1 commit into
postfinance:mainfrom
BjarneSeger:docs/skill-talhelper-lessons
Sep 4, 2026
Merged

docs(skills): add lessons from a real talhelper migration#132
clementnuss merged 1 commit into
postfinance:mainfrom
BjarneSeger:docs/skill-talhelper-lessons

Conversation

@BjarneSeger

@BjarneSeger BjarneSeger commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Improves skills/migrate-talhelper-to-topf with what a real migration hit that the skill did not cover. Verified on a two-node Talos v1.13.8 cluster (public control plane, NAT'd worker, Argo CD bootstrapped through cluster.inlineManifests), comparing topf render against the last talhelper genconfig document by document.

  • Removes the stale "TOPF does not yet support v1.14 multi-doc" claim (v0.6.0 does) while keeping the advice to migrate on the running format first.
  • New verify step: diff the two renders, check topf schematic-ids, and how to read topf apply --dry-run (textual diff, so document order and never-applied talhelper drift both show up).
  • Gotchas: hostname is not derived from host (first apply renames nodes); inlineManifests[].contents: "@./file" includes and skipEnvsubst (wrap via yq, or vals ref+file:// with the redaction caveat); .tpl files parse YAML comments; role-level schematic blocks and node overrides; keyed lists merging across scopes; direct per-node dialing, no apid proxying.
  • Secrets hygiene: .sops.yaml rule encrypting only data, sops set move without plaintext on disk, .gitignore clusterconfig/ -> output/.
  • field-mapping.md: inlineManifests include note, role schematic row, hostname row, template/comment note.

The pre-existing markdownlint findings in this file (MD029 numbering, MD034, MD040) are untouched; CI lints docs/ only.

🤖 Generated with Claude Code


Sorry, claude auto mode was a bit ambitious
TL;DR:

This PR still includes some nice findings for making the migration a bit more "reliable"

…talhelper-to-topf

Learned migrating a two-node Talos v1.13.8 cluster (NAT'd worker, Argo CD bootstrapped
via inlineManifests) and verified against the last talhelper render:

- drop the stale "no v1.14 multi-doc support" claim; keep "migrate on the running
  format, upgrade later" for the zero-diff reason
- new verify step: diff `talhelper genconfig` against `topf render`, check
  `topf schematic-ids`, read `topf apply --dry-run` as a textual diff (document order
  shows up, and so does never-applied talhelper drift)
- gotchas: hostname is not derived from `host`; `inlineManifests[].contents: "@./file"`
  has no include equivalent (wrap via yq, or vals ref+file:// with redaction caveat);
  `skipEnvsubst` is moot; `.tpl` parses YAML comments; role-level schematics and
  node overrides -> one templated schematic; keyed lists still merge across scopes;
  TOPF dials each node directly, no apid proxying
- secrets hygiene: `.sops.yaml` rule encrypting only `data`, `sops set` move without
  plaintext on disk, `.gitignore` clusterconfig/ -> output/
- field-mapping: inlineManifests include note, role schematics row, hostname row

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@BjarneSeger
BjarneSeger marked this pull request as ready for review September 4, 2026 18:01
Comment thread skills/migrate-talhelper-to-topf/SKILL.md
@clementnuss
clementnuss merged commit 079186c into postfinance:main Sep 4, 2026
@clementnuss

Copy link
Copy Markdown
Contributor

thanks @BjarneSeger, the hostanem and @... file inclusion are good additions to the migration skill.

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.

2 participants