WIP — DO NOT MERGE: cilium seed/ownership, blocked on a decision #706
Closed
claude-bot
wants to merge 3 commits from
fix-cilium-bootstrap-seed into main
pull from: fix-cilium-bootstrap-seed
merge into: :main
:main
:fix/ma-sendspin-mdns-net1
:claude/ma-pocketcasts-up-next-mark-played
:claude/ma-pocketcasts-up-next-playlist
:revert/ma-po-token-server
:alert-fix/issue-1453
:claude/gitea-mcp-imagerepo
:feat/ma-youtube-music-po-token-v2
:feat/ma-youtube-music-po-token
:claude/coredns-talos-owned-2
:claude/coredns-talos-owned
:claude/k8s-gateway-ingress-resolver
:claude/egress-followups
:feat/wiki-cronjobs
:renovate/hermes-image
:renovate/ci-minor-patch
:renovate/influxdb
:renovate/home-assistant-minor-patch
:renovate/multus
:renovate/all-minor-patch
:renovate/pin-image-digests
:claude/mqtt-admin-register
:claude/shelly-manager-mdns
:feat/wiki-encyclopedia-pilot
:ci-image/claude-2.1.310
:claude/mosquitto-legacy-auth-removal
:claude/egress-lockdown
:fix/gate-embedded-refresh-interval
:fix/gate-embedded-browser-host
:feat/authentik-gate-forwardauth
:docs/drop-wildcard-references
:fix/netbird-controller-disable-dns
:feat/dns-labels-split-2
:feat/dns-labels-split-1
:fix/cloudflare-lb-sync-image-tag
:feat/cloudflare-lb-sync
:fix/wordpress-php85-php2shell
:feat/update-os
:chore/talos-1.13.12
:atlas/talos-v1.13.12-cve-2026-99999
:fix/gitea-webhook-sync-org-scope
:atlas/kuma-mcb-www-retries
:feat/hermes-gitea-pr-review-loop
:atlas/traefik-chart-42
:fix/monitoring-k8s-gateway-probe
:alert-fix/issue-1081-rotator
:ci-image/claude-2.1.306
:alert-fix/issue-1084-v2
:atlas/flux-2.9.6
:alert-fix/issue-1082
:feat/hermes-gitea-issues-kanban
:worktree-restore-test-real
:fix/hermes-multiplex-env
:feat/hermes-experts
:feat/hermes-ha-mcp
:feat/kuma-status-page
:fix/hermes-ha-updates-review
:feat/hermes-alert-monitor
:feat/hermes-ha-updates
:fix/turn-tcp-router
:fix/crowdsec-own-ca
:fix/livekit-service-links
:fix/crowdsec-lapi-transport-ca
:feat/matrix-element-call
:feat/kuma-public-coverage
:feat/ha-matrix-nabu-secret
:feat/hermes-matrix-cross-signing
:feat/hermes-matrix
:fix/wiki-basic-auth-in-service
:proposal/traefik-vip-maglev-dsr
:fix/hermes-dashboard-ws-ping-timeout
:fix/hermes-dashboard-ws-ping-interval
:fix/hermes-dashboard-refresh-token
:feat/wiki-drop-gate
:feat/wiki-oidc-provider
:fix/hermes-soul-talos-node-names
:claude/docs-konairius-main
:claude/drop-k-renner-org-secrets
:claude/prompts-main
:claude/default-branch-main
:feat/hermes-cli-logins
:claude/plan-step0-claude-bot
:alert-fix/issue-1363
:claude/homelab-konairius
:claude/konairius-org-secrets
:fix/hermes-image-registry-bot
:feat/hermes-use-custom-image
:feat/hermes-image
:feat/kuma-task5-monitors
:feat/hermes-gitea
:fix/hermes-configmap-namespace
:feat/hermes-homelab-context
:fix/uptime-kuma-script-mount
:feat/kuma-task4-bootstrap
:feat/kuma-task4-cluster
:feat/kuma-sync-default-notifications
:fix/hermes-image-policy
:fix/kuma-sync-foreign-key-create
:feat/hermes-agent
:chore/kuma-sync-smoke-remove
:feat/kuma-sync-smoke
:feat/kuma-sync-deploy
:ci-image/claude-2.1.303
:renovate/authentik
:feat/kuma-sync
:docs/uptime-kuma-plan
:chore/remove-autokuma
:fix/uptime-kuma-ipv6
:feat/autokuma-pilot-update
:fix/drop-flux-image-automation-alert
:feat/autokuma-pilot
:feat/autokuma
:fix/uptime-kuma-fail-guard
:fix/uptime-kuma-setup-diagnostics
:feat/uptime-kuma-vps
:ci/ansible-image-hvac
:claude/plan-homelab-konairius-main
:fix/kubejobfailed-resolve-on-later-success
:claude/homeassistant-konairius
:claude/ha-config-sync-identity
:feat/site-base-domain
:claude/review-bot-repos-konairius
:claude/authentik-konairius-images
:claude/notes-renovate-konairius
:claude/vsftpd-konairius-image
:claude/registry-bot-read-scope
:claude/registry-bot
:ci-image/claude-2.1.302
:claude/review-bot-approved
:claude/review-bot-backends
:fix/wp-pg-recovery-source
:feat/review-bot-status
:worktree-hcloud-wg-site
:node-dns-via-k8s-gateway
:chore/remove-paperclip
:worktree-k8s-gateway-chart-4
:fix/review-bot-approve-with-unverified
:chore/remove-wiki-maintenance-ci
:fix/review-bot-unique-tag
:fix/review-bot-rereview
:fix/review-bot-build-trigger
:fix/review-bot-backoff-cap
:fix/review-bot-rate-limit
:chore/disable-old-pr-review
:feat/review-bot-deploy
:feat/review-bot-service
:feat/pr-review-mistral
:fix/gitea-mcp-public-gitea-url
:alert-fix/issue-1242
:alert-fix/issue-1241
:fix/gitea-mcp-command
:feat/gitea-mcp
:claude/netbird-service-sync-pin
:claude/gitea-public
:feat/embed-knn-bench
:claude/pr-review-latest-cli
:ci-image/claude-2.1.296
:chore/decommission-openproject
:claude/pr-review-central
:feat/openproject-authentik-oidc
:fix/alloy-syslog-udm-cef-regex
:alert-fix/issue-1217
:alert-fix/issue-1214
:atlas/ren-1363-openproject-seeder-order
:atlas/ren-1367-gitea-1.27
:atlas/ren-1367-gitea-pre-upgrade-snapshot
:atlas/ren-1363-openproject
:atlas/ren-1345-ops-image-jq
:atlas/ren-1345-hermes-prometheus-read
:atlas/ren-1345-bridge-agent-secrets
:atlas/ren-802-retire-sml2mqtt
:atlas/ren-953-remove-legacy-users
:atlas/ren-1307-edge1-register
:atlas/ren-1307-edge1-cred-receiver
:atlas/ren-953-controller-ha-cert
:atlas/ren-1256-prune-shellies-secret
:atlas/ren-953-ha-mqtt-cert-sync
:atlas/ren-1256-adopt-shellies-secret
:atlas/ren-1203-eso-gitea-namespace
:atlas/ren-1203-gitea-package-retention
:atlas/ren-1196-agent-runtime-tzdata
:atlas/ren-1017-remove-legacy-shellies
:atlas/ren-1017-ht-wake-reland
:atlas/ren-1017-shelly-30
:atlas/ren-1167-revert-1183
:alert-fix/issue-1184
:atlas/ren-1017-ht-wake
:atlas/ren-1017-shelly-group5c
:atlas/ren-1017-shelly-group5b
:atlas/ren-1080-controller-1d03144-rotate-hold
:atlas/ren-1017-shelly-group5
:atlas/ren-1017-shelly-group4
:atlas/ren-1053-controller-a307693
:atlas/ren-1017-shelly-group3
:atlas/ren-1017-shelly-group2
:atlas/ren-1017-shelly-group1
:atlas/ren-1017-device-list
:atlas/ren-1017-shelly-accounts
:atlas/ren-953-agents-read-paperclip-pod
:atlas/ren-953-agents-read
:atlas/ren-953-ha-mqtt-tls
:atlas/ren-953-ha-account
:atlas/ren-953-evcc-cert
:atlas/ren-953-evcc-account
:atlas/ren-953-z2m-cert
:atlas/ren-953-z2m-account
:atlas/ren-953-health-probe-cert
:atlas/ren-931-agent-shelly-manager
:atlas/ren-900-controller-bump
:atlas/ren-900-mosquitto-dynsec
:atlas/ren-888-revoke-test-account
:atlas/ren-888-mqtt-account-controller
:atlas/ren-841-remove-repair-job
:atlas/ren-841-k8s-plugin-termination-receipt
:atlas/ren-841-lease-receipt-repair
:atlas/ren-802-suspend-open3e-int-rotator
:atlas/ren-826-remove-read-job
:atlas/ren-826-room-setpoint-read
:atlas/ren-809-remove-capture
:atlas/ren-809-open3e-fbh-capture
:atlas/ren-723-authentik-2026.8.3
:atlas/ren-772-remove-rekey-job
:atlas/ren-772-wp-repo4-rekey
:atlas/ren-722-mdns-relay-v191-attach
:atlas/ren-723-openbao-rolling
:atlas/ren-722-dhcp-lease-renew
:atlas/ren-722-cni-plugins-installer-v1.9.1
:atlas/ren-723-influxdb-snapshot
:atlas/ren-722-cni-plugins-v1.9.1
:atlas/ren-722-job-force-annotations
:atlas/ren-717-matrix-bridge-1791195981
:atlas/ren-702-paperclip-cap-kill
:atlas/ren-691-matrix-bridge-1791179547
:atlas/ren-685-matrix-bridge-1791177680
:ci-image/claude-2.1.289
:atlas/ren-671-matrix-bridge-1791152484
:atlas/ren-663-matrix-public
:atlas/ren-587-matrix-bridge
:atlas/ren-567-authentik-grant-types
:atlas/ren-567-mas
:atlas/ren-627-edge1-ssh-egress
:atlas/ren-621-loki-read-gateway
:atlas/ren-603-pclp-pg-memory
:atlas/ren-583-gitea-pvc-volumename
:atlas/ren-583-gitea-volume-60gi
:atlas/ren-563-claude-session-resume
:atlas/ren-563-revert-1111
:atlas/ren-567-matrix
:atlas/ren-563-acpx-session-resume
:atlas/ren-544-argus-token-v3
:atlas/ren-539-atlas-token-v3
:atlas/ren-541-claude-auto-memory
:atlas/ren-540-hestia-token-v3
:atlas/ren-528-review-bot-verify-repo
:atlas/ren-533-shelly-manager-probe
:atlas/ren-525-rotate-argus-token
:atlas/ren-509-rotate-agent-tokens
:atlas/ren-487-hubble-relay
:atlas/ren-488-govulncheck
:atlas/ren-487-agent-pod-egress
:atlas/ren-453-retire-immich-library
:atlas/ren-451-restore-abort
:atlas/ren-451-restore-test-skip-cnpg
:alert-fix/issue-1095
:atlas/ren-442-restore-capacity-gate
:z2m-ws90-converter
:alert-fix/issue-1089
:atlas/ren-419-ephemeral-wear-alert
:alert-fix/issue-1084
:alert-fix/issue-1081
:atlas/ren-414-agent-kubectl-sa
:atlas/ren-411-agent-gitea-egress
:atlas/ren-409-paperclip-14769
:atlas/ren-405-k8s-plugin-dist
:atlas/ren-401-kaniko-oom
:atlas/ren-401-paperclip-patched-image
:z2m-memory-limit
:atlas/ren-350-beets-write-retry
:fix/navidrome-native-api
:atlas/ren-350-paperclip-lidarr-cnp
:atlas/ren-350-beets-retry-skips
:atlas/ren-350-beets-write
:atlas/ren-350-beets-phase2
:atlas/ren-350-beets-cronjob
:atlas/ren-339-restore-test-teardown
:atlas/ren-339-restore-roll
:atlas/ren-339-restore-plugin
:atlas/ren-339-ha-backup-cleanup
:atlas/ren-339-ha-restore-test
:atlas/ren-315-renovate-groups
:atlas/ren-315-renovate-tool-install
:atlas/ren-107-retention-divergence-alert
:atlas/ren-159-remove-ren28-negative-probes
:atlas/ren-302-claude-agent-acp
:atlas/ren-298-agent-sandbox-v0.5.6
:atlas/ren-294-ical-proxy-926ead0
:atlas/ren-286-agent-runtime-own-workflow
:atlas/ren-285-agent-sandbox-labels
:atlas/ren-286-agent-runtime-images
:atlas/ren-285-agent-sandbox
:atlas/ren-148-paperless-ingress-scoping
:atlas/ren-93-promql-gate
:atlas/ren-268-ha-hacs-proxy
:atlas/ren-266-hacs-versions
:atlas/ren-245-ha-critical-alerts
:atlas/ren-243-ha-window
:feat/openbao-secret-exists-check
:atlas/ren-239-ical-proxy-main-73b5d97
:atlas/ren-238-ical-proxy-main-4783abe
:atlas/ren-201-ical-proxy-gitea-image
:atlas/ren-216-renovate
:atlas/ren-152-wal-backlog-retune
:atlas/ren-198-pin-kps-chart
:atlas/ren-176-ha-pg-walstorage
:atlas/ren-166-cilium-verdict-metric
:atlas/ren-7-alert-contacts
:atlas/ren-177-velero-cephfs-readonly-backuppvc
:feat/paperclip-api-door
:atlas/ren-186-cost-ledger-sync
:atlas/ren-183-yaml-anchors
:atlas/ren-161-promtool-ci
:atlas/ren-163-ceph-nearfull-headroom
:atlas/ren-7-restore-audiobooks
:atlas/ren-127-podmonitor-comment
:atlas/ren-165-wal-maxparallel-stage
:atlas/ren-141-ha-pg-32gi
:atlas/ren-147-cilium-agent-metrics-service
:atlas/ren-142-negative-control-probe
:atlas/ren-140-negative-test-probes
:atlas/ren-102-flux-ksm-crs
:atlas/ren-7-pilot-endpointmonitors
:atlas/ren-131-openbao-unavailable-for
:atlas/ren-106-narrow-eso-failed
:atlas/ren-116-probe-citation-path
:atlas/ren-103-scrape-doc-gaps
:atlas/ren-6-imc-deploy
:atlas/ren-100-externalsecret-healthcheck
:atlas/ren-91-imagepolicy-total-order
:atlas/ren-88-ceph-ec-pool-false-page
:atlas/ren-86-paperclip-dependson-monitoring
:atlas/ren-36-prometheus-read-path
:docs/probe-egress-dependency-and-revert-recipe
:docs/paperclip-claude-token
:fix/paperclip-memory
:docs/probe-cnp-egress-and-status-caveats
:feat/ren-21-paperless-app-health-probe
:feat/ren-21-navidrome-app-health-probes
:alert-fix/issue-968
:feat/paperclip-wiki-key
:feat/lidarr
:feat/wiki-api-key-paperclip
:feat/paperclip-signup-off
:feat/paperclip
:feat/netbird-retire-vps-proxy
:feat/navidrome
:feat/immich-bulk-cutover
:feat/immich-bulk-pvcs
:feat/wiki-image-automation
:chore/wiki-image-fact-drafter
:chore/wiki-image-facts-page
:chore/abs-drop-old-books-pvc
:chore/wiki-image-judge-one-request
:feat/abs-books-bulk
:feat/libation-strip-branding
:feat/cephfs-ec-bulk
:feat/open3e-int-broker-user
:feat/wiki-reloader
:chore/wiki-image-phases-4-6
:feat/wiki-anthropic-key
:feat/wiki-service-write-token
:chore/retire-python-wiki-index
:feat/wiki-machine-door
:chore/wiki-phase3-image
:chore/wiki-phase2-image
:chore/wiki-build-1790250017
:feat/wiki-gate
:fix/gitea-egress-wiki
:feat/wiki-service-manifests
:docs/proposal-wiki-web-api
:alert-fix/issue-937
:fix/alertmanager-info-inhibitor
:feat/cephx-allowed-ciphers-aes256k
:feat/cephx-drop-prior-csi-keys
:ci/wiki-consolidate-tilde-paths
:feat/cephx-csi-aes256k
:ci/wiki-consolidate-in-ci
:chore/talos-1.13.10
:feat/drain-tolerant-singletons
:ci/wiki-distill-skip-empty
:ci/wiki-audit-script
:fix/k8s-gateway-oci-chart
:docs/network-traffic-classes-as-built
:feat/node-ip-vlan-46
:alert-fix/issue-920
:feat/bird-attached-node0
:feat/node-vlan-46-link
:chore/cni-drop-stage-labels
:feat/cni-sole-writer-converge-b2
:feat/cni-sole-writer-converge-b1
:chore/cni-stage-k8s-1
:fix/whereabouts-reconciler-cordon
:chore/cni-stage-k8s-2
:chore/cni-stage-k8s-3
:feat/cni-staged-sole-writer
:feat/netbird-service-sync-phase2
:feat/netbird-service-sync-phase1
:chore/gitea-namespace-phase3
:feat/gitea-namespace-phase2
:feat/gitea-namespace-phase1
:ci-image/claude-2.1.280
:fix/ci-claude-refresh-mixed-pins
:fix/align-ci-claude-pins
:fix/ci-claude-bump-token-newline
:worktree-fix-paperless-memory-limit
:alert-fix/issue-897
:alert-fix/issue-896
:fix/wiki-maintenance-merge-verify
:feat/pick-model-newest-among-comparable
:feat/pick-model-typesafe
:fix/wiki-maintenance-rebase-push
:fix/wiki-maintenance-strip-secrets
:fix/wiki-maintenance-image-2.1.278
:feat/wiki-maintenance-ci
:fix/wiki-index-commit-tags
:fix/wiki-index-pin-digest-2
:alert-fix/issue-880
:fix/wiki-index-tree-paging
:fix/wiki-index-pin-digest
:fix/wiki-index-strip-credentials
:fix/gitea-webhook-egress-wiki-index
:fix/wiki-index-openbao-ingress
:feat/wiki-index-deploy
:feat/wiki-index-image
:fix/eso-allow-ai
:feat/wiki-embed
:fix/multus-only-cni-writer
:fix/cilium-cni-uninstall
:feat/onebase-room-telemetry
:fix/external-dns-scrape-policy
:feat/dns-monitoring
:fix/external-dns-annotation-prefix
:fix/ftp-scanner-probe
:fix/libation-accounts-persistence
:fix/libation-pin-14.2.1
:feat/ceph-read-affinity
:fix/bird-local-cidr
:feat/single-pod-table
:docs/traffic-classes
:feat/podpod-rules
:fix/bird-static
:fix/bird-digest
:feat/bird-mesh2
:feat/bird-kubectl
:feat/bird-mesh
:feat/bird-image-api
:feat/bird-daemonset
:alert-fix/issue-844
:feat/bird-image
:alert-fix/issue-843
:feat/pod-egress-vlan47
:docs/576-rejected-options
:feat/antrea-eval
:feat/nodeip-pod0
:feat/cilium-native-pod0
:feat/bgp-peer-ingress
:feat/bgp-listen-ingress
:feat/ingress-static-addressing
:feat/k8s-net-split-phase-a
:feat/cilium-pin-devices
:chore/ci-k8s-2026-09-08
:feat/flux-2.9.5
:feat/ci-tool-pins
:feat/openbao-seal-key-bootstrap
:feat/openbao-static-seal
:fix/openbao-alerts-immediate
:feat/intel-gpu-dashboard
:feat/intel-gpu-exporter
:feat/intel-gpu-monitoring-resource
:fix/reloader-configmap-annotations
:netbird-proxy-protocol-digest
:netbird-proxy-protocol-deploy
:netbird-proxy-protocol
:netbird-proxy-services-uid
:netbird-proxy-services-deploy
:netbird-proxy-services
:proxy-watchdog-cooldown
:proposal-node-roll-downtime
:alert-fix/issue-808
:lapi-transport-phase-2
:ceph-address-ranges
:fix/arp-flux-second-nic
:rehearsal-san
:osd-partlabel-no-ceph
:lapi-transport-post-crds
:san-host-device-nad
:san-rollout
:san-role-rename
:ceph-20-cutover
:rebuild-tooling
:apply-set-hygiene
:rebuild-image-resilience
:cold-rebuild-ordering
:fix/bootstrap-honour-vm-state
:chore/remove-paperless-eval
:issue-fix/789-cilium-node-ula
:issue-fix/787-mdns-relay-supervisor
:trmnl-firmware-sync-off
:trmnl-device-tls
:vmtest-flux
:eval-script-fixes
:alert-fix/issue-780
:worktree-eval-script-fixes
:eval-out-of-iac
:paperless-eval-jobs
:paperless-eval-fixes
:paperless-eval-instance
:crowdsec-tailer-polling
:crowdsec-alerting
:llama-single-slot
:llama-ctx-revert
:arm-crowdsec-proxy-1
:fix-proxy-deploy-triggers
:llama-ctx-fix
:arm-crowdsec-proxy-2
:llama-ctx-assist
:crowdsec-metrics-dashboard
:alert-fix/issue-761
:embed-batch-fix
:crowdsec-lapi-service-annotations
:ha-llm-agent
:paperless-eval
:crowdsec-bouncer-unpack-on-host
:embed-bgem3
:crowdsec-bouncer-fetch-controller
:crowdsec-edge-lapi
:alert-fix/issue-750
:embed-pvc
:immich-drop-pgvectors
:fix-stale-migration-docs
:embed-oom
:embed-eval
:paperless-reloader
:close-paperless-data-migration
:paperless-llm
:paperless-3x
:llama-gate-flow
:llama-authentik-gate
:alert-fix/issue-726
:llama-single-alias
:llama-alias-order
:llama-model-alias
:ai-eval
:remove-netbird-backup
:llama-thinking-alias
:llama-split-embed
:netbird-backup-vacuum-into
:llama-server
:intel-gpu-device-plugin
:ceph-osd-by-label
:alert-fix/issue-714
:alert-fix/issue-712
:cilium-track-untracked-settings
:proposal-cilium-single-owner
:fix-cilium-bootstrap-seed
:woodpecker-agent-probe
:add-missing-probes
:paperless-http-probes
:gatus-hardening
:gatus-drop-file-check
:gatus-config-reload
:drop-pbs2-gatus
:generic-blackbox-alert
:probe-ci-openbao
:cleanup-nas-1-remnants
:ci-image/claude-2.1.250
:woodpecker-deployment-dispatch-rest
:woodpecker-deployment-dispatch-pilot
:fix-monitor-selector-comments
:fix-wear-alert-design
:trim-comments-authentik
:trim-comments-apps
:trim-comments-helm
:trim-comments-netpol
:trim-comments-infra
:trim-comments-talos
:alert-fix/issue-675
:trim-manifest-comments
:drop-unused-barman-creds
:hetzner-creds-shared-path
:ephemeral-framing
:disk-dashboard-smart
:smartctl-privileged
:smartctl-seccomp
:smartctl-exporter
:disk-dashboard-status
:disk-dashboard
:ci-image/claude-2.1.247
:kaniko-fork-rest
:kaniko-replacement
:proposal-traffic-classes
:runbook-remote-rebuild-possible
:runbook-cold-rebuild-baremetal
:alert-fix/issue-657
:velero-stale-60h
:talos-1-13-9
:ceph-mon-disk-warn-default
:ceph-san-pool-widen
:no-ipv6-on-vlan-parents
:alert-fix/issue-649
:alert-fix/issue-645
:openbao-alerting
:openbao-ha-3-replicas
:alert-fix/issue-635
:ceph-san-cleanup
:ceph-san-nad
:whereabouts-ipam
:talos-1-12-11
:mdns-relay
:netbird-rotate-migration
:runbook-stale-sockets
:drop-monitoring-agent
:ansible-drop-dead-plays
:ansible-rotate-netbird
:ansible-drop-pve
:tofu-state-verify
:alert-fix/issue-603
:drop-decommissioned-dns
:tofu-drop-proxmox-vm
:drop-pve-monitoring
:talos-factory-installer
:cilium-reloader
:drop-talos-image-seeding
:cilium-vlan-bypass
:restore-replicapool-size
:restore-cephfs-metadata-size
:alert-fix/issue-592
:ceph-readd-neptune
:k8s-3-baremetal
:ceph-drop-neptune
:alert-fix/issue-591
:ceph-readd-saturn
:alert-fix/issue-590
:remove-vm-605
:remove-vm-151
:k8s-2-baremetal
:ceph-remove-k8s-2
:baremetal-conversion-runbook
:restore-after-jupiter
:alert-fix/issue-579
:ceph-readd-k8s-1
:k8s-1-network-fix
:alert-fix/issue-573
:k8s-1-ephemeral-on-crucial
:alert-fix/issue-571
:alert-fix/issue-569
:immich-window-scaledown
:ceph-exclude-k8s-1
:crowdsec-cpu-requests
:jupiter-baremetal-u2
:velero-restore-test-monthly
:ws90-reporting-config
:alert-fix/issue-562
:fix-ws90-merge-overclaim
:fix-ws90-debounce-rationale
:worktree-z2m-2.13.0-ws90-debounce
:kaniko-no-debug-image
:alert-fix/issue-557
:alert-fix/issue-554
:alert-fix/issue-550
:bump-stale-ci-images
:document-pool-no-redundancy-meaning
:fix-ci-pool-blocks-osd-maintenance
:rotate-cephx-daemon-keys
:fix-ceph-health-alert
:repoint-ci-workspaces
:ci-throwaway-cephfs
:rollout-archive-timeout
:archive-timeout-gf-pg
:reduce-pg-wal-fpi
:reduce-wal-segment-padding
:fix-prometheus-cardinality
:fix-barman-sidecar-visible
:feat-paperless-data-repoint
:feat-paperless-data-block
:fix-cnpg-write-tuning
:fix-emptydir-tmpfs
:fix-trmnl-renderer-tmpfs
:feat-ha-recorder-db-url
:alert-fix/issue-525
:fix-cnpg-backup-alerting
:feat-ha-recorder-postgres
:fix-ceph-mon-write-amplification
:fix-ceph-replica-size-2
:fix-ceph-deferred-write-amplification
:fix-326-noise-log-suppression
:fix-381-z2m-discovery
:decommission-rustfs-lxc
:document-hairpin-id-diff
:fix-rustfs-shim-replace
:fix-rotator-woodpecker-url
:alert-fix/issue-510
:bump-woodpecker-cli
:migrate-woodpecker-stage3
:migrate-woodpecker-stage2
:fix-eso-woodpecker-namespace
:migrate-woodpecker-namespace
:ceph-mon-data-avail-warn
:revert-image-gc-thresholds
:fix-ceph-toolbox-and-gc-thresholds
:fix-cilium-policy-map-exhaustion
:drop-stale-hetzner-dns
:fix-outpost-callback-path
:bump-ci-k8s-pins
:fix-wordpress-config-extra
:wordpress-renner-uno
:fix-authentik-double-passkey-touch
:pin-ical-proxy-image
:fix-trmnl-renderer-reloader
:fix-trmnl-render-lang
:fix-trmnl-session-expiry
:fix-trmnl-graphite-theme
:fix-trmnl-token-lifetime
:fix-trmnl-renderer-runtime
:feat-trmnl-renderer
:fix-trmnl-lb-address
:feat-trmnl-terminus
:retire-dead-monitoring
:heating-can-supervisorctl
:fix-native-teardown
:edge-capability-groups
:heating-can-image
:edge-bootstrap-selfcontained
:prometheus-pve-hostnames
:inventory-pve-hostnames
:chrony-allow-ipv6
:ntp-vrrp-linklocal-and-dad-sequencing
:ntp-service-address-health-gated
:ntp-anycast-capture-drift
:ntp-health-clock-correctness
:chrony-comment-correction
:worktree-chrony-makestep
:ci-k8s-validate
:rotator-repin
:mosquitto-rotate-health
:alert-fix/issue-454
:alert-fix/issue-452
:mosquitto-rotation-proposal
:mosquitto-openbao
:mosquitto-drop-apk
:paperless-drop-apk
:cni-plugins-image
:multus-drop-apk
:fix-jq-comment
:rename-alpine-jq
:fix-ci-yaml
:z2m-seed-drop-apk
:z2m-interview-watchdog
:alert-fix/issue-439
Labels
Clear labels
apollo
atlas
clio
daedalus
hestia
Hermes expert: Immich, Audiobookshelf, Libation, Navidrome, Music Assistant
Hermes expert: Talos, Flux, network, Authentik, Matrix, monitoring
Hermes expert: Paperless, wiki, ical-proxy, TRMNL, websites
Hermes expert: Gitea, Woodpecker, Renovate, review-bot, Hermes
Hermes expert: Home Assistant, IoT, MQTT, ESPHome, voice
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: konairius/homelab#706
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Der Inline-Manifest-Seed, der das CNI beim Bootstrap setzt, trug noch Cilium v1.19.2, während die Helm-Release seit dem 16.08. auf 1.20.x läuft.
Das war mein Versäumnis.
8f45e290hat die Chart-Bedingung auf>=1.20.0 <1.21.0gezogen und die Version nie in den Seed übernommen — am selben Tag, an dem621e4e25genau diese Datei wegenpolicyMapMaxangefasst hat.Warum das zählt
talosctl upgrade-k8sreconciled die Bootstrap-Manifeste. Der Trockenlauf gegen den laufenden Cluster zeigt, was ein Kubernetes-Upgrade vor dieser Änderung angerichtet hätte:Ein CNI-Downgrade über einen Minor, Socket-Load-Balancing aus, External-ClusterIP-Behandlung aus — auf einem laufenden Cluster.
Wie der Seed regeneriert wurde
Chart bei 1.20.1 gerendert, mit denselben Werten wie die HelmRelease, abzüglich
prometheus.serviceMonitor— dessen CRD existiert beim Bootstrap nicht, weshalb der Seed nie einen enthielt.Den ursprünglichen Wertesatz habe ich rekonstruiert statt geraten: erst 1.19.2 nachgebaut und gegen den committeten Seed gedifft, bis die Objektarten exakt übereinstimmten. Dabei kam heraus, dass er mit
hubble.tls.auto.method=cronJobgerendert war (certgen statt eingebackener Secrets, siehe #188) — sonst hätte ich zweiSecrets eingeführt, die dort nie hingehörten.Stärkste Bestätigung: der gerenderte Operator-Digest ist bitgleich mit dem, den der Cluster live fährt:
Die drei Datapath-Flags oben stimmen jetzt schlüsselweise mit
cilium-configüberein. Der Reconcile ist damit materiell folgenlos.Was nicht betroffen ist — obwohl es nach Drift aussieht
Die laufende ConfigMap hat drei Field-Manager (
helm-controller,talos,kubectl-patch) und trägtenable-bgp-control-plane, die Native-Routing-CIDRs und den Identity-Label-Filter.Ich hatte das zunächst als Gefahr gemeldet — falsch. Der Trockenlauf führt alle diese Schlüssel als unveränderte Kontextzeilen: Server-Side Apply lässt Felder in Fremdbesitz in Ruhe. BGP (zwei etablierte Sessions zur UDM, je 5 Routen) ist nicht in Gefahr.
Was das offenlegt
Für diese Kopplung gibt es keine Absicherung. Nichts schlägt fehl, wenn Seed und HelmRelease auseinanderlaufen, und sichtbar wird es nur in einem
upgrade-k8s --dry-run, den niemand routinemäßig fährt. Ein CI-Check, der beide Versionen vergleicht, hätte das im August gefunden — den würde ich als Nächstes bauen, wenn du willst.Reihenfolge
Dieser PR ist die Voraussetzung für das Kubernetes-Upgrade 1.35.2 → 1.36.3. Gemerged ändert er nur Git; der laufende Machine-Config trägt weiterhin 1.19.2, bis er per
talosctl patch mcangewandt wird. Das ist ein eigener, gestaffelter Schritt, den ich nicht ungefragt mache.🤖 Automated review — model
CLI default(complexity: complex), commit956734c774c977b970162c8d8a225dc250bdbe43.Summary
This PR regenerates the Talos-bootstrap Cilium manifests (
kubernetes/talos/cilium.yamlandkubernetes/talos/patches/cilium-cni.yaml) from the v1.20.1 chart to catch them up with the live HelmRelease, fixing a real image/flag drift (v1.19.2→v1.20.1,bpf-lb-external-clusterip,bpf-lb-sock,enable-ipv6,k8s-require-ipv6-pod-cidr). The reconstruction methodology (diff against the live cluster's rendered config, confirm operator image digest matches what's running) is sound and the description is unusually careful about what does not change. However, the regeneration silently drops three ConfigMap keys —enable-bgp-control-plane,ipv4-native-routing-cidr,ipv6-native-routing-cidr— frompatches/cilium-cni.yamlwith no replacement anywhere, which is exactly the class of bug this PR is trying to fix, just for the cold-bootstrap path instead of the upgrade path.🔴 Blocking
kubernetes/talos/patches/cilium-cni.yaml(removed block, was aroundenable-bgp-control-plane: "true"/ipv4-native-routing-cidr: "10.0.0.0/8"/ipv6-native-routing-cidr: "fd00::/8"): these three keys are deleted from the Cilium ConfigMap data with nothing added in their place. I confirmed viagit show <base>:kubernetes/talos/cilium.yamlthatcilium.yamlnever carried these keys —patches/cilium-cni.yamlwas their only home in git — and viagrepthat neitherkubernetes/infrastructure/cilium/helmrelease.yamlnor anywhere else in the repo setsbgpControlPlane/ipv4NativeRoutingCIDR/ipv6NativeRoutingCIDRas Helm values. The PR's own dry-run reasoning ("SSA leaves foreign-owned fields alone") only shows these keys are safe to drop for the live, already-running cluster — because on that cluster they're apparently owned by thekubectl-patchfield manager, nottalos. That reasoning does not coverpatches/cilium-cni.yaml's other job: it's whatkubernetes/bootstrap.shpasses as a--config-patchwhen forming a new node (kubernetes/bootstrap.sh:126), andkubernetes/RUNBOOK-cold-rebuild.md:140andRUNBOOK-baremetal-conversion.md:211both describe it as the disaster-recovery path's CNI seed. On a cold bootstrap there is no pre-existingkubectl-patchfield manager to fall back on — Cilium would come up withenable-bgp-control-planeat its upstream default (false) and no native-routing CIDRs, meaning the two established BGP sessions to the UDM (mentioned in the PR body) and native LAN routing (no-SNAT to LAN destinations) would silently not exist after a rebuild, until someone remembers to manually re-apply the out-of-band patch that isn't tracked in git anywhere. This is the same "bites silently" failure mode the removedvlan-bpf-bypasscomment explicitly warned about ("omitting it here breaks the IoT macvlan workloads until Flux reconciles") — except BGP/native-routing has no Flux-managed fallback at all, sincehelmrelease.yamldoesn't set these values either. Given the PR's stated goal is exactly to prevent silent bootstrap-vs-live drift, this should either restore the three keys (with the same values:"true"/"10.0.0.0/8"/"fd00::/8") or the PR should explicitly call out that BGP/native-routing is being intentionally descoped from the bootstrap seed and will need a manual step post-rebuild.🟡 Suggestions
kubernetes/talos/patches/cilium-cni.yamlandkubernetes/talos/cilium.yaml,labels/bpf-policy-map-max/vlan-bpf-bypass/cni-exclusivekeys: the regeneration replaced this repo's hand-written "keep in lockstep with X/Y" comments (with issue references #188, #592, and concrete failure-mode descriptions) with generic one-line comments lifted from the upstream chart, or no comment at all (cni-exclusive). The values themselves are correct, butkubernetes/infrastructure/cilium/helmrelease.yaml:53-54,79-82still says things like "THREE COPIES of this key exist... Nothing enforces agreement; grep bpf-policy-map-max before changing it" — that promise is now only kept in one of the three files. Consider re-adding at least a short pointer comment in the two Talos files so a future editor grepping for "lockstep" still finds all three copies.🟢 Nits
kubernetes/talos/cilium.yaml:293-294/patches/cilium-cni.yaml(Gateway API comment): the new comment referencesbpf-lb-sock-hostns-only, but that key isn't present anywhere in the rendered ConfigMap. Likely just an artifact of the vendored chart template comment being included even though the value itself is templated out — harmless, but worth a second look if it's confusing on a re-read.Tests
No automated test/CI step compares the bootstrap seed against the live HelmRelease (the PR body says as much and offers to build one). Given this PR exists specifically because that comparison isn't automated, and it just reintroduced a variant of the same class of drift it's fixing, that CI check would have meaningful value — I'd take the author up on the offer rather than treat it as a "nice to have."
Recommendation
Request changes — 1 blocking issue.
🤖 Automated review — model
CLI default(complexity: complex), commit04b94f531398f49181c7dda659bd87029ced7dae.Summary
Regenerates the two Cilium bootstrap manifests (
kubernetes/talos/cilium.yaml,kubernetes/talos/patches/cilium-cni.yaml) from the actual Cilium Helm chart atv1.20.1, replacing a stale v1.19.2 seed that had drifted from the live
HelmRelease (
>=1.20.0 <1.21.0). I checked the parts that are checkable fromthe repo alone and they hold up: the three "keep in lockstep" datapath keys
(
bpf-policy-map-max,vlan-bpf-bypass,labels) still matchkubernetes/infrastructure/cilium/helmrelease.yamlin all three locationsafter the regeneration;
enable-ipv6,bpf-lb-external-clusterip,bpf-lb-sockandk8s-require-ipv6-pod-cidrin both seed files now agree withhelmrelease.yaml'sipv6.enabled,bpf.lbExternalClusterIPandsocketLB.enabled; the operator image tag+digest is identical between the twoseed copies; and no
v1.19.2reference is left anywhere in the repo. NoCiliumNetworkPolicyin this repo usestoGroups, so the RBACendpointspermission dropped from both
ClusterRoles (a real upstream v1.20 chartchange) is safe here.
I have no cluster access and can't re-render the chart myself, so the dry-run
diff and digest match claimed in the PR description are not independently
verifiable from this checkout — I'm relying on the author's stated method for
the bulk of the ~2400-line templated content. No blocking issues found.
🟡 Suggestions
enable-bgp-control-plane,ipv4-native-routing-cidrandipv6-native-routing-cidrare removed fromkubernetes/talos/patches/cilium-cni.yaml(they were never present inkubernetes/talos/cilium.yamleither). The PR body's reasoning for why thisis safe on the running cluster (the fields are owned by a different SSA
field manager,
kubectl-patch, so atalos-manager apply that omits themwon't clear them) is plausible but unverifiable from here. Separately from
that reconcile-safety question:
kubernetes/RUNBOOK-cold-rebuild.mddoesn'tmention re-establishing BGP/native-routing after a cold rebuild, and a cold
rebuild uses
cilium.yaml, which has never carried these keys. Worthbundling into the CI-check follow-up the PR body already proposes, so the
gap doesn't stay implicit.
cni-exclusive: "false". Both seed filespreviously carried a comment explaining the 2026-05-02 OTBR/multus incident
that this setting works around; it's deleted here and, unlike the other
"lockstep" keys (
bpf-policy-map-max,vlan-bpf-bypass,labels), theexplanation isn't preserved in
kubernetes/infrastructure/cilium/helmrelease.yamleither (that file's
cni.exclusivecomment is shorter and doesn't mentionthe incident). A future editor of these files, or of
helmrelease.yaml,loses the "why" and only has git history to recover it from. A short pointer
comment would be enough.
🟢 Nits
hubble-generate-certsJobname changes(
hubble-generate-certs-a3297ae8da→hubble-generate-certs-e29264c577,kubernetes/talos/cilium.yaml:940). On a livetalosctl patch mc, the oldJob object won't be pruned (Talos's inline-manifest apply doesn't delete
objects that disappear from the manifest), so it's left behind as a
harmless, already-completed orphan. Pre-existing chart pattern, not
introduced by this PR.
Tests
No automated check covers
kubernetes/talos/*.yaml—.woodpecker/ci-manifests-test.yml'skustomize-buildjob only walks directories with akustomization.yaml, andTalos inline manifests/patches aren't part of any kustomization. The PR body
already identifies this ("no safeguard for this coupling") and proposes a
follow-up CI check comparing the seed's chart version against the HelmRelease
version constraint; I'd treat that as a good fast-follow rather than a
blocker for this fix.
Recommendation
Looks reasonable — no blocking issues; comments above are optional.
fix(talos): regenerate the Cilium bootstrap seed at 1.20.1to WIP — DO NOT MERGE: cilium seed/ownership, blocked on a decision🤖 Automated review — model
CLI default(complexity: complex), commit2e535faa56bc8641fa106c3426b5814a4acba41a.Summary
This PR re-renders the Cilium bootstrap seed (
kubernetes/talos/patches/cilium-cni.yaml) at chart 1.20.1 to match the live HelmRelease, deletes a redundant, fully-duplicate copy of the manifest (kubernetes/talos/cilium.yaml), and moves three previously hand-patched Cilium settings (bgpControlPlane,ipv4/ipv6NativeRoutingCIDR) into the trackedhelmrelease.yamlso they flow into the seed too. I traced the resulting datapath flags, images, and RBAC through the diff against the chart-version bump and the checked-out files, and everything is internally consistent with the PR's stated intent — no blocking issues found. Two small things below are worth a look before merge.🟡 Suggestions
kubernetes/talos/patches/cilium-cni.yaml:192-195— this 4-line comment ("When Gateway API is enabled this is forced totrue... Paired withbpf-lb-sock-hostns-only, which is forcedtruefor the same reason") is a pure hand-typed addition: in the diff it appears as an unpaired+block (the line it replaced was blank), unlike every other added comment in this file, which is a# Source: ...marker thathelm templateemits automatically. Two things about it don't check out:bpf-lb-sock-hostns-onlydoes not appear anywhere else in this ~2000-line rendered manifest, so the claim that it "is forced true" here is unverifiable from the file itself.helm templateoutput as the rest of the block.The file's own header says to reproduce it exactly from
helm templateand paste verbatim, precisely because a manual touch is how this file drifted silently before (per the PR description). Worth double-checking whetherbpf-lb-sock-hostns-onlyis actually supposed to be set here, and if not, dropping this comment (or fixing the indent/claim) to keep the seed strictly reproducible.🟢 Nits
kubernetes/infrastructure/cilium/helmrelease.yaml:100— thevlanBypasscomment still reads "Same three-copy problem as policyMapMax above," but this PR removed the "three-copy" framing from thepolicyMapMaxcomment directly above it (and eliminated the third copy,kubernetes/talos/cilium.yaml, outright). The cross-reference is now stale and points at a problem statement that no longer exists in the file.Tests
No automated test covers this file:
kubernetes/taloshas nokustomization.yaml, so.woodpecker/ci-manifests-test.yml'skustomize-buildstep (which walkskubernetes/**/kustomization.yaml) never touchestalos/patches/cilium-cni.yaml, and none of the other three steps (woodpecker-lint, shellcheck, no-digest-pins) apply either. The PR description acknowledges this gap explicitly and offers a follow-up CI check comparing the seed against the HelmRelease version — that seems like the right fix and isn't a reason to block this PR, which is itself the manual reconciliation that check would have automated.I could not verify the referenced prior commits (
8f45e290,621e4e25) or the claimed live-cluster digest match, since the checkout is a shallow, single-commit clone with no network access — but the internal evidence (operator/agent image digests, datapath flags, and RBAC additions) is fully consistent with a straighthelm template cilium/cilium --version 1.20.1render using the values now declared inhelmrelease.yaml, withprometheus.serviceMonitorandhubble.tls.auto.methodoverridden exactly as documented (noServiceMonitorobject or private key material appears anywhere in the seed).Recommendation
Looks reasonable — no blocking issues; comments above are optional.
Geschlossen — hinfällig durch #707.
Der Seed wird in Schritt 6 des Übergangs gelöscht, also war seine Regeneration Arbeit für eine Datei, die verschwindet. Auch dazwischen hätte sie nichts gerettet: der einzige Lauf, der Bootstrap-Manifeste anfasst, ist
upgrade-k8s— und genau der ist Schritt 4 des Übergangs. Ein nackterupgrade-k8svorher findet nicht statt.Was aus diesem PR überlebt, gehört in den Übergang, nicht hierher:
talos/cilium.yamlgelöscht (kein Konsument)bgpControlPlane+ Native-Routing-CIDRs getracktDer dritte Punkt hängt allerdings am Ausgang von #707: bei Flux-Besitz gehören diese Werte in die HelmRelease, bei Talos-Besitz in den Seed. Das Ziel ist also erst nach der Entscheidung bestimmbar — deshalb mache ich dafür jetzt keinen neuen PR auf.
Der Branch
fix-cilium-bootstrap-seedbleibt stehen, damit die Rekonstruktion des Wertesatzes nicht verloren geht — sie war nicht trivial und wird für Schritt 1 zumindest teilweise wieder gebraucht.Pull request closed