-
-
Notifications
You must be signed in to change notification settings - Fork 47
feat: Talos 1.11/1.12+ multi-document configuration migration #293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mlinares1998
wants to merge
16
commits into
hcloud-k8s:main
Choose a base branch
from
mlinares1998:feature/talos-1-12-migrations
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat: Talos 1.11/1.12+ multi-document configuration migration #293
mlinares1998
wants to merge
16
commits into
hcloud-k8s:main
from
mlinares1998:feature/talos-1-12-migrations
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Refactor Talos configuration to support multi-document YAML architecture, migrating LUKS2 disk encryption from v1alpha1 machineconfig to separate VolumeConfig documents as per Talos 1.11+ specification. Configuration changes: - Add talos_manifest_volumeconfig.tf: VolumeConfig documents for STATE and EPHEMERAL partition encryption with per-node keys - Add talos_manifest_machineconfig.tf: Extracted v1alpha1 machine configuration patches - Update talos_config.tf: Combine v1alpha1 configs with VolumeConfig documents using multi-document YAML (--- separator) This establishes the foundation for incremental migration of additional configuration elements to dedicated document types (DHCPv4Config,ResolverConfig, StaticHostConfig, etc.) in future commits.
Upgrades Talos to v1.12.1 and migrates hostname configuration from deprecated machine.network.hostname to the new HostnameConfig document. Changes: - Talos v1.11.6 → v1.12.1 - Talos provider 0.9.0 → 0.10.0 - Hcloud provider 1.57.0 → 1.58.0 - Add HostnameConfig with auto: "stable" (DHCP priority, stable fallback) - Remove deprecated hostname from machine.network blocks
Migrates DNS nameserver configuration from deprecated machine.network.nameservers to the new ResolverConfig document introduced in Talos 1.12.
Migrates extra host entries configuration from deprecated machine.network.extraHostEntries to the new StaticHostConfig documents introduced in Talos 1.12.
858e781 to
c6b41d8
Compare
Migrates network interface configuration from deprecated machine.network.interfaces to new LinkConfig, DHCPv4Config, and HCloudVIPConfig documents. Changes: - Add talos_manifest_network.tf with separate network documents - LinkConfig: Interface up/down state and routing - DHCPv4Config: DHCP client configuration per interface - HCloudVIPConfig: Hetzner Cloud VIP management (control plane only) - Add extra validations to talos_extra_routes variable
Migrates NTP server configuration from deprecated machine.time.servers to the new TimeSyncConfig document.
c6b41d8 to
42dac03
Compare
Changes: - Add talos_manifest_oomconfig.tf to generate OOMConfig documents - Add talos_custom_oom_* variables with validation - Update talos_config.tf to include OOMConfig in machine configurations - Update README.md
Implement UserVolumeConfig document support for directory type volumes on the EPHEMERAL partition.
- Generate RegistryMirrorConfig, RegistryAuthConfig, and RegistryTLSConfig documents - Remove deprecated machine.registries field from v1alpha1 config - Add validations for registries
Contributor
Author
|
Hi @M4t7e, PR's ready for your review! 😄 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Hi @M4t7e! 👋
This PR lays the groundwork required to fully upgrade to Talos v1.12+, introducing a modular architecture for the new multi-document YAML configuration.
The goal is to address pending v1.11/v1.12 migrations from the legacy
v1alpha1machine configuration to the new document-based approach.References:
Architecture Changes
Replaced the monolithic
talos_config.tfapproach with dedicated files for each document type:Each file generates standalone configuration documents that are combined in
talos_config.tfvia theconfig_patchesmechanism.Current Progress
VolumeConfigHostnameConfigResolverConfigStaticHostConfigTimeSyncConfigLinkConfig,DHCPv4Config,HCloudVIPConfigRegistryMirrorConfig,RegistryTLSConfig,RegistryAuthConfigUserVolumeConfigwithvolumeType: directoryOOMConfigdocument supportTrustedRootsConfigfor custom CA certificatesNew Features
Directory Volumes (
UserVolumeConfig)Talos 1.12 introduces a new
UserVolumeConfigdocument withdirectorysupport. This allows creating bind mounts directly on the ephemeral partition without provisioning new partitions.Configuration variables:
control_plane_directory_volumes- List of volume names for control plane nodesworker_directory_volumes- List of volume names for worker nodescluster_autoscaler_directory_volumes- List of volume names for autoscaler nodesUserspace OOM Handler (
OOMConfig)Talos 1.12 introduces a new
OOMConfigdocument to configure the new userspace OOM handler behavior. The OOM handler is always enabled by default with sensible built-in settings.Configuration variables:
talos_custom_oom_enabled- Enable custom OOM configuration (default:false)talos_custom_oom_trigger_expression- Custom trigger CEL expressiontalos_custom_oom_cgroup_ranking_expression- Custom ranking CEL expressiontalos_custom_oom_sample_interval- Custom evaluation interval (e.g., "100ms", "500ms")Custom CA Certificates (
TrustedRootsConfig)New support for adding custom CA certificates to the system trust store beyond Talos defaults.
Configuration variables:
talos_trusted_roots_certificates- List of PEM-encoded CA certificatesI hope this approach suits well for the incoming v4 release.
Regards! 🚀