Segment core to make the base callable and reusable
This commit is contained in:
@@ -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])))}))))
|
||||
Reference in New Issue
Block a user