Skip to content

Commit e4c2582

Browse files
feat(flux): bootstrap-infra rendert Infra-Kustomizations aus values.yaml
Bisher wurden die Kustomizations fuer openebs, cert-manager, cilium-lb und Konsorten von Hand ins Cluster-Repo geschrieben — obwohl es die Templates dafuer laengst gibt. Genau das erledigen die beiden neuen Funktionen. render-infra rendert und gibt das Verzeichnis zurueck, ruehrt weder git noch einen Cluster an bootstrap-infra rendert, committet und prueft anschliessend nach Gesteuert ueber eine values.yaml mit einem Schalter pro Komponente. Fehlt "enabled", gilt die Komponente als aus — sie muss also bewusst eingeschaltet werden, nicht bloss nicht ausgeschaltet. Zwei Entscheidungen, die im Code stehen und hier begruendet gehoeren: Geprueft wird namentlich, nicht mit flux check. Ein check sagt nur, dass Flux selbst gesund ist, und das bleibt es auch, wenn eine Kustomization nie angelegt wurde. Jede erwartete Kustomization wird deshalb einzeln abgefragt, bis sie Ready meldet oder die Frist ablaeuft. Jede Abfrage traegt einen Zeitstempel, damit der exec nicht aus dem dagger-Cache bedient wird. Ohne den wuerde ein unveraendertes Kommando ueber einem unveraenderten Container eine alte Antwort wiederholen — und hier geht es ausdruecklich um Zustand, der sich darunter aendert. Siehe #182 fuer dieselbe Falle im Apply-Pfad. Die kcl-Abhaengigkeit zieht auf v0.126.1 (dagger#334): davor zerstoerte die Nachbearbeitung in Kcl.Run einzelne Manifeste — apiVersion weg, Verschachtelung flach. Abschalten liess sich das nicht, weil der generierte Client optionale Argumente mit Nullwert nicht uebertraegt und false genau dieser Nullwert ist. Gegengeprueft mit ghcr.io/stuttgart-things/claim-flux-kustomizations:0.3.33 (kcl#218/#220): drei Manifeste gerendert, alle mit apiVersion, korrekt verschachtelt, und openebs mit OPENEBS_VERSION statt des wirkungslosen VERSION. Rein additiv: keine bestehende Funktion angefasst, keine Signatur geaendert. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EA4Jmc5323ePZTDZ7XR19a
1 parent 9f306a1 commit e4c2582

5 files changed

Lines changed: 456 additions & 6 deletions

File tree

flux/dagger.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "flux",
3-
"engineVersion": "v0.20.8",
3+
"engineVersion": "v0.21.8",
44
"sdk": {
55
"source": "go"
66
},
@@ -17,8 +17,8 @@
1717
},
1818
{
1919
"name": "kcl",
20-
"source": "github.com/stuttgart-things/dagger/kcl@v0.112.0",
21-
"pin": "261615cf3eaa18a1acea7293132d7315d8cc886a"
20+
"source": "github.com/stuttgart-things/dagger/kcl@v0.126.1",
21+
"pin": "260863c265cb7443c7b84bfa99f9365d0afe02aa"
2222
},
2323
{
2424
"name": "kubernetes",

flux/examples/infra-values.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
# Beispiel fuer bootstrap-infra. Jede Komponente hat einen eigenen Schalter;
3+
# fehlt "enabled", gilt sie als aus -- eine Komponente muss also bewusst
4+
# eingeschaltet werden, nicht bloss nicht ausgeschaltet.
5+
source:
6+
enabled: true
7+
name: flux-infra
8+
url: https://github.com/stuttgart-things/flux.git
9+
tag: v1.24.1
10+
interval: 1m0s
11+
12+
components:
13+
openebs:
14+
enabled: true
15+
templateName: openebs
16+
params:
17+
path: ./infra/openebs
18+
sourceRefName: flux-infra
19+
openebsVersion: '4.5.1'
20+
21+
cert-manager-install:
22+
enabled: true
23+
templateName: cert-manager
24+
params:
25+
path: ./infra/cert-manager/components/install
26+
sourceRefName: flux-infra
27+
28+
cilium-lb:
29+
enabled: false
30+
templateName: infrastructure
31+
params:
32+
path: ./infra/cilium/components/lb
33+
sourceRefName: flux-infra
34+
substitute: CILIUM_LB_IP_START=10.100.136.210,CILIUM_LB_IP_STOP=10.100.136.210

flux/go.mod

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@ module dagger/flux
33
go 1.26.2
44

55
require (
6-
dagger.io/dagger v0.20.6-0.20260415192040-7058e9313c72
76
github.com/Khan/genqlient v0.8.1
87
github.com/dagger/otel-go v1.43.0
98
github.com/vektah/gqlparser/v2 v2.5.33
109
go.opentelemetry.io/otel v1.43.0
1110
go.opentelemetry.io/otel/trace v1.43.0
1211
)
1312

13+
require gopkg.in/yaml.v3 v3.0.1
14+
1415
require (
1516
github.com/99designs/gqlgen v0.17.90 // indirect
1617
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
1718
github.com/cespare/xxhash/v2 v2.3.0 // indirect
19+
github.com/dagger/querybuilder v0.0.0-20260402040506-574a5e81cb59
1820
github.com/go-logr/logr v1.4.3 // indirect
1921
github.com/go-logr/stdr v1.2.2 // indirect
2022
github.com/google/uuid v1.6.0 // indirect

flux/go.sum

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
dagger.io/dagger v0.20.6-0.20260415192040-7058e9313c72 h1:s39e07WvaUU6tLhpojK8ZEIoIbOSn5hHOJra0waenxQ=
2-
dagger.io/dagger v0.20.6-0.20260415192040-7058e9313c72/go.mod h1:ZXg8+pQZaZUC8rAw4V/gPP8aKvKARIJZ+pfcV+RC1es=
31
github.com/99designs/gqlgen v0.17.90 h1:wSv6blm/PoplU6QoNw83EcQpNtC0HX3/+44vITJOzpk=
42
github.com/99designs/gqlgen v0.17.90/go.mod h1:GqYrEwYsqCG8VaOsq2kJUCUKwAE1T+u2i+Nj7NtXiVI=
53
github.com/Khan/genqlient v0.8.1 h1:wtOCc8N9rNynRLXN3k3CnfzheCUNKBcvXmVv5zt6WCs=
@@ -14,6 +12,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF
1412
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
1513
github.com/dagger/otel-go v1.43.0 h1:AYCnAamWmxtSxigWPTgC+8EWqiWPcDZEegh8y05gdJ8=
1614
github.com/dagger/otel-go v1.43.0/go.mod h1:83CTuXi70zcx1kaym5buqmb7RNzg1E9dEiQSFyLbLdU=
15+
github.com/dagger/querybuilder v0.0.0-20260402040506-574a5e81cb59 h1:g6vfdGRyz6fAjfHz5FyYPZgHy8qcQ31fHrBl1iCOzxw=
16+
github.com/dagger/querybuilder v0.0.0-20260402040506-574a5e81cb59/go.mod h1:jsdUJeYzcbyK1j/EqMGPrQgNYxl/Zfg06vvM9C/xXxs=
1717
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
1818
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1919
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -29,8 +29,14 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
2929
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
3030
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs=
3131
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c=
32+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
33+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
34+
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
35+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
3236
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
3337
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
38+
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
39+
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
3440
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
3541
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
3642
github.com/sosodev/duration v1.4.0 h1:35ed0KiVFriGHHzZZJaZLgmTEEICIyt8Sx0RQfj9IjE=
@@ -93,5 +99,8 @@ google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
9399
google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
94100
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
95101
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
102+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
103+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
104+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
96105
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
97106
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)