diff --git a/README.md b/README.md index fbadf8a8..40499273 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,21 @@ +Table of Contents +================= + +* [IDP Builder](#idp-builder) + * [About](#about) + * [Quickstart](#quickstart) + * [Build](#build) + * [Run](#run) + * [Use](#use) + * [Developer notes](#developer-notes) + * [Architecture](#architecture) + * [Kind cluster](#kind-cluster) + * [Localbuild](#localbuild) + * [Gitserver](#gitserver) + * [Embedded Argo Apps](#embedded-argo-apps) + * [Diagram](#diagram) +* [Extending the IDP builder](#extending-the-idpbuilder) + # IDP Builder Internal development platform binary launcher. @@ -48,6 +66,25 @@ Argo: https://argocd.cnoe.localtest.me:8443/ Backstage: https://backstage.cnoe.localtest.me:8443/ + +## Developer notes + +If you want to contribute and extend the existing project, make sure that you have installed go (>= 1.20) and cloned this project. +Next, you can build it `make` or launch the `main.go` within your IDE or locally `./idpbuilder`. + +You can override the kind configuration generated by the idpbuilder. For that purpose, look to the +console to grab the config and save it in a file: +```text +########################### Our kind config ############################ +# Kind kubernetes release images https://github.com/kubernetes-sigs/kind/releases +kind: Cluster +apiVersion: kind.x-k8s.io/v1alpha4 +... +######################### config end ############################ +``` +Next, import it `./idpbuilder create --kindConfig ` + + ## Architecture The IDP builder binary is primarily composed of a wrapper around a [Kubebuilder](https://kubebuilder.io) based operator and associated type called localbuild. See: [api/v1alpha1/localbuild_types.go](https://github.com/cnoe-io/idpbuilder/blob/4b0f8ecdd7266083373da51d5add1bca73e05a33/api/v1alpha1/localbuild_types.go#L28-L66) and [pkg/controllers/localbuild/controller.go](https://github.com/cnoe-io/idpbuilder/blob/4b0f8ecdd7266083373da51d5add1bca73e05a33/pkg/controllers/localbuild/controller.go#L54-L84) @@ -90,7 +127,5 @@ As you can imagine each of these apps are are deployed by ArgoCD to the Kind clu [Excalidraw diagram here:](https://excalidraw.com/#json=MNOQf_OeLtKYe_Y80Bt2l,AP-ftLAwZoDWjp2yudnMKA) - - ## Extending the IDP builder In the future we hope to allow for a pluggable interface to allow for extending the IDP builder with additional argo apps. For now you simply need to add additional apps in the [Embedded Apps](https://github.com/cnoe-io/idpbuilder/blob/4b0f8ecdd7266083373da51d5add1bca73e05a33/pkg/apps/resources.go#L20-L32) and also add the resources they will deploy in the `srv` folder: [pkg/apps/srv](https://github.com/cnoe-io/idpbuilder/blob/4b0f8ecdd7266083373da51d5add1bca73e05a33/pkg/apps/srv/) diff --git a/pkg/kind/cluster.go b/pkg/kind/cluster.go index d37f91a2..e9260090 100644 --- a/pkg/kind/cluster.go +++ b/pkg/kind/cluster.go @@ -137,6 +137,10 @@ func (c *Cluster) Reconcile(ctx context.Context, recreate bool) error { return err } + fmt.Print("########################### Our kind config ############################\n") + fmt.Printf("%s", rawConfig) + fmt.Print("\n######################### config end ############################\n") + fmt.Printf("Creating kind cluster %s\n", c.name) if err = c.provider.Create( c.name,