@@ -96,14 +96,57 @@ locals {
9696 }
9797 }
9898
99+ # Shared Talos Configuration
100+ talos_config_install = {
101+ image = local.talos_installer_image_url
102+ extraKernelArgs = var.talos_extra_kernel_args
103+ }
104+
105+ talos_config_sysctls = merge (
106+ {
107+ " net.core.somaxconn" = " 65535"
108+ " net.core.netdev_max_backlog" = " 4096"
109+ " net.ipv6.conf.default.disable_ipv6" = " ${ var . talos_ipv6_enabled ? 0 : 1 } "
110+ " net.ipv6.conf.all.disable_ipv6" = " ${ var . talos_ipv6_enabled ? 0 : 1 } "
111+ },
112+ var. talos_sysctls_extra_args
113+ )
114+
115+ talos_config_kubelet_args = merge (
116+ {
117+ " cloud-provider" = " external"
118+ " rotate-server-certificates" = true
119+ },
120+ var. kubernetes_kubelet_extra_args
121+ )
122+
123+ talos_config_kubelet_extra_config_base = {
124+ shutdownGracePeriod = " 90s"
125+ shutdownGracePeriodCriticalPods = " 15s"
126+ }
127+
128+ talos_config_kubelet_nodeip = {
129+ validSubnets = [local.network_node_ipv4_cidr]
130+ }
131+
132+ talos_config_cluster_base = {
133+ network = {
134+ dnsDomain = var.cluster_domain
135+ podSubnets = [local.network_pod_ipv4_cidr]
136+ serviceSubnets = [local.network_service_ipv4_cidr]
137+ cni = { name = " none" }
138+ }
139+ proxy = {
140+ disabled = var.cilium_kube_proxy_replacement_enabled
141+ }
142+ discovery = local.talos_discovery
143+ }
144+
99145 # Control Plane Config
100146 control_plane_talos_config_patch = {
101147 for node in hcloud_server . control_plane : node . name => {
102148 machine = {
103- install = {
104- image = local.talos_installer_image_url
105- extraKernelArgs = var.talos_extra_kernel_args
106- }
149+ install = local.talos_config_install
107150 nodeLabels = merge (
108151 local. talos_allow_scheduling_on_control_planes ? { " node.kubernetes.io/exclude-from-external-load-balancers" = { " $patch" = " delete" } } : {},
109152 local. control_plane_nodepools_map [node . labels . nodepool ]. labels ,
@@ -115,18 +158,11 @@ locals {
115158 }
116159 certSANs = local.talos_certificate_san
117160 kubelet = {
118- extraArgs = merge (
119- {
120- " cloud-provider" = " external"
121- " rotate-server-certificates" = true
122- },
123- var. kubernetes_kubelet_extra_args
124- )
161+ extraArgs = local.talos_config_kubelet_args
125162 extraConfig = merge (
163+ local. talos_config_kubelet_extra_config_base ,
126164 {
127- shutdownGracePeriod = " 90s"
128- shutdownGracePeriodCriticalPods = " 15s"
129- registerWithTaints = local.control_plane_nodepools_map[node.labels.nodepool].taints
165+ registerWithTaints = local.control_plane_nodepools_map[node.labels.nodepool].taints
130166 systemReserved = {
131167 cpu = " 250m"
132168 memory = " 300Mi"
@@ -141,22 +177,12 @@ locals {
141177 var. kubernetes_kubelet_extra_config
142178 )
143179 extraMounts = local.talos_kubelet_extra_mounts
144- nodeIP = {
145- validSubnets = [local.network_node_ipv4_cidr]
146- }
180+ nodeIP = local.talos_config_kubelet_nodeip
147181 }
148182 kernel = {
149183 modules = var.talos_kernel_modules
150184 }
151- sysctls = merge (
152- {
153- " net.core.somaxconn" = " 65535" ,
154- " net.core.netdev_max_backlog" = " 4096" ,
155- " net.ipv6.conf.default.disable_ipv6" = " ${ var . talos_ipv6_enabled ? 0 : 1 } " ,
156- " net.ipv6.conf.all.disable_ipv6" = " ${ var . talos_ipv6_enabled ? 0 : 1 } "
157- },
158- var. talos_sysctls_extra_args
159- )
185+ sysctls = local.talos_config_sysctls
160186 registries = var.talos_registries
161187 features = {
162188 kubernetesTalosAPIAccess = {
@@ -173,86 +199,69 @@ locals {
173199 destinations = var.talos_logging_destinations
174200 }
175201 }
176- cluster = {
177- allowSchedulingOnControlPlanes = local.talos_allow_scheduling_on_control_planes
178- network = {
179- dnsDomain = var.cluster_domain
180- podSubnets = [local.network_pod_ipv4_cidr]
181- serviceSubnets = [local.network_service_ipv4_cidr]
182- cni = { name = " none" }
183- }
184- coreDNS = {
185- disabled = ! var.talos_coredns_enabled
186- }
187- proxy = {
188- disabled = var.cilium_kube_proxy_replacement_enabled
189- }
190- apiServer = {
191- admissionControl = var.kube_api_admission_control
192- certSANs = local.talos_certificate_san,
193- extraArgs = merge (
194- { " enable-aggregator-routing" = true },
195- local. talos_kube_oidc_configuration ,
196- var. kube_api_extra_args
197- )
198- }
199- controllerManager = {
200- extraArgs = {
201- " cloud-provider" = " external"
202- " bind-address" = " 0.0.0.0"
202+ cluster = merge (
203+ local. talos_config_cluster_base ,
204+ {
205+ allowSchedulingOnControlPlanes = local.talos_allow_scheduling_on_control_planes
206+ coreDNS = {
207+ disabled = ! var.talos_coredns_enabled
203208 }
204- }
205- discovery = local.talos_discovery
206- etcd = {
207- advertisedSubnets = [hcloud_network_subnet.control_plane.ip_range]
208- extraArgs = {
209- " listen-metrics-urls" = " http://0.0.0.0:2381"
209+ apiServer = {
210+ admissionControl = var.kube_api_admission_control
211+ certSANs = local.talos_certificate_san,
212+ extraArgs = merge (
213+ { " enable-aggregator-routing" = true },
214+ local. talos_kube_oidc_configuration ,
215+ var. kube_api_extra_args
216+ )
210217 }
211- }
212- scheduler = {
213- extraArgs = {
214- " bind-address" = " 0.0.0.0"
218+ controllerManager = {
219+ extraArgs = {
220+ " cloud-provider" = " external"
221+ " bind-address" = " 0.0.0.0"
222+ }
223+ }
224+ etcd = {
225+ advertisedSubnets = [hcloud_network_subnet.control_plane.ip_range]
226+ extraArgs = {
227+ " listen-metrics-urls" = " http://0.0.0.0:2381"
228+ }
229+ }
230+ scheduler = {
231+ extraArgs = {
232+ " bind-address" = " 0.0.0.0"
233+ }
234+ }
235+ adminKubeconfig = {
236+ certLifetime = " 87600h"
237+ }
238+ inlineManifests = local.talos_inline_manifests
239+ externalCloudProvider = {
240+ enabled = true ,
241+ manifests = local.talos_remote_manifests
215242 }
216243 }
217- adminKubeconfig = {
218- certLifetime = " 87600h"
219- }
220- inlineManifests = local.talos_inline_manifests
221- externalCloudProvider = {
222- enabled = true ,
223- manifests = local.talos_remote_manifests
224- }
225- }
244+ )
226245 }
227246 }
228247
229248 # Worker Config
230249 worker_talos_config_patch = {
231250 for node in hcloud_server . worker : node . name => {
232251 machine = {
233- install = {
234- image = local.talos_installer_image_url
235- extraKernelArgs = var.talos_extra_kernel_args
236- }
252+ install = local.talos_config_install
237253 nodeLabels = merge (
238254 local. worker_nodepools_map [node . labels . nodepool ]. labels ,
239255 { " nodeid" = tostring (node. id ) }
240256 )
241257 nodeAnnotations = local.worker_nodepools_map[node.labels.nodepool].annotations
242258 certSANs = local.talos_certificate_san
243259 kubelet = {
244- extraArgs = merge (
245- {
246- " cloud-provider" = " external" ,
247- " rotate-server-certificates" = true
248- },
249- var. kubernetes_kubelet_extra_args
250- )
260+ extraArgs = local.talos_config_kubelet_args
251261 extraConfig = merge (
262+ local. talos_config_kubelet_extra_config_base ,
252263 {
253- shutdownGracePeriod = " 90s"
254- shutdownGracePeriodCriticalPods = " 15s"
255- registerWithTaints = local.worker_nodepools_map[node.labels.nodepool].taints
264+ registerWithTaints = local.worker_nodepools_map[node.labels.nodepool].taints
256265 systemReserved = {
257266 cpu = " 100m"
258267 memory = " 300Mi"
@@ -267,22 +276,12 @@ locals {
267276 var. kubernetes_kubelet_extra_config
268277 )
269278 extraMounts = local.talos_kubelet_extra_mounts
270- nodeIP = {
271- validSubnets = [local.network_node_ipv4_cidr]
272- }
279+ nodeIP = local.talos_config_kubelet_nodeip
273280 }
274281 kernel = {
275282 modules = var.talos_kernel_modules
276283 }
277- sysctls = merge (
278- {
279- " net.core.somaxconn" = " 65535"
280- " net.core.netdev_max_backlog" = " 4096"
281- " net.ipv6.conf.default.disable_ipv6" = " ${ var . talos_ipv6_enabled ? 0 : 1 } "
282- " net.ipv6.conf.all.disable_ipv6" = " ${ var . talos_ipv6_enabled ? 0 : 1 } "
283- },
284- var. talos_sysctls_extra_args
285- )
284+ sysctls = local.talos_config_sysctls
286285 registries = var.talos_registries
287286 features = {
288287 hostDNS = local.talos_host_dns
@@ -291,45 +290,24 @@ locals {
291290 destinations = var.talos_logging_destinations
292291 }
293292 }
294- cluster = {
295- network = {
296- dnsDomain = var.cluster_domain
297- podSubnets = [local.network_pod_ipv4_cidr]
298- serviceSubnets = [local.network_service_ipv4_cidr]
299- cni = { name = " none" }
300- }
301- proxy = {
302- disabled = var.cilium_kube_proxy_replacement_enabled
303- }
304- discovery = local.talos_discovery
305- }
293+ cluster = local.talos_config_cluster_base
306294 }
307295 }
308296
309297 # Autoscaler Config
310298 autoscaler_talos_config_patch = {
311299 for nodepool in local . cluster_autoscaler_nodepools : nodepool . name => {
312300 machine = {
313- install = {
314- image = local.talos_installer_image_url
315- extraKernelArgs = var.talos_extra_kernel_args
316- }
301+ install = local.talos_config_install
317302 nodeLabels = nodepool.labels
318303 nodeAnnotations = nodepool.annotations
319304 certSANs = local.talos_certificate_san
320305 kubelet = {
321- extraArgs = merge (
322- {
323- " cloud-provider" = " external"
324- " rotate-server-certificates" = true
325- },
326- var. kubernetes_kubelet_extra_args
327- )
306+ extraArgs = local.talos_config_kubelet_args
328307 extraConfig = merge (
308+ local. talos_config_kubelet_extra_config_base ,
329309 {
330- shutdownGracePeriod = " 90s"
331- shutdownGracePeriodCriticalPods = " 15s"
332- registerWithTaints = nodepool.taints
310+ registerWithTaints = nodepool.taints
333311 systemReserved = {
334312 cpu = " 100m"
335313 memory = " 300Mi"
@@ -344,22 +322,12 @@ locals {
344322 var. kubernetes_kubelet_extra_config
345323 )
346324 extraMounts = local.talos_kubelet_extra_mounts
347- nodeIP = {
348- validSubnets = [local.network_node_ipv4_cidr]
349- }
325+ nodeIP = local.talos_config_kubelet_nodeip
350326 }
351327 kernel = {
352328 modules = var.talos_kernel_modules
353329 }
354- sysctls = merge (
355- {
356- " net.core.somaxconn" = " 65535"
357- " net.core.netdev_max_backlog" = " 4096"
358- " net.ipv6.conf.default.disable_ipv6" = " ${ var . talos_ipv6_enabled ? 0 : 1 } "
359- " net.ipv6.conf.all.disable_ipv6" = " ${ var . talos_ipv6_enabled ? 0 : 1 } "
360- },
361- var. talos_sysctls_extra_args
362- )
330+ sysctls = local.talos_config_sysctls
363331 registries = var.talos_registries
364332 features = {
365333 hostDNS = local.talos_host_dns
@@ -368,18 +336,7 @@ locals {
368336 destinations = var.talos_logging_destinations
369337 }
370338 }
371- cluster = {
372- network = {
373- dnsDomain = var.cluster_domain
374- podSubnets = [local.network_pod_ipv4_cidr]
375- serviceSubnets = [local.network_service_ipv4_cidr]
376- cni = { name = " none" }
377- }
378- proxy = {
379- disabled = var.cilium_kube_proxy_replacement_enabled
380- }
381- discovery = local.talos_discovery
382- }
339+ cluster = local.talos_config_cluster_base
383340 }
384341 }
385- }
342+ }
0 commit comments