Skip to content

Talos を先に、Z440 を後に: 設定と文書の矛盾を直して圧縮する - #394

Open
5ym wants to merge 3 commits into
mainfrom
talos-first-docs
Open

5ym wants to merge 3 commits into
mainfrom
talos-first-docs

Conversation

@5ym

@5ym 5ym commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Talos への移行を先に (DL360 の上で)、Z440 への移設を後にする。それに合わせて移行まわりの設定と文書を見直し、矛盾を直して圧縮する。

設定の変更 (talos/patches/cluster.yaml)

  • bond0 の MAC を e6:2c:1b:1a:a0:39 に固定する。 ルーターの IPv6 ホスト公開のエントリがこの MAC を指している。v1alpha1 の machine.network.interfaces では bond の MAC を指定できず、eno1 の MAC を引き継ぐので、型付きの BondConfig / LinkConfig に移して hardwareAddr を書いた。Ubuntu 側も 2026-10-17 に netplan の macaddress で同じ値に固定した (それまでは固定しておらず、10-16 の再起動で 3a:43:95:a9:3e:b1 に変わってエントリが外れていた)。
  • bond0 の SLAAC を止める (autoconf=0)。 cloudflare-ddns の local.iface.stable:bond0 は一時アドレス以外から選ぶので、静的な ::2 ではなく SLAAC のアドレスを AAAA に書いていた。Talos では addr_gen_mode=3 で SLAAC が再起動ごとに変わるので、AAAA も毎回変わってしまう。RA の既定経路は accept_ra=2 でそのまま受ける。

文書

  • 順番の入れ替え: ROADMAP に Phase 2.5 (Z440) を新設。docs/z440-migration.md を Talos 前提で書き直し (LinkAliasConfig で NIC を MAC で選ぶ、apply-config --mode=staged、schematic の console=、Arc A310 を常設、AMT)。docs/decisions.md に順番と MAC の決定を足した。
  • 古くなった記述: k8s の版 (versions.yaml を参照)、PT3、taint の外し方、SSD の種類 (SATA の Radeon R7。DL360 では Smart Array 越しで TRAN=sas)、NetworkManager → systemd-networkd、ghcr の資格情報、local-path-retain、etcd からの復元、5ym/renovate → 5ym/repo-config、k8up の Secret の正本 (Infisical)、存在しないリンクと見出しへの参照 (talos-install-media.md、.gitignore、netbird、pulumi、cloudflare-ddns のコメント)。
  • migration-day に足した: talosctl get disks、bond0 の MAC、IPv6 だけで 443 に届くかの確かめ方 (A レコードもあるので名前で開くだけでは IPv4 に落ちる)、AAAA が ::2、PT3 と B-CAS、Renovate、やめどき。
  • 圧縮: 文書全体で約 750 行減。docs/talos.md のドリルの記録を表に (785 → 約 410 行)、decisions.md (877 → 約 700 行)、ROADMAP・k8up・restore-drill・bootstrap の重複と経緯。作業の手順と、同じ失敗を繰り返さないための理由は、それぞれ 1 か所に残した。

要確認のまま (文書にもそう書いた)

  • Arc A310 に要る Talos の extension (siderolabs/i915 で合っているか)、Talos のカーネルに e1000e / igb が入っているか
  • LinkAliasConfig の MAC の比べ方 (公式の例の glob の形にした)、両方の機械の MAC を並べた 1 つの config で済むか
  • volumes.yaml の noexec を外す今の理由 (当初は Mattermost のプラグイン。撤去済み)
  • 外から IPv6 だけで 443 に届くかは、まだ確かめていない

🤖 Generated with Claude Code

https://claude.ai/code/session_01JbmWyUB9jcBcYCnNyiGBSV

5ym and others added 2 commits October 17, 2026 02:08
ルーターの IPv6 ホスト公開のエントリがこの MAC を指している。v1alpha1 の
machine.network.interfaces では bond の MAC を指定できず、eno1 の MAC を引き継ぐので、
Talos に替えた日と Z440 に移した日に外からの IPv6 が止まる。BondConfig / LinkConfig に移して
hardwareAddr で固定する。あわせて Ubuntu 側のネットワーク管理が systemd-networkd である
ことに合わせてコメントを直し、リンク切れ(talos-install-media.md)を直す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JbmWyUB9jcBcYCnNyiGBSV
- 順番を入れ替える: Phase 2 = DL360 の上で k3s → Talos(iLO がある)、Phase 2.5 = Talos のまま Z440 へ。
  Z440 は GPU が無いと POST しないので Arc A310 を常設する(AV1 のエンコードにも使う)
- z440-migration.md を Talos 前提で書き直す(LinkAliasConfig、staged config、schematic の console=、AMT)
- bond0 の SLAAC を止める(autoconf=0)。cloudflare-ddns は SLAAC のアドレスを AAAA に書いていた
- 古くなった記述を直す: k8s の版、PT3、taint の外し方、SSD の種類、NetworkManager → systemd-networkd、
  ghcr の資格情報、local-path-retain、etcd からの復元、リポジトリの旧名、存在しないリンクや見出しの参照
- migration-day に足す: get disks、bond0 の MAC と IPv6 の確かめ方、AAAA、PT3、Renovate、やめどき
- 圧縮: talos.md のドリルの記録を表に(785 → 約 410 行)、decisions.md(877 → 約 700 行)、
  ROADMAP・k8up・restore-drill・bootstrap の重複と経緯。理由はそれぞれ 1 か所に残す

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JbmWyUB9jcBcYCnNyiGBSV
@5ym
5ym marked this pull request as ready for review October 16, 2026 17:21
@claude

claude Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Claude finished @5ym's task in 37s —— View job


レビュー結果

設定の変更 (talos/patches/cluster.yaml) と文書の整理を読んだ。ブロッカーになる不具合は見つからなかった。確かめられなかった点を「要確認」として下に挙げる。

確認したこと

  • 文書・コメントに足した参照は、リンク先がある。対象は次のとおり。
    • talos/README.md の「fj.doany.io の資格情報」、「適用は CI にやらせない」、「上げ方 / 当て直し方」、「inlineManifests を直したとき」
    • docs/decisions.md の各見出し (HelmChart CRD、NetBird、DNS、ツール選定)
    • docs/talos.md の「machine config の作法」と「VM ブートドリル」
  • bond0 の MAC (e6:2c:1b:1a:a0:39) は cluster.yaml、router.md、decisions.md、z440-migration.md、talos.md で同じ値だった。
  • v1alpha1 の interfaces から BondConfig / LinkConfig に移した内容は、元の設定と一致している。
    • アドレスは 10.0.0.2/24、240f:6d:842b:1::2/64、10.10.0.4/24
    • 経路は IPv4 の既定経路と 10.10.0.0/24
    • IPv6 の既定経路を書かないことも変わっていない。

要確認 (実機でしか分からない)

  1. net.ipv6.conf.bond0.autoconf: "0" を当てる順序 (talos/patches/cluster.yaml)
    • sysctl は bond0 が現れてから KernelParamSpecController が書く。
    • bond0 が上がって最初の RA が届くのが sysctl より先なら、SLAAC のアドレスが一度付く可能性がある。
    • autoconf=0 は既に付いたアドレスを消さない。
    • 当日の確認 (migration-day.md 219 行目) は、起動直後だけでなく数分後と再起動後にも ip -6 addr show bond0 を見る形にするとよい。
    • autoconf=0 で accept_ra=2 の既定経路が残ることも、Kubernetes が上がったあとの talosctl get routes で確かめる。
  2. hardwareAddr を実機が受け付けるか
    • BondConfig.hardwareAddr が bond の MAC として実際に効くかは、VM ドリルで確かめていない。
    • 効かないと、Talos に替えた日に MAC が変わって IPv6 の公開が止まる。
    • migration-day の手順に talosctl get links bond0 -o yaml で MAC を見る項目があるので、apply-config の直後に見ること。
  3. drift.sh の前提 (talos/drift.sh)
    • 「移行後は tools/t.ps1 で回す」とあるが、コンテナに python3 と PyYAML があるかは、コメント自身が要確認としている。
    • tools/Dockerfile で確かめて、無ければ足すか、コメントの記述を直す。
  4. volumes.yaml の noexec を外す理由 (talos/patches/volumes.yaml)
    • Mattermost の撤去で当初の理由が無くなった。
    • 新しい理由 (Forgejo の hooks/ を git が exec する) は「はずだが未検証」と書いてある。
    • 未検証のまま noexec を外す方が緩い側なので、Forgejo の VM ドリルで確かめるまでは今のままでよい。

所感

  • 文書は圧縮の方向で、手順と「同じ失敗を繰り返さない理由」が 1 か所に残っている。重複と経緯を削った結果、参照が切れた箇所は見当たらない。
  • 順序を変える決定 (Talos を先に、Z440 を後に) は decisions.md と ROADMAP の Phase 2.5 に揃って書かれている。
  • 「IPv6 だけで 443 に届くか」を未確認と明記しているのは適切。

指摘は上の 4 点のみで、いずれも実機で確かめる項目。

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

🍹 preview on doany-cloudflare/prod

Pulumi report
Previewing update (prod):

@ previewing update.....
pulumi:pulumi:Stack doany-cloudflare-prod  
Resources:
54 unchanged

@claude

claude Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Claude finished @5ym's task in 22s —— View job


レビュー結果

origin/main...HEAD の設定差分 (talos/patches/*、drift.sh、render.sh、versions.yaml、コメントの参照先) を読んだ。ブロッカーになる不具合は見つからなかった。

確認したこと

  • cluster.yaml の BondConfig / LinkConfig への移行は、元の interfaces と内容が一致している。
    • アドレスは 10.0.0.2/24、240f:6d:842b:1::2/64、10.10.0.4/24。
    • 経路は IPv4 の既定経路と 10.10.0.0/24。
    • IPv6 の既定経路を書かないことも変わっていない。
  • 文書とコメントの参照先は実在する。
    • decisions.md の finalizer の件 (454〜460 行目) は、cloudflare-ddns/application.yaml の新しいコメントと食い違わない。
    • talos-install-media.md への参照は残っていない。
  • drift.sh の python3 の件: 前回レビューで挙げた点は、今回コメントに「tools のコンテナには入っていない。回すなら python3-yaml を足す」と明記されて解消済み。

要確認 (実機でしか分からない。どれも PR に書いてある)

  1. hardwareAddr が bond の MAC として効くか。migration-day.md 215 行目に talosctl get links bond0 の項目があるので、apply-config の直後に見ること。
  2. net.ipv6.conf.bond0.autoconf=0 を当てる順序。bond0 が上がって最初の RA が届くのが sysctl より先なら、SLAAC のアドレスが一度付くかもしれない。autoconf=0 は付いたアドレスを消さない。起動直後だけでなく、数分後と再起動後にも ip -6 addr show bond0 を見るとよい。
  3. volumes.yaml の noexec を外す新しい理由は、「Forgejo の hooks/ を git が exec するはずだが未検証」と書いてある。Forgejo の VM ドリルで確かめるまでは今のままでよい。

所感

  • 圧縮の方向で、手順と「同じ失敗を繰り返さない理由」が 1 か所に残っている。
  • 順番の入れ替え (Talos を先に、Z440 を後に) は ROADMAP と decisions.md に揃っている。

指摘は上の 3 点のみで、いずれも実機で確かめる項目。

This branch has not been deployed

No deployments
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