From a07d866116100df7819adb691b3109f88ef23c19 Mon Sep 17 00:00:00 2001 From: reachableceo Date: Thu, 3 Sep 2026 14:22:05 -0500 Subject: [PATCH] =?UTF-8?q?fix(cmdb):=20canonical=20CI=20names=20=E2=80=94?= =?UTF-8?q?=20s7=20rename=20map=20in=20seed=20generator=20[#705]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit from-inventory.sh now applies the #307 s7 VM-name -> Tailscale-name mapping (two-pass awk), so rr-middleware-01/preprod-proxmoxmailgw rows emit canonical names. Seed regenerated; GLPI renames + dup purges done in same session (78 CIs at parity). Detail: https://projects.knownelement.com/issues/705 --- cmdb/seed/from-inventory.sh | 29 ++++++++++++++++++++++------- cmdb/seed/systems.csv | 6 +++--- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/cmdb/seed/from-inventory.sh b/cmdb/seed/from-inventory.sh index d27ea64..28a21a7 100644 --- a/cmdb/seed/from-inventory.sh +++ b/cmdb/seed/from-inventory.sh @@ -21,7 +21,11 @@ echo 'category,ci_name,host_node,vmid,specs,ts_ip,extra_ip,tuned,access,extra,st awk -F'|' ' function trim(s) { gsub(/^[ \t]+|[ \t]+$/, "", s); return s } - function csv(s) { gsub(/"/, "", s); return "\"" trim(s) "\"" } + function strip(s) { gsub(/"/, "", s); return trim(s) } + function csv(s) { gsub(/"/, "", s); return "\"" trim(s)"\"" } + # canon(s) — apply the section-7 VM-name -> Tailscale/DNS-name map so + # ci_name always uses the canonical fleet name [#705] + function canon(s) { s = strip(s); return (s in map) ? map[s] : s } /^## / { sec = substr($0, 4) sub(/\(.*/, "", sec) @@ -29,6 +33,17 @@ awk -F'|' ' next } /^\|/ { + # pass 1 (same file read twice): capture only the section-7 rename map + if (FNR == NR) { + if (sec ~ /^7\./) { + for (i = 1; i <= NF; i++) f[i] = trim($i) + if (f[2] == "" || f[2] ~ /^-+$/ || f[2] == "VM Name") next + key = f[2]; sub(/[ (].*/, "", key) + map[key] = trim(f[3]) + } + next + } + if (sec ~ /^7\./) next if (sec !~ /^[1-6]\./) next for (i = 1; i <= NF; i++) f[i] = trim($i) if (f[2] == "" || f[2] ~ /^-+$/) next @@ -36,29 +51,29 @@ awk -F'|' ' status = (index($0, "RETIRED") > 0) ? "retired" : "active" if (sec ~ /^1\./) printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", - "hypervisor", csv(f[2]), "", "", + "hypervisor", csv(canon(f[2])), "", "", csv(f[3] "; CPU " f[4] "; RAM " f[5]), csv(f[6]), csv(f[8]), csv(f[9]), csv(f[10]), csv("mgmt " f[7]), status, csv("307 s1") else if (sec ~ /^2\./) printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", - "vm-prod", csv(f[3]), csv(f[4]), csv(f[2]), + "vm-prod", csv(canon(f[3])), csv(f[4]), csv(f[2]), csv("CPU " f[5] "; RAM " f[6] "; TS? " f[7]), csv(f[8]), "", csv(f[10]), csv(f[9]), "", status, csv("307 s2") else if (sec ~ /^3\./) printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", - "vm-sectestbed", csv(f[3]), "pfv-tsys5", csv(f[2]), "", csv(f[5]), + "vm-sectestbed", csv(canon(f[3])), "pfv-tsys5", csv(f[2]), "", csv(f[5]), "", csv(f[7]), csv(f[6]), "", status, csv("307 s3") else if (sec ~ /^4\./) printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", - "vm-preprod", csv(f[3]), "pfv-tsys5", csv(f[2]), "", csv(f[5]), + "vm-preprod", csv(canon(f[3])), "pfv-tsys5", csv(f[2]), "", csv(f[5]), "", csv(f[7]), csv(f[6]), "", status, csv("307 s4") else if (sec ~ /^5\./) printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", - "physical-sbc", csv(f[2]), "", "", "", csv(f[3]), "", + "physical-sbc", csv(canon(f[2])), "", "", "", csv(f[3]), "", "", csv(f[5]), csv("dns " f[4]), status, csv("307 s5") else if (sec ~ /^6\./) printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", "stale-dns-record", csv(f[2]), "", "", "", "", "", "", "", "", "retired", csv("307 s6: " f[4]) } -' "$1" +' "$1" "$1" diff --git a/cmdb/seed/systems.csv b/cmdb/seed/systems.csv index 4566f93..f54df7d 100644 --- a/cmdb/seed/systems.csv +++ b/cmdb/seed/systems.csv @@ -26,7 +26,7 @@ vm-prod,"pfv-k8s-cnode3","tsys6","603","CPU 4c; RAM 4GB; TS? Yes","100.106.222.1 vm-prod,"tsys-proxmox-mailgw-01","tsys6","604","CPU 2c; RAM 4GB; TS? No (DNS: 100.68.129.71)","-",,"-","NO",,active,"307 s2" vm-prod,"pfv-k8s-wnode-tsys7","tsys7","701","CPU 2c; RAM 98GB; TS? Yes","100.119.240.11",,"-","localuser",,active,"307 s2" vm-prod,"hfnoc-uisp","tsys7","702","CPU 2c; RAM 8GB; TS? Yes","100.94.188.89",,"-","NO",,active,"307 s2" -vm-prod,"rr-middleware-01","tsys7","703","CPU 2c; RAM 6GB; TS? Yes","100.106.54.59",,"-","NO",,active,"307 s2" +vm-prod,"pfv-rr-middleware-01","tsys7","703","CPU 2c; RAM 6GB; TS? Yes","100.106.54.59",,"-","NO",,active,"307 s2" vm-prod,"pfv-k8s-cnode2","tsys7","705","CPU 4c; RAM 4GB; TS? Yes","100.109.34.72",,"network-latency","localuser",,active,"307 s2" vm-prod,"kali-rd","tsys7","706","CPU 2c; RAM 6GB; TS? Yes","100.105.136.23",,"-","NO",,active,"307 s2" vm-prod,"tsys-siem","tsys7","707","CPU 2c; RAM 8GB; TS? No (DNS: 100.72.35.113)","-",,"-","NO",,active,"307 s2" @@ -56,7 +56,7 @@ vm-sectestbed,"sectestbed-voip",pfv-tsys5,"51016",,"100.86.176.105",,"-","NO",,a vm-preprod,"preprod-awx",pfv-tsys5,"53100",,"100.77.216.36",,"-","NO",,active,"307 s4" vm-preprod,"preprod-siem",pfv-tsys5,"53101",,"100.98.162.14",,"-","NO",,active,"307 s4" vm-preprod,"preprod-rancherplatform",pfv-tsys5,"53102",,"100.126.231.121",,"-","NO",,active,"307 s4" -vm-preprod,"preprod-proxmoxmailgw",pfv-tsys5,"53103",,"100.114.9.49",,"-","NO",,active,"307 s4" +vm-preprod,"preprod-proxmox-mailgw",pfv-tsys5,"53103",,"100.114.9.49",,"-","NO",,active,"307 s4" vm-preprod,"preprod-ca",pfv-tsys5,"53104",,"100.94.119.5",,"-","NO",,active,"307 s4" vm-preprod,"preprod-proxmox-datacenter",pfv-tsys5,"53105",,"100.101.250.10",,"-","NO",,active,"307 s4" vm-preprod,"preprod-librenms",pfv-tsys5,"53106",,"100.79.52.34",,"-","NO",,active,"307 s4" @@ -73,4 +73,4 @@ physical-sbc,"stlp-3dscanner",,,,"100.125.14.37",,,"OFFLINE 184d","dns stlp-3dsc physical-sbc,"tailscale-router",,,,"-",,,"**RETIRED 2026-09-02** — subnet-router role replaced by pfv-netinfra-01/02; host removed from tailnet; no DNS records remain","dns ~~tailscale-router.knel.net (100.103.48.57)~~",retired,"307 s5" physical-sbc,"netbird",,,,"100.123.45.23",,,"NetBird VPN","dns -",active,"307 s5" physical-sbc,"pfv-proxmox-backup-server",,,,"100.114.81.107",,,"PBS","dns pfv-proxmox-backup-server.knel.net",active,"307 s5" -physical-sbc,"siter-bizoffice",,,,"100.96.130.53",,,"WINDOWS (not Linux)","dns stlpc-bizoffice.knel.net",active,"307 s5" +physical-sbc,"stlpc-bizoffice",,,,"100.96.130.53",,,"WINDOWS (not Linux)","dns stlpc-bizoffice.knel.net",active,"307 s5"