Skip to content

fix(talos): make flannel ownership singular#12753

Open
gregkonush wants to merge 2 commits into
mainfrom
codex/talos-owned-flannel-cutover
Open

fix(talos): make flannel ownership singular#12753
gregkonush wants to merge 2 commits into
mainfrom
codex/talos-owned-flannel-cutover

Conversation

@gregkonush

Copy link
Copy Markdown
Member

Summary

  • configure Talos custom CNI with the immutable complete Flannel bundle from merge commit 15f59fd037dd45ecd79cf69031215d1e79b6b479
  • remove the partial Argo flannel-cni application and its ConfigMap-only ownership
  • preserve MTU 1400, VXLAN UDP 4789, pod CIDR, KubePrism, and the Talos v1.13.6 Flannel image in one complete owner
  • document the quorum-gated live cutover, validation, rollback ordering, and Kubernetes upgrade checks
  • update inventory and custom-manifest regression coverage

Related Issues

None

Testing

  • talosctl gen config custom-cni-test https://127.0.0.1:6443 --config-patch @devices/galactic/manifests/custom-flannel-cni.patch.yaml --output-types controlplane ...
  • talosctl validate --config <generated-controlplane.yaml> --mode metal --strict
  • bun test packages/scripts/src/shared/__tests__/talos-flannel.test.ts packages/scripts/src/shared/__tests__/enabled-apps.test.ts
  • kubeconform -strict -summary devices/galactic/manifests/flannel-v0.28.5-mtu1400.yaml
  • fetched the immutable raw URL and matched SHA-256 e70285f0a94b1d8402963164b3065577f89fd1bd5d0ad611e933fcb96bdeda1a
  • bun run lint:argocd
  • bunx oxfmt --check ...
  • git diff --check

Rollout and impact

Do not merge until all three control-plane nodes and etcd quorum are healthy. Apply the checked-in Talos patch to every node first, verify the custom manifest is applied and networking remains healthy, then merge so Argo relinquishes the preserved ConfigMap. Remove the stale Argo preservation annotation only after the Application is absent.

Breaking Changes

The flannel-cni Argo Application is retired. Talos becomes the sole owner of the complete Flannel bundle; rollback after merge must restore the Argo guard before switching Talos back to generated Flannel.

Checklist

  • Testing section documents the exact validation performed.
  • Screenshots are not applicable; Breaking Changes is filled in.
  • Documentation, rollout impact, rollback ordering, and follow-up validation are updated.

@gregkonush
gregkonush force-pushed the codex/talos-owned-flannel-cutover branch from dcb550f to b58eecd Compare July 17, 2026 09:42

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b58eecd514

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +70 to +71
The custom CNI delegate does not change Flannel's backend MTU, and `/run/flannel/subnet.env` may still report
`FLANNEL_MTU=1450` on a normal 1500-byte underlay. Do not continue workload validation unless the ConfigMap value is

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep the asserted MTU phrase on one line

packages/scripts/src/docs/__tests__/flannel-mtu-runbook.test.ts:14 asserts the contiguous string may still report \FLANNEL_MTU=1450`, but this edit splits it across two source lines, so bun test packages/scripts/srcfails. This change triggers that suite through.github/workflows/scripts-ci.yml`; either preserve the phrase as one line or update the runbook test for the new wording.

Useful? React with 👍 / 👎.

@gregkonush
gregkonush force-pushed the codex/talos-owned-flannel-cutover branch from 9acccd8 to f3394ee Compare July 17, 2026 09:51

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f3394ee9fd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +4 to +6
name: custom
urls:
- https://raw.githubusercontent.com/proompteng/lab/15f59fd037dd45ecd79cf69031215d1e79b6b479/devices/galactic/manifests/flannel-v0.28.5-mtu1400.yaml

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Include the custom CNI patch when joining control planes

The canonical new-control-plane procedure in devices/galactic/docs/add-control-plane-node.md:85-91 does not apply this patch, so a control plane added with that command retains Talos's default name: flannel configuration. That node can then reconcile Talos's generated Flannel resources over the cluster-wide ConfigMap/DaemonSet, reintroducing a competing owner and reverting the required 1400 CNI delegate MTU. Add this patch to the join workflow (or otherwise make it part of every control-plane machine configuration).

Useful? React with 👍 / 👎.

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