diff --git a/iac/src/main/core.cljs b/iac/src/main/core.cljs index 5449768..5e0fc3d 100644 --- a/iac/src/main/core.cljs +++ b/iac/src/main/core.cljs @@ -1,10 +1,7 @@ (ns core (:require - ["@pulumi/kubernetes" :as k8s] ["@pulumi/pulumi" :as pulumi] - [infra.init :as init] - [k8s.csi-driver.hetzner :as hetznercsi] - [k8s.services.openbao.openbao :as vault] + [base :as base] [k8s.services.nextcloud.nextcloud :as nextcloud])) @@ -12,39 +9,14 @@ (let [nextcloud-result (nextcloud/deploy-nextcloud provider vault-params)] {:nextcloud nextcloud-result})) -(defn app-deployments - "Deploy applications with proper dependency chain" - [provider kubeconfig apps] - (let [vault-result (vault/deploy-vault provider kubeconfig) - vault-params {:address (aget vault-result "address") :token (aget vault-result "root_token") :vault-port-forward (aget vault-result "port_forward_manager")} - app-results (if (nil? apps) {} (apps provider vault-params)) - ] - (assoc app-results :vault vault-result) - )) - -(defn init! [apps] - (let [cluster (init/create-cluster) - setup (.apply (get cluster :kubeconfig) - (fn [kc] - (js/Promise. - (fn [resolve _reject] - (let [provider (new k8s/Provider - "k8s-dynamic-provider" - (clj->js {:kubeconfig kc}))] - (hetznercsi/deploy-csi-driver provider) - (resolve (app-deployments provider kc apps)))))))] - {cluster setup} - )) - (defn main! [] - (let [init (init! app-list) + (let [init (base.init! app-list) cluster (get init :cluster) app-outputs (get init :setup)] - + (set! (.-exports js/module) - (clj->js { - :kubeconfig (get cluster :kubeconfig) + (clj->js {:kubeconfig (get cluster :kubeconfig) :masterIp (get cluster :masterIp) :workerDeIp (get cluster :workerDeIp) :workerUsIp (get cluster :workerUsIp) @@ -54,4 +26,4 @@ :nextcloudUrl (.apply app-outputs (fn [outputs] - (get-in outputs [:nextcloud :nextcloud-url])))})))) + (get-in outputs [:nextcloud :nextcloud-url])))})))) \ No newline at end of file