Hybrid cloud cluster monorepo with Ansible, K8s, NixOS, and Terraform. cute.haus
ansible terraform nix k8s
0

Configure Feed

Select the types of activity you want to include in your feed.

scripts: remove dead helmfile references

Aly Raffauf (Jul 1, 2026, 5:24 PM EDT) dc93d42b 27a83d7a

+5 -39
+1 -1
.gitignore
··· 6 6 .zed/ 7 7 result 8 8 9 - # Materialized helm subchart deps (regenerated by helmfile) 9 + # Materialized helm subchart deps (regenerated by helm dependency update) 10 10 k8s/charts/*/charts/ 11 11 12 12 # Bun deps for scripts/ (regenerated by `bun install`)
+1 -1
.justfile
··· 170 170 171 171 ############################################################################ 172 172 # 173 - # Kubes (k3s + helmfile) 173 + # Kubes (k3s + flux) 174 174 # 175 175 ############################################################################ 176 176
-2
nix/files/zed.nix
··· 21 21 "**/templates/**/*.tpl" 22 22 "**/templates/**/*.yaml" 23 23 "**/templates/**/*.yml" 24 - "**/helmfile.d/**/*.yaml" 25 - "**/helmfile.d/**/*.yml" 26 24 "**/values*.yaml" 27 25 ]; 28 26 };
-14
scripts/check-pinned-images.ts
··· 3 3 // private registry with active dev where pinning would break the 4 4 // push-and-redeploy loop. 5 5 6 - const HELMFILE = "k8s/helmfile.yaml"; 7 6 const GLOB = "k8s/charts/*/**/*.yaml"; 8 7 const FLUX_DIRS = [ 9 8 "k8s/flux/infra-crds", ··· 14 13 ]; 15 14 const ALLOW_FLOATING = new Set<string>(); 16 15 17 - type Release = { chart: string }; 18 - type Helmfile = { releases: Release[] }; 19 16 type HelmRelease = { 20 17 kind?: string; 21 18 spec?: { chart?: { spec?: { chart?: string } } }; ··· 27 24 28 25 async function deployedChartNames(): Promise<Set<string>> { 29 26 const names = new Set<string>(); 30 - 31 - if (await Bun.file(HELMFILE).exists()) { 32 - const helmfile = Bun.YAML.parse( 33 - await Bun.file(HELMFILE).text(), 34 - ) as Helmfile; 35 - for (const release of helmfile.releases) { 36 - if (release.chart.startsWith("./charts/")) { 37 - names.add(release.chart.replace(/^\.\/charts\//, "")); 38 - } 39 - } 40 - } 41 27 42 28 for (const dir of FLUX_DIRS) { 43 29 const glob = new Bun.Glob(`${dir}/**/*.yaml`);
+3 -21
scripts/check-release-names.ts
··· 1 1 // Every deployed local Helm chart must reference an actual 2 - // k8s/charts/<name>/Chart.yaml. During the Flux migration, deployed charts can 3 - // be declared in helmfile.yaml or Flux HelmRelease manifests. 2 + // k8s/charts/<name>/Chart.yaml. 4 3 5 - const HELMFILE = "k8s/helmfile.yaml"; 6 4 const FLUX_DIRS = [ 7 5 "k8s/flux/infra-crds", 8 6 "k8s/flux/infra-core", ··· 12 10 ]; 13 11 14 12 type Release = { name: string; chart: string }; 15 - type Helmfile = { releases: Release[] }; 16 13 type HelmRelease = { 17 14 kind?: string; 18 15 metadata?: { name?: string }; ··· 51 48 return releases; 52 49 } 53 50 54 - async function helmfileLocalReleases(): Promise<Release[]> { 55 - if (!(await Bun.file(HELMFILE).exists())) return []; 56 - 57 - const helmfile = Bun.YAML.parse(await Bun.file(HELMFILE).text()) as Helmfile; 58 - return helmfile.releases.filter((release) => 59 - release.chart.startsWith("./charts/"), 60 - ); 61 - } 62 - 63 51 function chartYamlPath(chart: string): string { 64 - return ( 65 - chart.replace(/^\.\/charts\//, "k8s/charts/").replace(/^\.\//, "") + 66 - "/Chart.yaml" 67 - ); 52 + return chart.replace(/^\.\//, "") + "/Chart.yaml"; 68 53 } 69 54 70 55 export async function checkReleaseNames(): Promise<string[]> { 71 56 const errors: string[] = []; 72 57 73 - const releases = [ 74 - ...(await helmfileLocalReleases()), 75 - ...(await fluxLocalReleases()), 76 - ]; 58 + const releases = await fluxLocalReleases(); 77 59 78 60 for (const release of releases) { 79 61 const chartYaml = chartYamlPath(release.chart);