From 453d952b8f99bdc43ddd14f280c643cd22c23f94 Mon Sep 17 00:00:00 2001 From: Dreaded_X Date: Sun, 9 Nov 2025 02:58:01 +0100 Subject: [PATCH] Moved logic for getting clusters to render script --- templates/generate_configs.sh | 16 +++++++--------- tools/render | 12 +++++++++++- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/templates/generate_configs.sh b/templates/generate_configs.sh index cd84b42..8518eaf 100644 --- a/templates/generate_configs.sh +++ b/templates/generate_configs.sh @@ -4,8 +4,7 @@ ROOT=$(git rev-parse --show-toplevel) CONFIGS=${ROOT}/configs # Generate the configuration for each node -{% set clusters = [] %} -{%- for node in nodes -%} +{% for node in nodes -%} talosctl gen config {{ node.clusterName }} https://{{ node.controlplaneIp }}:6443 -f \ --with-secrets ${ROOT}/secrets.yaml \ --talos-version {{ node.talosVersion }} \ @@ -22,21 +21,20 @@ talosctl gen config {{ node.clusterName }} https://{{ node.controlplaneIp }}:644 --with-docs=false \ --with-examples=false \ -o ${CONFIGS}/{{ node.filename }}.yaml - - {%- do clusters.append((node.clusterName, node.controlplaneIp)) %} {% endfor %} # Generate the talosconfig file for each cluster -{% for cluster in clusters|unique -%} -talosctl gen config {{ cluster[0] }} https://{{ cluster[1] }}:6443 -f \ +{# NOTE: This assumes that each node in a cluster specifies the same controlplane IP -#} +{% for cluster in clusters -%} +talosctl gen config {{ cluster.name }} https://{{ cluster.controlplaneIp }}:6443 -f \ --with-secrets ${ROOT}/secrets.yaml \ --output-types talosconfig \ - -o ${CONFIGS}/{{ cluster[0] }}/talosconfig + -o ${CONFIGS}/{{ cluster.name }}/talosconfig {% endfor %} # Create merged talosconfig export TALOSCONFIG=${CONFIGS}/talosconfig rm -f ${TALOSCONFIG} -{% for cluster in clusters|unique -%} -talosctl config merge ${CONFIGS}/{{ cluster[0] }}/talosconfig +{% for cluster in clusters -%} +talosctl config merge ${CONFIGS}/{{ cluster.name }}/talosconfig {% endfor %} diff --git a/tools/render b/tools/render index 95ca0d3..b761ceb 100755 --- a/tools/render +++ b/tools/render @@ -134,6 +134,16 @@ def main(): ) ) + # Get all clusterName & controlplaneIp pairs + clusters = map( + lambda node: { + "name": node["clusterName"], + "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: config = yaml.safe_load(fyaml) @@ -141,7 +151,7 @@ def main(): for template_name in TEMPLATES.list_templates(): template = TEMPLATES.get_template(template_name) - rendered = template.render(nodes=nodes, config=config) + rendered = template.render(nodes=nodes, clusters=clusters, config=config) with open(RENDERED.joinpath(template_name), "w") as f: f.write(rendered)