Skip to content

clustertool-v5.0.0-alpha.6

Pre-release
Pre-release

Choose a tag to compare

@Boemeltrein Boemeltrein released this 21 Sep 19:53
· 107 commits to main since this release
3f7c2d6

ClusterTool v5 — Native Talos configuration and Flux Operator

ClusterTool v5 introduces native Talos machine configuration, a new configuration layout, Flux Operator bootstrap and Helm 4 integration. It also simplifies configuration management and improves secret handling, initialization safeguards and chart testing.

⚠️ Breaking changes — read before upgrading

The main reason for this major release is the replacement of Talhelper with native Talos 1.14 machine configuration. This changes how node configurations are defined and generated, including the configuration layout and storage paths.

Existing Talhelper-based configurations cannot be used unchanged. Automatic migration is not provided, and a fresh cluster bootstrap is strongly recommended. Initialize v5 in a new folder and review the new configuration before applying it to existing infrastructure.

Storage now uses directory-type Talos user volumes, with Longhorn and OpenEBS configured for /var/mnt/longhorn and /var/mnt/openebs. Changing these paths does not migrate existing data. Back up persistent data and retain your cluster secrets and age key before planning a migration.

Because the Talos transition already required a breaking release, we have deliberately included the move to Flux Operator in v5 as well. This brings both configuration changes into the same major release.

🖥️ Native Talos configuration

  • Replace Talhelper with native Talos configuration generation and validation.
  • Define versions, node roles, management addresses and the bootstrap node in talos/clustertool.yaml.
  • Organize patches into shared, role-specific and node-specific directories.
  • Support individual network settings, installation disks and schematic IDs per node.
  • Validate all generated node configurations before applying them.
  • Improve targeted node operations, bootstrap recovery and control-plane quorum checks.

Details: #478

🔄 Flux Operator bootstrap

  • Replace the previous Flux manifest bootstrap with Flux Operator and a FluxInstance.
  • Install the operator first, followed by the instance, with readiness checks.
  • Support OCIRepository chart references during bootstrap.
  • Apply the deploy key and SOPS age-key Secret during Flux bootstrap, keeping the age key out of generated Kustomizations.

Details: #480

🔐 Unified settings and improved secret handling

  • Use clusters/<cluster>/secrets/cluster-settings.sops.yaml for both ClusterTool variables and Flux substitutions, replacing clusterenv.yaml and the generated settings ConfigMap.
  • Standardize credential filenames on deploy-key.sops.yaml and sops-age.sops.yaml.
  • Validate settings values: numbers and booleans in stringData must be quoted.
  • Respect SOPS stores and mac_only_encrypted settings.

Details: #494, #492

🛠️ Clearer configuration commands

  • genconfig and talos apply no longer regenerate Flux placeholders or Kustomizations.
  • Use the new genks command, also available as kustomizations, to generate missing Kustomization files.
  • Use githook to reinstall the encryption pre-commit hook after switching environments.
  • Block initialization of legacy Talhelper configurations and request confirmation before repeating completed initialization.
  • Preserve retry state when initialization fails and report hook installation errors.

Details: #501

⎈ Helm 4 integration

  • Migrate the Helm SDK to v4.3.0.
  • Enable server-side apply for new installations.
  • Use the Helm 4 status watcher when waiting for resource readiness.
  • Expose internal Helm logs through ClusterTool’s configured log level, including LOGLEVEL=debug.

Bootstrap and subsequent Flux reconciliation were successfully tested on a Talos cluster, with all reported HelmReleases ready and workloads reaching their desired replica counts.

Details: #502

🧪 Testing and reliability

Improve HelmRelease deployment tests with OCI chart resolution and dependency handling, and exercise all included HelmReleases through chart-test triggers. Additional fixes cover Windows pre-commit hooks, SOPS path matching and concurrent chart downloads.

Details: #495, #496, #478

Changelog

  • 3f7c2d6 fix(clustertool): let Flux reconcile in the background after bootstrap (#510)
  • 573e243 fix(clustertool): wait for kube-prometheus-stack during bootstrap (#509)