Agent skill

Talos V114 Migration

by postfinance in postfinance/topf

Migrate a Talos Linux machine configuration from v1.13 (or earlier) v1alpha1 single-document format to the v1.14 multi-document config format introduced in Talos 1.14.

MITAuto-check passedDevOps & Cloud

Install Talos V114 Migration

skills CLI
$ npx skills add postfinance/topf --skill talos-v114-migration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install postfinance/topf talos-v114-migration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/postfinance/topf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/talos-v114-migration .claude/skills/talos-v114-migration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
talos-v114-migration
GitHub stars
175
Token cost
~2.5k tokens
SKILL.md length
1,043 words
Files
2
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Migrate a Talos Linux machine configuration from v1.13 (or earlier) v1alpha1 single-document format to the v1.14 multi-document config format introduced in Talos 1.14.

  • Works in 5 steps: Inventory all config files → Classify each field → Rewrite deprecated fields as multi-doc… → …
  • Migrating Talos config patches
  • SKILL.md covers When to use, Reference documentation, Workflow and Gotchas
  • Reaches docs.siderolabs.com

What it does

Talos V114 Migration is an agent skill from postfinance/topf. Migrate a Talos Linux machine configuration from v1.13 (or earlier) v1alpha1 single-document format to the v1.14 multi-document config format introduced in Talos 1.14. Use when migrating Talos config patches, converting deprecated .machine. / .cluster. v1alpha1 fields to their new multi-doc kinds (UnattendedInstallConfig, KubeletConfig, KubeNodeConfig, KubeNetworkConfig, KubeProxyConfig, KubeControllerManagerConfig, KubeAPIServerConfig, VolumeConfig, ResolverConfig, CRICustomizationConfig, Layer2VIPConfig…

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `mapping.md`).

It sits in DevOps & Cloud. It works with Linux and Kubernetes. The repository describes itself as: Talos orchestrator by PostFinance. The licence is MIT.

When your agent uses it

  • Migrating Talos config patches
  • Converting deprecated .machine

Example prompts

  • “migrate talos config to 1.14”
  • “talos v1.14 multi-doc”
  • “deprecated v1alpha1 fields”
  • “/talos-v114-migration”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Inventory all config files
  2. Classify each field
  3. Rewrite deprecated fields as multi-doc documents
  4. Keep non-deprecated v1alpha1 fields as-is
  5. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit 232db62. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • docs.siderolabs.com

    Also links to:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Talos V114 Migration loads about 2.5k tokens when it runs. Until then it costs about 194 tokens; SKILL.md has 1,043 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~194
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from postfinance/topf at commit 232db62, republished under its MIT licence (© postfinance). 1,043 words, ~2,453 tokens.

Download SKILL.mdSave it as .claude/skills/talos-v114-migration/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
talos-v114-migration
description
Migrate a Talos Linux machine configuration from v1.13 (or earlier) v1alpha1 single-document format to the v1.14 multi-document config format introduced in Talos 1.14. Use when migrating Talos config patches, converting deprecated `.machine.*` / `.cluster.*` v1alpha1 fields to their new multi-doc kinds (UnattendedInstallConfig, KubeletConfig, KubeNodeConfig, KubeNetworkConfig, KubeProxyConfig, KubeControllerManagerConfig, KubeAPIServerConfig, VolumeConfig, ResolverConfig, CRICustomizationConfig, Layer2VIPConfig, DHCPv4Config, DiscoveryServiceConfig, etc.). Triggers: "migrate talos config to 1.14", "talos v1.14 multi-doc", "deprecated v1alpha1 fields", "document-map", "UnattendedInstallConfig", "KubeletConfig", "VolumeConfig", "KubeNodeConfig".

Migrating Talos config to v1.14 multi-doc format

Talos 1.14 introduces a multi-document configuration model that replaces many fields in the legacy v1alpha1 machine: / cluster: blocks with dedicated document kinds (apiVersion: v1alpha1 + kind: <Kind>). The old fields remain supported for backwards compatibility, but new features and fields are only available in the multi-doc format.

This skill migrates config patches from the old format to the new one. It works for any Talos deployment — topf patch directories, raw talosctl gen config output, or hand-written machine configs.

When to use

Use this skill when the task involves ANY of:

  • Migrating Talos config patches from v1.13 (or earlier) to v1.14
  • Converting deprecated .machine.* or .cluster.* v1alpha1 fields to multi-doc kinds
  • A user asks to "migrate to Talos 1.14 config" or "use the new multi-doc format"
  • Reviewing a Talos config for deprecated v1alpha1 fields

Do NOT use this skill for:

  • Talos version upgrades that don't involve config format changes
  • Writing new config from scratch (use talosctl gen config which already emits multi-doc)
  • Non-Talos Kubernetes config

Reference documentation

Each new document kind has its own reference page under https://docs.siderolabs.com/talos/v1.14/reference/configuration/<group>/<kind>/ (for example, kubernetes/kubeletconfig, block/volumeconfig, network/layer2vipconfig). Fetch the page for a kind when you need the exact field names and types.

Workflow

1. Inventory all config files

Read every patch/config file in the target directory (or the single machine config). Record each v1alpha1 field path in use. Common locations for topf: patches/ (global), control-plane/, worker/, node/<hostname>/. For raw talosctl: a single controlplane.yaml / worker.yaml.

2. Classify each field

For every field, look it up in mapping.md (the condensed field-by-field reference built from the document map). Classify it as:

  • Deprecated → migrate to the indicated multi-doc kind
  • Not deprecated → leave as v1alpha1
  • No multi-doc equivalent → flag for manual handling (see Gotchas)
3. Rewrite deprecated fields as multi-doc documents

For each deprecated field, create or update a multi-doc patch file containing the new apiVersion: v1alpha1 + kind: <Kind> document. Move the field value to the new document, renaming fields where the mapping requires it.

Multi-doc files may contain several ----separated documents of different kinds — for example, a single file can hold both VolumeConfig for EPHEMERAL and VolumeConfig for STATE.

4. Keep non-deprecated v1alpha1 fields as-is

Leave fields that are NOT deprecated in their original v1alpha1 form. The two formats coexist in v1.14. See the "NOT deprecated" table in mapping.md for the list.

5. Verify
  • Re-read every rewritten file to confirm the YAML is valid and the document kinds/fields match the reference pages.
  • If using topf, run topf nodes to confirm the config compiles, then topf apply (with user approval) to push to nodes.
  • For raw talosctl, run talosctl apply-config against a single node first.

Gotchas

$patch: delete works on multi-doc maps too

Strategic-merge $patch: delete directives work on both v1alpha1 fields and multi-doc document maps. Use them to remove auto-generated defaults or specific keys:

  • Delete an entire auto-generated document (e.g. Flannel):
    yaml
    ---
    apiVersion: v1alpha1
    kind: KubeFlannelCNIConfig
    $patch: delete
  • Delete a specific taint key:
    yaml
    ---
    apiVersion: v1alpha1
    kind: KubeNodeConfig
    taints:
      node-role.kubernetes.io/control-plane:
        $patch: delete
  • Delete a specific label key:
    yaml
    ---
    apiVersion: v1alpha1
    kind: KubeNodeConfig
    labels:
      node.kubernetes.io/exclude-from-external-load-balancers:
        $patch: delete
KubeFlannelCNIConfig is auto-generated — omitting it is not enough

talosctl gen config emits a KubeFlannelCNIConfig document by default in v1.14. If you use an external CNI (Cilium, Calico, etc.) and had cluster.network.cni.name: none in v1alpha1, simply not including a KubeFlannelCNIConfig patch will NOT disable Flannel — the generated default will still be present in the final config. You must explicitly delete it:

yaml
---
apiVersion: v1alpha1
kind: KubeFlannelCNIConfig
$patch: delete
Show full SKILL.md (476 more words)Show less
DiscoveryServiceConfig is auto-generated — cluster.discovery.enabled: false conflicts

talosctl gen config emits a DiscoveryServiceConfig document (with name: default) by default in v1.14. Any v1alpha1 cluster.discovery block — even enabled: false — is mutually exclusive with the auto-generated document and Talos rejects the config with:

discovery service is already configured in .cluster.discovery of the v1alpha1 config

There is no multi-doc enabled field on DiscoveryServiceConfig; the new model is that the feature is on when the document is present and off when it's absent. To disable discovery, delete the auto-generated document (the name: default is required so the $patch: delete targets the correct document in the strategic-merge map):

yaml
---
apiVersion: v1alpha1
kind: DiscoveryServiceConfig
name: default
$patch: delete

DiscoveryIdentityConfig (cluster ID/secret) is also auto-generated but is not deprecated in the same way — leave it as-is.

allowSchedulingOnControlPlanes → delete the control-plane taint

The v1alpha1 cluster.allowSchedulingOnControlPlanes: true maps to a KubeNodeConfig document that deletes the default control-plane taint:

yaml
---
apiVersion: v1alpha1
kind: KubeNodeConfig
taints:
  node-role.kubernetes.io/control-plane:
    $patch: delete

Use $patch: delete on the specific taint key rather than taints: {} (empty map) — the former is more precise and survives if other taints are added later.

KmsgLogConfig lacks extraTags

The new KmsgLogConfig document only has name and url — it does not support the extraTags map that machine.logging.destinations[].extraTags provides. If you rely on extraTags, keep using the v1alpha1 machine.logging field.

Multi-doc and v1alpha1 equivalents are mutually exclusive

Talos v1.14 rejects a config that sets both a deprecated v1alpha1 field and its multi-doc replacement (e.g. machine.nodeLabels and a KubeNodeConfig document with labels). Each multi-doc kind has a V1Alpha1ConflictValidate method that enforces this. Choose one form per field.

talosctl gen config auto-generates v1.14 default documents

When generating config for v1.14, talosctl gen config (called by topf and other tools) emits default documents that were not present in v1.13 generated configs:

  • SecurityProfileConfig with workloadIsolation: true — moves containerd, kubelet, and pods into a dedicated PID/mount namespace (sandboxd). Clusters upgraded via talosctl upgrade keep the old non-isolated behavior, but config regeneration (e.g. topf apply) gets the new default. If you don't want isolation, add a patch with workloadIsolation: false.
  • FilesystemTrimConfig with interval: 168h0m0s — weekly fstrim on eligible volumes. Harmless, but be aware it's there.
  • KubeFlannelCNIConfig — see the Flannel gotcha above.

These are NOT in your patches — they're injected at generation time. Review the generated output (topf writes to output/, or talosctl gen config writes to controlplane.yaml/worker.yaml) to see what defaults are being applied.

LUKS-encrypted EPHEMERAL may fail to close on first boot after upgrade

When transitioning from v1.13 (non-isolated) to v1.14 with workloadIsolation: true, the first reboot may fail with:

error closing encrypted volume mapped to "luks2-EPHEMERAL":
  error closing luks2-EPHEMERAL: mapped device is still in use

This happens because stale mount references from the old namespace hold the LUKS device (/dev/dm-1) open, preventing the volume controller from closing and reopening it. A second reboot usually resolves it (the stale references are released on the clean shutdown). If a node gets stuck in a failed -> failed loop and doesn't self-recover, reset the EPHEMERAL partition:

bash
talosctl --nodes <ip> reset --system-labels-to-wipe=EPHEMERAL --reboot

The node rejoins etcd automatically (STATE partition holds the identity and is not wiped). For control-plane nodes, ensure the cluster has quorum (3+ healthy members) before resetting.

© postfinance, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/talos-v114-migration of postfinance/topf.

  • SKILL.md
  • mapping.md

Open the folder on GitHubat commit 232db62

Compare with similar skills

Talos V114 Migration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Talos V114 Migration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Talos V114 Migration this skillpostfinance/topf175—~2.5kAutomated safety check: PassMIT
Helm Chart ScaffoldingCybereason-Public/owLSM28013 repos~381Automated safety check: PassGPL-2.0
Kubernetes ArchitectCybereason-Public/owLSM2809 repos~2.6kAutomated safety check: PassGPL-2.0
Openbkn Deployopenbkn-ai/bkn-foundry645—~1.9kAutomated safety check: NotesCustom licence
.NET Crash Dump Collectiondotnet/skills5.6k2 repos~1.1kAutomated safety check: PassMIT
Devsydevsy-org/devsy111—~1.7kAutomated safety check: PassMPL-2.0

Similar skills

  • Helm Chart Scaffolding

    Cybereason-Public/owLSM

    Comprehensive guidance for creating, organizing, and managing Helm charts for packaging and deploying Kubernetes applications.

    280 GitHub starsUsed in 13 repos~381 tokens
    DevOps & CloudAuto-check passed
  • Kubernetes Architect

    Cybereason-Public/owLSM

    Expert Kubernetes architect specializing in cloud-native infrastructure, advanced GitOps workflows (ArgoCD/Flux), and enterprise container orchestration.

    280 GitHub starsUsed in 9 repos~2.6k tokens
    DevOps & CloudAuto-check passed
  • Openbkn Deploy

    openbkn-ai/bkn-foundry

    Deploy or upgrade OpenBKN on a customer-authorized Linux server through the repository's deploy scripts, with preflight checks, explicit confirmation, secret handling, and post-deployment…

    645 GitHub stars~1.9k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Official

    Configures automatic crash dumps or captures dumps from running processes for modern .NET apps on Linux, macOS and Windows, including Docker and Kubernetes.

    5.6k GitHub starsUsed in 2 repos~1.1k tokens
    DevOps & CloudAuto-check passed
  • Devsy

    devsy-org/devsy

    Operate Devsy workspaces and providers for end users. An agent skill from devsy-org/devsy.

    111 GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Build Images

    kubernetes-sigs/cloud-provider-azure

    Official

    Build cloud-provider-azure container images through the repo Makefile with explicit IMAGETAG and IMAGEREGISTRY inputs, optional make flag overrides, and opt-in bounded Docker or Podman retries.

    294 GitHub stars~1.7k tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from postfinance/topf

  • Migrate a Talos cluster from talhelper (budimanjojo/talhelper, now archived) to TOPF (postfinance/topf).

    175 GitHub stars~5.7k tokensUpdated 7 days ago
    Auto-check passed

Works with

Categories

Questions about Talos V114 Migration

What does Talos V114 Migration do?

Migrate a Talos Linux machine configuration from v1.13 (or earlier) v1alpha1 single-document format to the v1.14 multi-document config format introduced in Talos 1.14. Talos V114 Migration is an agent skill from postfinance/topf.14.

When should I use Talos V114 Migration?

Talos V114 Migration fits situations like: migrating Talos config patches; converting deprecated .machine.

How do I install Talos V114 Migration in Claude Code?

Run `npx skills add postfinance/topf --skill talos-v114-migration -a claude-code`. Or copy the skill folder (skills/talos-v114-migration in postfinance/topf) into .claude/skills/talos-v114-migration in your project. Claude Code loads it when a task matches its description.

How do I install Talos V114 Migration in Codex?

Run `npx skills add postfinance/topf --skill talos-v114-migration -a codex`. Or copy the skill folder (skills/talos-v114-migration in postfinance/topf) into .agents/skills/talos-v114-migration in your project. Codex loads it when a task matches its description.

Can I use Talos V114 Migration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add postfinance/topf --skill talos-v114-migration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/talos-v114-migration, .gemini/skills/talos-v114-migration, .github/skills/talos-v114-migration and .opencode/skills/talos-v114-migration in your project.

What does Talos V114 Migration need to run?

SKILL.md names no scripts, command-line tools or credentials: Talos V114 Migration is instructions for the agent only.

Does Talos V114 Migration access the network?

SKILL.md names 2 domains. In commands or code: docs.siderolabs.com; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.

Is Talos V114 Migration safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Talos V114 Migration use?

Talos V114 Migration is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Talos V114 Migration use?

About 2.5k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Talos V114 Migration?

Skills that share tags, products or a category with Talos V114 Migration: Helm Chart Scaffolding (Cybereason-Public/owLSM, 280 stars), Kubernetes Architect (Cybereason-Public/owLSM, 280 stars), Openbkn Deploy (openbkn-ai/bkn-foundry, 645 stars) and .NET Crash Dump Collection (dotnet/skills, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Talos V114 Migration?

postfinance (a GitHub organization) maintains it in postfinance/topf, which has 175 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 2, 2026.

Source: postfinance/topf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.