diff --git a/cmd/hypercloud-installer/data/default-config.yaml b/cmd/hypercloud-installer/data/default-config.yaml index d1cb746..4fad6a0 100644 --- a/cmd/hypercloud-installer/data/default-config.yaml +++ b/cmd/hypercloud-installer/data/default-config.yaml @@ -15,4 +15,8 @@ externalDNS: sources: - crd - ingress - extraArgs: [] \ No newline at end of file + extraArgs: [] + +atc: + version: "0.9.0" + port: 3000 \ No newline at end of file diff --git a/cmd/hypercloud-installer/main.go b/cmd/hypercloud-installer/main.go index d8e0711..a15c7f5 100644 --- a/cmd/hypercloud-installer/main.go +++ b/cmd/hypercloud-installer/main.go @@ -10,6 +10,7 @@ import ( "log" "os" + atcinstaller "github.com/yokecd/yoke/cmd/atc-installer/installer" "github.com/yokecd/yoke/pkg/flight" externaldns "go.techaro.lol/hypercloud/helm/external-dns" "k8s.io/apimachinery/pkg/util/yaml" @@ -23,9 +24,10 @@ import ( ) type Config struct { - ACME *ACME `json:"acme"` - ExternalDNS map[string]any `json:"externalDNS"` - ExternalIP IP `json:"externalIP"` + ACME *ACME `json:"acme"` + ATC atcinstaller.Config `json:"atc"` + ExternalDNS map[string]any `json:"externalDNS"` + ExternalIP IP `json:"externalIP"` } type IP struct { @@ -219,16 +221,6 @@ func run() error { result = append(result, extDNSCRD) - result = append(result, []any{corev1.Namespace{ - TypeMeta: metav1.TypeMeta{ - APIVersion: "v1", - Kind: "Namespace", - }, - ObjectMeta: metav1.ObjectMeta{ - Name: "external-dns", - }, - }}) - extraArgs, ok := cfg.ExternalDNS["extraArgs"].([]any) if !ok { return fmt.Errorf("externalDNS.extraArgs must be a list of something") @@ -247,7 +239,7 @@ func run() error { cfg.ExternalDNS["extraArgs"] = extraArgs - externalDNS, err := externaldns.RenderChart(flight.Release(), "external-dns", cfg.ExternalDNS) + externalDNS, err := externaldns.RenderChart(flight.Release(), flight.Namespace(), cfg.ExternalDNS) if err != nil { return fmt.Errorf("failed to render external-dns chart: %w", err) } @@ -264,6 +256,15 @@ func run() error { result = append(result, filteredExternalDNS) + stages, err := atcinstaller.Run(cfg.ATC) + if err != nil { + return fmt.Errorf("failed to run atc installer: %w", err) + } + + for _, stage := range stages { + result = append(result, stage) + } + return json.NewEncoder(os.Stdout).Encode(result) } diff --git a/go.mod b/go.mod index abe320e..6ebde97 100644 --- a/go.mod +++ b/go.mod @@ -44,6 +44,7 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/spf13/cast v1.7.1 // indirect + github.com/tetratelabs/wazero v1.6.0 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect diff --git a/go.sum b/go.sum index 10287a9..eb228b5 100644 --- a/go.sum +++ b/go.sum @@ -102,6 +102,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tetratelabs/wazero v1.6.0 h1:z0H1iikCdP8t+q341xqepY4EWvHEw8Es7tlqiVzlP3g= +github.com/tetratelabs/wazero v1.6.0/go.mod h1:0U0G41+ochRKoPKCJlh0jMg1CHkyfK8kDqiirMmKY8A= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=