this repo has no description

cmd/hypercloud-installer: add air traffic control

Signed-off-by: Xe Iaso <me@xeiaso.net>

+23 -15
+5 -1
cmd/hypercloud-installer/data/default-config.yaml
··· 15 15 sources: 16 16 - crd 17 17 - ingress 18 - extraArgs: [] 18 + extraArgs: [] 19 + 20 + atc: 21 + version: "0.9.0" 22 + port: 3000
+15 -14
cmd/hypercloud-installer/main.go
··· 10 10 "log" 11 11 "os" 12 12 13 + atcinstaller "github.com/yokecd/yoke/cmd/atc-installer/installer" 13 14 "github.com/yokecd/yoke/pkg/flight" 14 15 externaldns "go.techaro.lol/hypercloud/helm/external-dns" 15 16 "k8s.io/apimachinery/pkg/util/yaml" ··· 23 24 ) 24 25 25 26 type Config struct { 26 - ACME *ACME `json:"acme"` 27 - ExternalDNS map[string]any `json:"externalDNS"` 28 - ExternalIP IP `json:"externalIP"` 27 + ACME *ACME `json:"acme"` 28 + ATC atcinstaller.Config `json:"atc"` 29 + ExternalDNS map[string]any `json:"externalDNS"` 30 + ExternalIP IP `json:"externalIP"` 29 31 } 30 32 31 33 type IP struct { ··· 219 221 220 222 result = append(result, extDNSCRD) 221 223 222 - result = append(result, []any{corev1.Namespace{ 223 - TypeMeta: metav1.TypeMeta{ 224 - APIVersion: "v1", 225 - Kind: "Namespace", 226 - }, 227 - ObjectMeta: metav1.ObjectMeta{ 228 - Name: "external-dns", 229 - }, 230 - }}) 231 - 232 224 extraArgs, ok := cfg.ExternalDNS["extraArgs"].([]any) 233 225 if !ok { 234 226 return fmt.Errorf("externalDNS.extraArgs must be a list of something") ··· 247 239 248 240 cfg.ExternalDNS["extraArgs"] = extraArgs 249 241 250 - externalDNS, err := externaldns.RenderChart(flight.Release(), "external-dns", cfg.ExternalDNS) 242 + externalDNS, err := externaldns.RenderChart(flight.Release(), flight.Namespace(), cfg.ExternalDNS) 251 243 if err != nil { 252 244 return fmt.Errorf("failed to render external-dns chart: %w", err) 253 245 } ··· 263 255 } 264 256 265 257 result = append(result, filteredExternalDNS) 258 + 259 + stages, err := atcinstaller.Run(cfg.ATC) 260 + if err != nil { 261 + return fmt.Errorf("failed to run atc installer: %w", err) 262 + } 263 + 264 + for _, stage := range stages { 265 + result = append(result, stage) 266 + } 266 267 267 268 return json.NewEncoder(os.Stdout).Encode(result) 268 269 }
+1
go.mod
··· 44 44 github.com/pkg/errors v0.9.1 // indirect 45 45 github.com/shopspring/decimal v1.4.0 // indirect 46 46 github.com/spf13/cast v1.7.1 // indirect 47 + github.com/tetratelabs/wazero v1.6.0 // indirect 47 48 github.com/x448/float16 v0.8.4 // indirect 48 49 github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect 49 50 github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
+2
go.sum
··· 102 102 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= 103 103 github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= 104 104 github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 105 + github.com/tetratelabs/wazero v1.6.0 h1:z0H1iikCdP8t+q341xqepY4EWvHEw8Es7tlqiVzlP3g= 106 + github.com/tetratelabs/wazero v1.6.0/go.mod h1:0U0G41+ochRKoPKCJlh0jMg1CHkyfK8kDqiirMmKY8A= 105 107 github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= 106 108 github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= 107 109 github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=