Improved how the cluster is defined

This commit is contained in:
2025-11-09 03:22:29 +01:00
parent 244c982b17
commit 498b0ba480
6 changed files with 15 additions and 18 deletions

View File

@@ -1,5 +1,6 @@
netmask: 255.255.252.0 netmask: 255.255.252.0
gateway: 10.0.0.1 gateway: 10.0.0.1
clusterName: hellas
controlPlaneIp: 10.0.2.1
installDisk: /dev/sda installDisk: /dev/sda
cluster:
name: hellas
controlPlaneIp: 10.0.2.1

View File

@@ -1,5 +1,6 @@
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.1.1 gateway: 192.168.1.1
clusterName: testing
controlPlaneIp: 192.168.1.100
installDisk: /dev/vda installDisk: /dev/vda
cluster:
name: testing
controlPlaneIp: 192.168.1.100

View File

@@ -3,4 +3,4 @@ machine:
interfaces: interfaces:
- interface: {{interface}} - interface: {{interface}}
vip: vip:
ip: {{controlPlaneIp}} ip: {{cluster.controlPlaneIp}}

View File

@@ -5,7 +5,7 @@ CONFIGS=${ROOT}/configs
# Generate the configuration for each node # Generate the configuration for each node
{% for node in nodes -%} {% for node in nodes -%}
talosctl gen config {{ node.clusterName }} https://{{ node.controlPlaneIp }}:6443 -f \ talosctl gen config {{ node.cluster.name }} https://{{ node.cluster.controlPlaneIp }}:6443 -f \
--with-secrets ${ROOT}/secrets.yaml \ --with-secrets ${ROOT}/secrets.yaml \
--talos-version {{ node.talosVersion }} \ --talos-version {{ node.talosVersion }} \
--kubernetes-version {{ node.kubernesVersion }} \ --kubernetes-version {{ node.kubernesVersion }} \
@@ -24,7 +24,6 @@ talosctl gen config {{ node.clusterName }} https://{{ node.controlPlaneIp }}:644
{% endfor %} {% endfor %}
# Generate the talosconfig file for each cluster # Generate the talosconfig file for each cluster
{# NOTE: This assumes that each node in a cluster specifies the same control plane IP -#}
{% for cluster in clusters -%} {% for cluster in clusters -%}
talosctl gen config {{ cluster.name }} https://{{ cluster.controlPlaneIp }}:6443 -f \ talosctl gen config {{ cluster.name }} https://{{ cluster.controlPlaneIp }}:6443 -f \
--with-secrets ${ROOT}/secrets.yaml \ --with-secrets ${ROOT}/secrets.yaml \

View File

@@ -1,6 +1,6 @@
export TALOSCONFIG={{ root }}/configs/talosconfig export TALOSCONFIG={{ root }}/configs/talosconfig
{% set paths = [] %} {% set paths = [] %}
{%- for cluster_name in nodes|map(attribute="clusterName")|unique -%} {%- for cluster in clusters -%}
{%- do paths.append(root ~ "/configs/" ~ cluster_name ~ "/kubeconfig") -%} {%- do paths.append(root ~ "/configs/" ~ cluster.name ~ "/kubeconfig") -%}
{% endfor -%} {% endfor -%}
export KUBECONFIG={{ paths|join(":") }} export KUBECONFIG={{ paths|join(":") }}

View File

@@ -135,15 +135,11 @@ def main():
) )
) )
# Get all clusterName & controlPlaneIp pairs # Get all clusters
clusters = map( # NOTE: This assumes that all nodes in the cluster use the same definition for the cluster
lambda node: { clusters = [
"name": node["clusterName"], dict(s) for s in set(frozenset(node["cluster"].items()) for node in nodes)
"controlPlaneIp": node["controlPlaneIp"], ]
},
nodes,
)
clusters = [dict(s) for s in set(frozenset(d.items()) for d in clusters)]
with open(ROOT.joinpath("config.yaml")) as fyaml: with open(ROOT.joinpath("config.yaml")) as fyaml:
config = yaml.safe_load(fyaml) config = yaml.safe_load(fyaml)