一键导入
ops-investigation-k3s-upgrade-homelab
Instructions for updating the k3s homelab cluster one machine at a time while preserving custom systemd ExecStart arguments.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Instructions for updating the k3s homelab cluster one machine at a time while preserving custom systemd ExecStart arguments.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Administer the canonical Forgejo server - converge branch protection and repo PR/merge settings across owned repos, plus docker/git credential auth through the attended admin-token helper. Use when protecting a branch after creating a repo, auditing drift, converging merge policy, or fixing Forgejo docker/git credential failures. Aliases - forgejo branch protection, forgejo repo settings, forgejo docker auth, forgejo git credentials, forgejo-creds.
Mint and provision the fleet's git-forge credentials without static PATs - short-lived GitHub App tokens for warded github.com runs, plus Forgejo bot / CI / Flux / tap / scoop PATs in SSM. Aliases - mint token, github app token, forgejo pat, ci release token, tap bump token, scoop write token.
Operate the safe Forgejo <-> GitHub mirror reconcile - auto-merges GitHub's merged-PR commits into canonical Forgejo and republishes both sides. Covers when to run it, the per-repo reconcile model, dry-run vs live dispatch, conflict handling, and the staged cutover. Aliases - mirror sync, mirror reconcile, forgejo github mirror, reconcile mirrors, github mirror, forgejo mirror, mirror drift, mirror-reconcile.
Install, self-heal, or clean up the Claude Code remote-control daemon behind the claude.ai/code Remote Control dropdown on kai-server, kai-desktop-tower (WSL + Windows), and the Macs. Use when a host is missing from the dropdown, shows duplicate rows, drops out overnight with exec claude not found / status 127, or when standing up a new host. Aliases - remote control dropdown, kai-server daemon, node-tooling-ensure, node orphan, status 127 claude not found, claude.service cleanup.
Set up and operate the coilysiren Eco game server on kai-server - download/install, push mods, start via systemd, Discord Link + Chronicler, NidToolBox, and game-state resets. Flags the legacy-vs-kai-server path split so old invoke commands do not bite. Aliases - eco server setup, set up eco server, eco game server, push eco mods, restart eco server, eco resets, nidtoolbox, chronicler, discord link.
Use when working on, arming, debugging, or reasoning about the @claude / /claude impl containerized implementer that lands on main from a Forgejo issue comment - the gate script, the claude-issue.yml workflow, the INERT-by-design enablement + author gates, the goose+qwen (not Anthropic-key) backing, per-issue cap and concurrency, or why a summon did or did not fire. Aliases - @claude, /claude impl, claude dispatch, claude-issue.yml, claude_dispatch.py gate, CLAUDE_DISPATCH_ENABLED.
| name | ops-investigation-k3s-upgrade-homelab |
| description | Instructions for updating the k3s homelab cluster one machine at a time while preserving custom systemd ExecStart arguments. |
| compatibility | opencode |
Status: 🛠 Runbook | Last updated: 2026-05-08
Use this skill when updating k3s in this homelab. It covers: safety model, node access, upgrade commands, per-machine workflow, and recovery if an agent ends up on a control-plane node.
k8s-homelab skill for node access details and general homelab rules.Use the command matching the node role you are upgrading. Control-plane / server node (existing additional control-plane node):
k3sup join --server --ip <ip> --server-ip <healthy-server-ip> --user <ssh-user> --server-user <server-ssh-user> --ssh-key ~/.ssh/id_ed25519 --k3s-channel stable --no-extras
Worker / agent node:
k3sup join --ip <ip> --server-ip <healthy-server-ip> --user <ssh-user> --server-user <server-ssh-user> --ssh-key ~/.ssh/id_ed25519 --k3s-channel stable
--server-ip points to another healthy control-plane node, never the node being upgraded.k3sup, inspect the active k3s unit on that machine./etc/systemd/system/k3s.service and record any arguments present in ExecStart.k3s-agent.service.k3sup command for that machine./etc/systemd/system/k3s.service because k3sup may overwrite it.ExecStart arguments that were lost.systemctl daemon-reload after editing the unit file.k3s on control-plane, k3s-agent on workers).Ready before continuing./etc/systemd/system/k3s.service.k3s-agent.service.k3sup rewrites the control-plane k3s.service unit, restore any custom arguments that existed before the update.See references/recovery-and-verification.md for recovery if agent mode was used on a control-plane node, and the full verification checklist (including systemctl cat k3s and kubectl get nodes) before moving to the next machine.
daemon-reload, verify the unit, reload systemd, then confirm k3s health before proceeding.Routed by the coilyco-ops-investigation meta-skill alongside daily-operational as the live owner of k3s homelab cluster work. When a node, pod, or systemd-unit issue surfaces, this skill (upgrade work) or daily-operational (day-to-day pod health) is the destination, not the meta, which only ensures the universal first moves run first.