diff --git a/iac/src/main/service_registries.cljs b/iac/src/main/service_registries.cljs index 3d26e45..60f8bee 100644 --- a/iac/src/main/service_registries.cljs +++ b/iac/src/main/service_registries.cljs @@ -6,7 +6,10 @@ [infra.dns :as dns] [infra.buildkit :as buildkit] [k8s.preparers.harbor :as harbor-prepare] + [k8s.add-ons.ingress-controller.caddy :as caddy] + [k8s.add-ons.gateway.traefik :as traefik] + [k8s.add-ons.cert-manager :as cert-manager] [k8s.add-ons.csi-driver.wasabi :as wasabi-csi] [k8s.add-ons.image-registry.harbor :as harbor] [k8s.add-ons.secret-replicator :as secret-replicator] @@ -20,13 +23,54 @@ [k8s.services.foundryvtt.service :as foundryvtt-service] [k8s.services.productive.service :as productive-service])) -(def base-service-registry [init/config hetzner-csi/config openbao/config ]) +(defn general-provider-output-refs [] + {:vault {:stack :init + :outputs ["vaultAddress" "vaultToken"]} + :harbor {:stack :shared + :outputs ["username" "password" "url"]} + :k8s {:stack :base + :outputs ["kubeconfig"]}}) -(def shared-service-registry [dns/config caddy/config - wasabi-csi/config proxy/config secret-replicator/config harbor/config]) +(defn create-resource-definition [resource-configs stack-references provider-external-inputs] + {:resource-configs resource-configs + :stack-references stack-references + :provider-external-inputs provider-external-inputs}) + +(def base-resources-definition + (create-resource-definition + [init/config] + nil + nil)) + +(def initialize-resources-definition + (create-resource-definition + [hetzner-csi/config openbao/config] + ["base"] + {:k8s {:stack :base + :outputs ["kubeconfig"]}} + )) + +(def shared-resources-definition + (create-resource-definition + [dns/config wasabi-csi/config proxy/config secret-replicator/config + traefik/config cert-manager/config + harbor/config + ] + ["base" "init"] + (general-provider-output-refs))) + +(def preparation-resources-definition + (create-resource-definition + [harbor-prepare/config] + ["base" "init" "shared"] + (general-provider-output-refs))) + + +(def deployment-resources-definition + (create-resource-definition + [#_buildkit/config #_nextcloud-service/config #_foundryvtt-service/config mesite-service/config #_productive-service/config #_gitea-service/config #_act-runner-service/config] + ["base" "init" "shared"] + (general-provider-output-refs))) -(def prepare-service-registry [harbor-prepare/config]) (def deployment-matrix-service-registry []) - -(def deployment-service-registry [#_buildkit/config #_nextcloud-service/config #_foundryvtt-service/config mesite-service/config #_productive-service/config #_gitea-service/config #_act-runner-service/config]) \ No newline at end of file