Files
iac-cljs-configs/iac/src/main/deployments.cljs

37 lines
1.2 KiB
Clojure

(ns deployments
(:require
["@pulumi/pulumi" :as pulumi]
["@pulumi/vault" :as vault]
[base :as base]
[infra.dns :as dns]
[k8s.services.nextcloud.service :as nextcloud-service]))
(defn app-list [config provider kc]
(let [stack-ref (new pulumi/StackReference "cluster")
vault-provider (new vault/Provider
"vault-provider"
(clj->js {:address (.getOutput stack-ref "vaultAddress")
:token (.getOutput stack-ref "vaultToken")}))
cloudflare-result (dns/setup-dns config vault-provider)
nextcloud-result (nextcloud-service/deploy-nextcloud provider vault-provider)
]
{:nextcloud nextcloud-result
:cloudflare cloudflare-result}))
(defn extended-exports [init]
(let [exports (base.build-exports init)
app-outputs (get init :setup)]
(assoc exports :nextcloudUrl (.apply app-outputs #(get-in % [:nextcloud :nextcloud-url])))))
(defn quick-deploy []
(->
(base/initialize app-list)
(extended-exports)
(clj->js)))
#_(defn deploy-services []
(let [init (base/initialize app-list)]
(set! (.-exports js/module)
(clj->js (extended-exports (get init :setup) (base.build-exports init))))))