Skip to content

feat(kommodity-cluster): render TALOS_AUTO_BOOTSTRAP_SCAN_CIDR override - #467

Open
Andreas Wachs (andreaswachs) wants to merge 2 commits into
mainfrom
fix/autobootstrap-scan-cidr-cherry
Open

Andreas Wachs (andreaswachs) wants to merge 2 commits into
mainfrom
fix/autobootstrap-scan-cidr-cherry

Conversation

@andreaswachs

@andreaswachs Andreas Wachs (andreaswachs) commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Cherry-picks the TALOS_AUTO_BOOTSTRAP_SCAN_CIDR rendering and quorumNodes default from fix/autobootstrap-scan-cidr-chart onto current main. Required to test the autobootstrap fix on Azure where /32 node addresses break peer discovery.

Changes

  • templates/talos/autobootstrap.yaml: conditional TALOS_AUTO_BOOTSTRAP_SCAN_CIDR env var + quorumNodes defaults to floor(replicas/2)+1 when null
  • values.yaml: adds scanCIDR field, quorumNodes defaults to null
  • Chart.yaml: version bump 0.28.3 -> 0.28.4

Why

Azure assigns /32 node addresses. The autobootstrap extension's GetNetworkInfo() derives the scan CIDR from the interface prefix, producing 0 IPs on /32. The TALOS_AUTO_BOOTSTRAP_SCAN_CIDR env var lets operators override the scan range. The quorumNodes default prevents split-brain when the chart knows the control plane count.

Testing

Chart published to ghcr.io/kommodity-io/charts/kommodity-cluster:0.28.4. Successfully validated by recreating dev-ams99 with quorumNodes=2 and scanCIDR=10.0.0.0/24:

  • All 3 control plane nodes joined a single etcd cluster (no split-brain)
  • TalosControlPlane: READY=true, INITIALIZED=true, 3/3 replicas
  • All control plane + worker nodes Running and Ready
  • Cilium CNI, ArgoCD, CoreDNS all installed and Running

Depends on kommodity-io/kommodity-autobootstrap-extension#33 for the extension fixes (split-brain prevention, mTLS probe auth, scanCIDR override support).

Copilot AI lite review requested due to automatic review settings August 20, 2026 15:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the kommodity-cluster Helm chart to support overriding the autobootstrap peer-discovery scan range via TALOS_AUTO_BOOTSTRAP_SCAN_CIDR, which is needed on platforms like Azure where /32 node addresses can break discovery. It also bumps the chart version to publish the change.

Changes:

  • Add an optional talos.autoBootstrap.scanCIDR value (documented in values.yaml) and conditionally render TALOS_AUTO_BOOTSTRAP_SCAN_CIDR when set.
  • Bump chart version from 0.28.3 to 0.28.4.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
charts/kommodity-cluster/values.yaml Documents the new optional talos.autoBootstrap.scanCIDR override value.
charts/kommodity-cluster/templates/talos/autobootstrap.yaml Conditionally renders TALOS_AUTO_BOOTSTRAP_SCAN_CIDR env var when scanCIDR is provided.
charts/kommodity-cluster/Chart.yaml Chart version bump to release the change.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +21 to +23
{{- if $autoBootstrap.scanCIDR }}
- TALOS_AUTO_BOOTSTRAP_SCAN_CIDR={{ $autoBootstrap.scanCIDR }}
{{- end }}
@github-actions

Copy link
Copy Markdown
Go test coverage: 24.2% for commit 9d6d791
⚠️ 43 of 56 packages have zero coverage.
  • github.com/kommodity-io/kommodity/cmd/kommodity
  • github.com/kommodity-io/kommodity/pkg/attestation
  • github.com/kommodity-io/kommodity/pkg/attestation/rest
  • github.com/kommodity-io/kommodity/pkg/attestation/rest/nonce
  • github.com/kommodity-io/kommodity/pkg/attestation/rest/report
  • github.com/kommodity-io/kommodity/pkg/attestation/rest/trust
  • github.com/kommodity-io/kommodity/pkg/combinedserver
  • github.com/kommodity-io/kommodity/pkg/config
  • github.com/kommodity-io/kommodity/pkg/controller/index
  • github.com/kommodity-io/kommodity/pkg/controller/webhook
  • github.com/kommodity-io/kommodity/pkg/kine
  • github.com/kommodity-io/kommodity/pkg/logging/example
  • github.com/kommodity-io/kommodity/pkg/metadata
  • github.com/kommodity-io/kommodity/pkg/metadata/rest/userdata
  • github.com/kommodity-io/kommodity/pkg/net
  • github.com/kommodity-io/kommodity/pkg/openapi
  • github.com/kommodity-io/kommodity/pkg/openapi/admissionregistration
  • github.com/kommodity-io/kommodity/pkg/openapi/apiextensions
  • github.com/kommodity-io/kommodity/pkg/openapi/apiregistration
  • github.com/kommodity-io/kommodity/pkg/openapi/audit
  • github.com/kommodity-io/kommodity/pkg/openapi/authorization
  • github.com/kommodity-io/kommodity/pkg/openapi/core
  • github.com/kommodity-io/kommodity/pkg/openapi/intstr
  • github.com/kommodity-io/kommodity/pkg/openapi/meta
  • github.com/kommodity-io/kommodity/pkg/openapi/rbac
  • github.com/kommodity-io/kommodity/pkg/openapi/runtime
  • github.com/kommodity-io/kommodity/pkg/openapi/storage
  • github.com/kommodity-io/kommodity/pkg/openapi/version
  • github.com/kommodity-io/kommodity/pkg/provider
  • github.com/kommodity-io/kommodity/pkg/storage
  • github.com/kommodity-io/kommodity/pkg/storage/configmaps
  • github.com/kommodity-io/kommodity/pkg/storage/endpoints
  • github.com/kommodity-io/kommodity/pkg/storage/events
  • github.com/kommodity-io/kommodity/pkg/storage/namespaces
  • github.com/kommodity-io/kommodity/pkg/storage/rbac
  • github.com/kommodity-io/kommodity/pkg/storage/secrets
  • github.com/kommodity-io/kommodity/pkg/storage/selfsubjectaccessreviews
  • github.com/kommodity-io/kommodity/pkg/storage/serviceaccount
  • github.com/kommodity-io/kommodity/pkg/storage/services
  • github.com/kommodity-io/kommodity/pkg/storage/storage
  • github.com/kommodity-io/kommodity/pkg/storage/webhookconfigurations
  • github.com/kommodity-io/kommodity/pkg/ui
  • github.com/kommodity-io/kommodity/pkg/ui/api
View coverage for all packages
# Package Name                                                           | Coverage
- github.com/kommodity-io/kommodity/cmd/kommodity                        |     0.0%
- github.com/kommodity-io/kommodity/pkg/attestation                      |     0.0%
- github.com/kommodity-io/kommodity/pkg/attestation/rest                 |     0.0%
- github.com/kommodity-io/kommodity/pkg/attestation/rest/nonce           |     0.0%
- github.com/kommodity-io/kommodity/pkg/attestation/rest/report          |     0.0%
- github.com/kommodity-io/kommodity/pkg/attestation/rest/trust           |     0.0%
- github.com/kommodity-io/kommodity/pkg/combinedserver                   |     0.0%
- github.com/kommodity-io/kommodity/pkg/config                           |     0.0%
+ github.com/kommodity-io/kommodity/pkg/controller                       |    10.2%
- github.com/kommodity-io/kommodity/pkg/controller/index                 |     0.0%
+ github.com/kommodity-io/kommodity/pkg/controller/reconciler            |    13.1%
+ github.com/kommodity-io/kommodity/pkg/controller/reconciler/azurearm   |    31.3%
- github.com/kommodity-io/kommodity/pkg/controller/webhook               |     0.0%
- github.com/kommodity-io/kommodity/pkg/kine                             |     0.0%
+ github.com/kommodity-io/kommodity/pkg/kms                              |    45.2%
+ github.com/kommodity-io/kommodity/pkg/libkapi                          |    80.7%
+ github.com/kommodity-io/kommodity/pkg/libkapi/apiserver                |    91.6%
+ github.com/kommodity-io/kommodity/pkg/libkapi/auth                     |    81.1%
+ github.com/kommodity-io/kommodity/pkg/libkapi/controllers              |    26.8%
+ github.com/kommodity-io/kommodity/pkg/libkapi/logging                  |    96.5%
+ github.com/kommodity-io/kommodity/pkg/libkapi/storage                  |    82.5%
+ github.com/kommodity-io/kommodity/pkg/logging                          |    82.8%
- github.com/kommodity-io/kommodity/pkg/logging/example                  |     0.0%
- github.com/kommodity-io/kommodity/pkg/metadata                         |     0.0%
- github.com/kommodity-io/kommodity/pkg/metadata/rest/userdata           |     0.0%
- github.com/kommodity-io/kommodity/pkg/net                              |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi                          |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/admissionregistration    |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/apiextensions            |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/apiregistration          |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/audit                    |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/authorization            |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/core                     |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/intstr                   |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/meta                     |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/rbac                     |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/runtime                  |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/storage                  |     0.0%
- github.com/kommodity-io/kommodity/pkg/openapi/version                  |     0.0%
- github.com/kommodity-io/kommodity/pkg/provider                         |     0.0%
+ github.com/kommodity-io/kommodity/pkg/server                           |     4.5%
- github.com/kommodity-io/kommodity/pkg/storage                          |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/configmaps               |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/endpoints                |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/events                   |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/namespaces               |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/rbac                     |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/secrets                  |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/selfsubjectaccessreviews |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/serviceaccount           |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/services                 |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/storage                  |     0.0%
- github.com/kommodity-io/kommodity/pkg/storage/webhookconfigurations    |     0.0%
+ github.com/kommodity-io/kommodity/pkg/talosproxy                       |    75.5%
- github.com/kommodity-io/kommodity/pkg/ui                               |     0.0%
- github.com/kommodity-io/kommodity/pkg/ui/api                           |     0.0%

Add conditional scanCIDR env var to the autobootstrap ExtensionServiceConfig
so operators can override the auto-detected scan CIDR on multi-interface
hosts (e.g. Azure Accelerated Networking). Backward-compatible: no env
var rendered when scanCIDR is unset.

Signed-off-by: Andreas Wachs <awa@corti.ai>
Signed-off-by: Andreas Wachs <awa@corti.ai>
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.

2 participants