Antonio Gurgel
4c842b1883
Give Intel GPU exporter clearer name
2023-11-24 10:57:28 -08:00
Antonio Gurgel
15591a24f9
Add last kube-system services
2023-11-23 18:27:54 -08:00
Antonio Gurgel
f2a8cc929d
Unbungle statefulsets' persistence
2023-11-23 17:57:53 -08:00
Antonio Gurgel
8607d8d1b1
Add Docker registries
2023-11-23 17:57:51 -08:00
Antonio Gurgel
a2f95cb53c
Add cert-manager; use intermediate cert instead of CA
2023-11-23 17:04:15 -08:00
Antonio Gurgel
a4d0c01066
Add more services
2023-11-23 12:15:18 -08:00
Antonio Gurgel
006be8401f
Add httpbin
2023-11-23 11:17:07 -08:00
Antonio Gurgel
b523baa63b
Add Istio 1.18.1
...
The lengths to which I'll go to avoid hardcoding anything that needn't
be hardcoded are immense indeed. That's why I started this project.
2023-11-21 22:34:44 -08:00
Antonio Gurgel
dc3060aa30
Pass charts into releases, and restore variadity
...
It doesn't pay to be strict about release module arity.
2023-11-21 20:46:32 -08:00
Antonio Gurgel
3e7a376329
Start messy refactor
...
Release trees are now split into API-producing and API-using ones.
Namespace rake must now take a list of roots of release trees.
2023-11-20 22:46:06 -08:00
Antonio Gurgel
708e537c7c
Remove verbs from lib.{build,fetch}ers.*
...
Reading things like `lib.builders.buildHelmChart` got exhausting.
2023-11-19 14:24:24 -08:00
Antonio Gurgel
46ec341d3e
Make app-template lib kebab-case
...
To reduce collisions with lib.eureka.appTemplate, and because
bjw-s' chart and the Nix module for it are both kebab-case.
2023-11-19 11:39:39 -08:00
Antonio Gurgel
408befb503
Decouple homelab idiosyncrasies
...
My long-term vision for this flake is to use it as a control flake:
plug it into your homelab ("data-plane") flake and avail yourself
of its `lib.builders`, et cetera.
In short, I want this flake to be useful to many people, and that
means not shipping my homelab with it.
2023-11-19 11:35:35 -08:00
Antonio Gurgel
9d9808e97a
Remove variadity from release modules
...
It's possible I'll regret this later, but for now there's no reason to
pass anything other than `lib` into the releases.
Okay, _now_ I'll go to bed.
2023-11-18 23:51:09 -08:00
Antonio Gurgel
7443323ebb
Last bout of refactoring before bed
...
- Moved external ServiceEntry generator to `lib.resources`.
- Gave it some company: a generator of HTTPRoutes for gateway/svc.
- Gave `lib.vars.svcGateway` a parentRef generator, at the cost of
another level of recursion, and some variable renaming.
2023-11-18 23:45:45 -08:00
Antonio Gurgel
cc159c6ff9
Forgot to git rm
an unused YAML
2023-11-18 22:39:25 -08:00
Antonio Gurgel
f62420754a
Lower all of lib's imports into named attrs
...
The namespace was getting a bit crowded.
2023-11-18 22:38:17 -08:00
Antonio Gurgel
18b3cbfe84
Remove kubelib as release input; rm buildYAMLStream synonym
...
Everything I need directly from nix-kube-generators is now
handled in `lib/`. Additionally, now that I know buildYAMLStream always
takes a namespace and name, there's no need for the longer-winded name.
2023-11-18 22:21:08 -08:00
Antonio Gurgel
367851267f
Split fetchers and builders; create NamespacedYAML builder
...
The reason I struggled with genericBuilders, and again when I replaced
`remoteYAML`'s NS-name `pname` with `url`, is that I was confusing the
following two things:
1. Things that fetch a resource (a Helm chart, a YAML stream, etc.)
without naming or namespacing it.
2. Things that create a release _by_ giving it a name and namespace
so that lib/output.sh can sort the resultant files into directories.
Additionally, I was questioning the good sense of releases/svc/gateway:
a release with no release, but only extra objects? Turns out I
needlessly bound the concept of JIT namespace injection to that
`extraObjects` feature. Once I abstracted that builder, the more general
solution became clear.
2023-11-18 22:01:43 -08:00
Antonio Gurgel
c8bb79b599
Create Istio SE for Breezewiki
2023-11-18 20:23:47 -08:00
Antonio Gurgel
e6ef6e90ef
Factor out Istio ServiceEntries
...
I have a handful in my cluster, and they're all lists of HTTPS domains.
2023-11-18 20:12:17 -08:00
Antonio Gurgel
ddbb86de38
Forgot config volume for Jellyfin
2023-11-18 20:02:22 -08:00
Antonio Gurgel
1e90084158
Run Jellyfin as nfs U/GID
2023-11-18 20:00:47 -08:00
Antonio Gurgel
6e38e657fa
Simplify Jellyfin's spec
...
I forgot I could go back to specifying it like this after learning of
recursive attrset updates.
2023-11-18 19:25:47 -08:00
Antonio Gurgel
4b86013c58
Simplify main image argument
...
I'm trying to _reduce_ boilerplate, not create it.
2023-11-18 19:22:25 -08:00
Antonio Gurgel
8d355af50d
Convert releases/svc/gateway to extraObjects
...
Now that I have the auto-namespace thing I can skip passing `namespace`
into this module too.
2023-11-18 19:22:25 -08:00
Antonio Gurgel
b51bcafdaf
Implement attaching extra k8s objects to releases
...
No more tossing YAMLs into release dirs. All is Nix.
2023-11-18 19:22:25 -08:00
Antonio Gurgel
11a3fcb002
Refactor modules
...
By declaring builders at the module level, only to call them in
flake.nix, I give myself the opportunity to inject `{name, namespace}`
there and need no longer pass these args into every module myself.
2023-11-18 19:22:25 -08:00
Antonio Gurgel
293fdfe41b
Use null to indicate null hostname in Gateway
2023-11-18 15:33:42 -08:00
Antonio Gurgel
0e7b254676
Rename lib.yamlFile; make stream builder
...
And the module still doesn't build at this comment. Things are getting
very complicated.
2023-11-18 15:32:08 -08:00
Antonio Gurgel
e0907193ba
rm lib.getValues
...
I'm no longer doing Helm values in YAML.
2023-11-18 14:25:39 -08:00
Antonio Gurgel
7609f8624a
Add gtw/svc; refactor vars.svcGateway
2023-11-18 14:25:37 -08:00
Antonio Gurgel
fadab2d696
Make simpleHTTPRoute function signature consistent
2023-11-18 13:36:48 -08:00
Antonio Gurgel
6375c3e9ab
Add Jellyfin
2023-11-18 13:36:48 -08:00
Antonio Gurgel
ac3af9a823
Use mainImage in sota-slack-spotter
...
Nothing else to factor out from there; believe me, I've checked...
2023-11-18 02:36:08 -08:00
Antonio Gurgel
b7560fb29e
Remove string-format fumbling from lib.mainImage
...
I can't imagine a time `repoDomain` would ever be unset.
(Yeah, docker.io, that means you too.)
2023-11-18 02:35:02 -08:00
Antonio Gurgel
e122d7addb
rm unused values files
2023-11-18 02:34:17 -08:00
Antonio Gurgel
e22c63f673
Factor out using existing PVCs
2023-11-18 02:29:24 -08:00
Antonio Gurgel
2ccc03bde6
Factor out app-template main container image
2023-11-18 02:19:19 -08:00
Antonio Gurgel
05604660ea
Factor out app-template HTTPRoutes
2023-11-18 02:09:30 -08:00
Antonio Gurgel
3f0961f456
Add Calibre
2023-11-18 01:40:40 -08:00
Antonio Gurgel
4f1e23c7c0
Cool it with the inherits
...
`http.port = port` and `http = {inherit port;}` both look bad, so
I shall use the less punctuation-laden one.
2023-11-18 01:30:01 -08:00
Antonio Gurgel
7bebbb7bf3
Refactor values into Nix
...
There's a lot of potential for abstracting this into `lib/`.
2023-11-17 23:50:29 -08:00
Antonio Gurgel
5a616953fd
Add Breezewiki
2023-11-17 23:33:54 -08:00
Antonio Gurgel
e97d3cca75
Clean up
2023-11-16 23:30:02 -08:00
Antonio Gurgel
c327804905
Add SOPS
2023-11-16 22:07:26 -08:00
Antonio Gurgel
cb4dda1812
Hopefully the last format-only commit
2023-11-16 21:31:26 -08:00
Antonio Gurgel
924cf69fb8
Create lib.gitChart
...
That was easy.
2023-11-16 21:20:58 -08:00
Antonio Gurgel
50d31e52ec
Next challenge: importing a chart from Git
2023-11-16 20:54:10 -08:00
Antonio Gurgel
88bd864322
Include ns/name in derivations
2023-11-16 18:40:20 -08:00