They were good enough for corralling my disorganized thoughts,
but they hardly rise to the quality befitting their name.
Comments and documentation will suffice.
Wrong check for module-has-extraObjects. `module ? extra` is always
true and leads to failure when evaulating `module.extra.outPath`.
I also missed an `inherit apiVersions` and had to retrofit the
accumulator to include debug output to find that out.
`apiVersions` gave me a headache while writing the foldl so I made it
a separate input.
Now the service modules have this signature, without my having to
change any code in the modules themselves:
{charts, etc, ...} -> [apiVersion] -> {out, extra}
Two imperfections have come to bite me simultaneously:
- I wanted strict ordering of services but implemented it very sloppily.
- The flake builders represent implementation leakage. I want to present
a clean interface to users, not "first, you must evaluate these
twenty-eight variables".
So now I'm fixing too many things at once. Luckily it's hard to lose
things in Git.
I stowed my particularities in lib.eureka, but exporting
`packages.*.flakeBuilders` with a pre-pressed `lib` left no way to put
the Eureka module back in. After further consideration, I decided
it's wise to keep `lib` that way instead of commingling it with
homelab data.
Getting away from manually pressing Helm charts (while, importantly, retaining
integrity checking and determinism) is something I liken to the
transition from sail to flight as the primary mode of intercontinental
travel. As it were, ditching the helm for a yoke.
This one is crashing with
Traceback (most recent call last):
File "/app/intel-gpu-exporter.py", line 47, in <module>
REGISTRY.register(DataCollector(f"http://{host}:{port}/metrics"))
File "/usr/local/lib/python3.11/site-packages/prometheus_client/registry.py", line 40, in register
names = self._get_names(collector)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/prometheus_client/registry.py", line 80, in _get_names
for metric in desc_fnc():
File "/app/intel-gpu-exporter.py", line 21, in collect
power_watts = data[1].get("power", {}).get("value", 0.0)
~~~~^^^