From 78d14b32838647d2b79d3c93c54c1fed1759de80 Mon Sep 17 00:00:00 2001 From: GigiaJ Date: Sun, 23 Nov 2025 17:39:25 -0600 Subject: [PATCH] Move to better locations for coming fragmentation --- src/main/utils/defaults.cljs | 12 ------ src/main/utils/{ => execution}/general.clj | 2 +- src/main/utils/{ => execution}/general.cljs | 2 +- src/main/utils/{ => execution}/providers.cljs | 35 +++++++--------- src/main/utils/{ => execution}/safe_fns.cljs | 2 +- .../{ => execution}/stack_processor.cljs | 42 +++++++------------ src/main/utils/providers/defaults.cljs | 12 ++++++ src/main/utils/{ => providers}/docker.cljs | 4 +- src/main/utils/{ => providers}/harbor.cljs | 2 +- src/main/utils/{ => providers}/k8s.cljs | 2 +- src/main/utils/{ => providers}/vault.cljs | 2 +- 11 files changed, 51 insertions(+), 66 deletions(-) delete mode 100644 src/main/utils/defaults.cljs rename src/main/utils/{ => execution}/general.clj (98%) rename src/main/utils/{ => execution}/general.cljs (99%) rename src/main/utils/{ => execution}/providers.cljs (88%) rename src/main/utils/{ => execution}/safe_fns.cljs (97%) rename src/main/utils/{ => execution}/stack_processor.cljs (95%) create mode 100644 src/main/utils/providers/defaults.cljs rename src/main/utils/{ => providers}/docker.cljs (81%) rename src/main/utils/{ => providers}/harbor.cljs (97%) rename src/main/utils/{ => providers}/k8s.cljs (99%) rename src/main/utils/{ => providers}/vault.cljs (99%) diff --git a/src/main/utils/defaults.cljs b/src/main/utils/defaults.cljs deleted file mode 100644 index 1bf4e62..0000000 --- a/src/main/utils/defaults.cljs +++ /dev/null @@ -1,12 +0,0 @@ -(ns utils.defaults - (:require ["path" :as path] - [configs :refer [cfg]] - [utils.k8s :as k8s] - [utils.harbor :as harbor] - [utils.docker :as docker])) - - -(def defaults - {:k8s k8s/defaults - :harbor harbor/defaults - :docker docker/defaults}) diff --git a/src/main/utils/general.clj b/src/main/utils/execution/general.clj similarity index 98% rename from src/main/utils/general.clj rename to src/main/utils/execution/general.clj index 7928f5a..8c0c65a 100644 --- a/src/main/utils/general.clj +++ b/src/main/utils/execution/general.clj @@ -1,4 +1,4 @@ -(ns utils.general +(ns utils.execution.general (:require [clojure.walk])) diff --git a/src/main/utils/general.cljs b/src/main/utils/execution/general.cljs similarity index 99% rename from src/main/utils/general.cljs rename to src/main/utils/execution/general.cljs index 50cbd76..8e584cd 100644 --- a/src/main/utils/general.cljs +++ b/src/main/utils/execution/general.cljs @@ -1,4 +1,4 @@ -(ns utils.general (:require [clojure.walk :as walk])) +(ns utils.execution.general (:require [clojure.walk :as walk])) (defn new-resource [resource-type resource-name final-args provider dependencies] diff --git a/src/main/utils/providers.cljs b/src/main/utils/execution/providers.cljs similarity index 88% rename from src/main/utils/providers.cljs rename to src/main/utils/execution/providers.cljs index a12a367..35c0afc 100644 --- a/src/main/utils/providers.cljs +++ b/src/main/utils/execution/providers.cljs @@ -1,12 +1,12 @@ -(ns utils.providers +(ns utils.execution.providers (:require ["@pulumi/pulumi" :as pulumi] ["@pulumi/vault" :as vault] ["@pulumiverse/harbor" :as harbor] ["@pulumi/kubernetes" :as k8s] [clojure.string :as str] [clojure.walk :as walk] - [utils.general :refer [resolve-template]] - [utils.k8s :as k8s-utils] - [utils.harbor :as harbor-utils] - [utils.docker :as docker-utils] [utils.vault :as vault-utils] - [utils.stack-processor :refer [deploy! component-specs]])) + [utils.execution.general :refer [resolve-template]] + [utils.providers.k8s :as k8s-utils] + [utils.providers.harbor :as harbor-utils] + [utils.providers.docker :as docker-utils] [utils.providers.vault :as vault-utils] + [utils.execution.stack-processor :refer [deploy! component-specs]])) (defn resolve-provider-template [constructor name config] {:constructor constructor @@ -19,19 +19,6 @@ :harbor harbor-utils/provider-template :k8s k8s-utils/provider-template}))) -(defn get-provider-outputs-config [] - {:vault {:stack :init - :outputs ["vaultAddress" "vaultToken"]} - :harbor {:stack :shared - :outputs ["username" "password" "url"]} - :k8s {:stack :init - :outputs ["kubeconfig"]}}) - - -#_(defn get-stack-refs [] - {:init (new pulumi/StackReference "init") - :shared (new pulumi/StackReference "shared")}) - (defn get-stack-refs [stack-ref-array] (into {} (map (fn [stack-name] @@ -132,4 +119,12 @@ {:pulumi-cfg pulumi-cfg :resource-configs (:resource-configs stack-resources-definition) :all-providers instantiated-providers - :pre-deploy-deps pre-deploy-results}))))))))) \ No newline at end of file + :pre-deploy-deps pre-deploy-results}))))))))) + + +(defn execute [configs exports] + (-> + (let [pulumi-cfg (pulumi/Config.)] + (provider-apply pulumi-cfg configs)) + (exports) + (clj->js))) \ No newline at end of file diff --git a/src/main/utils/safe_fns.cljs b/src/main/utils/execution/safe_fns.cljs similarity index 97% rename from src/main/utils/safe_fns.cljs rename to src/main/utils/execution/safe_fns.cljs index 2849f9f..b7f4e82 100644 --- a/src/main/utils/safe_fns.cljs +++ b/src/main/utils/execution/safe_fns.cljs @@ -1,4 +1,4 @@ -(ns utils.safe-fns) +(ns utils.execution.safe-fns) (defn make-paths [& path-groups] (mapcat (fn [{:keys [paths backend]}] diff --git a/src/main/utils/stack_processor.cljs b/src/main/utils/execution/stack_processor.cljs similarity index 95% rename from src/main/utils/stack_processor.cljs rename to src/main/utils/execution/stack_processor.cljs index fe24941..f2b36b1 100644 --- a/src/main/utils/stack_processor.cljs +++ b/src/main/utils/execution/stack_processor.cljs @@ -1,4 +1,4 @@ -(ns utils.stack-processor +(ns utils.execution.stack-processor (:require ["@pulumi/kubernetes" :as k8s] ["@local/crds/gateway" :as gateway-api] @@ -6,28 +6,20 @@ ["@pulumi/pulumi" :as pulumi] ["@pulumi/vault" :as vault] ["@pulumiverse/harbor" :as harbor] - [utils.defaults :as default] - [utils.vault :as vault-utils] - [utils.general :refer [deep-merge new-resource resource-factory deploy-stack-factory iterate-stack]] + [utils.providers.defaults :as default] + [utils.providers.vault :as vault-utils] + [utils.execution.general :refer [deep-merge new-resource resource-factory deploy-stack-factory iterate-stack]] ["@pulumi/docker" :as docker] ["@pulumi/docker-build" :as docker-build] [clojure.walk :as walk] [clojure.string :as str] ["path" :as path] [configs :refer [cfg]] - [utils.k8s :as k8s-utils] - [utils.harbor :as harbor-utils] - [utils.docker :as docker-utils] - [utils.safe-fns :refer [safe-fns]]) - (:require-macros [utils.general :refer [p-> build-registry]])) - - -#_(def component-specs-defs - {:k8s k8s-utils/component-specs-defs - :harbor harbor-utils/component-specs-defs - :docker docker-utils/component-specs-defs}) - -#_(def component-specs (build-registry component-specs-defs)) + [utils.providers.k8s :as k8s-utils] + [utils.providers.harbor :as harbor-utils] + [utils.providers.docker :as docker-utils] + [utils.execution.safe-fns :refer [safe-fns]]) + (:require-macros [utils.execution.general :refer [p-> build-registry]])) (defn safe-parse-int [s] (let [n (js/parseInt s 10)] @@ -382,25 +374,23 @@ stack-items)] (:resources-map result))) -(defn deploy! [{:keys [pulumi-cfg resource-configs all-providers]}] - (let [ - deployment-results +(defn deploy! [{:keys [pulumi-cfg resource-configs all-providers]}] + (let [deployment-results (into {} (for [config resource-configs] - (let [ - {:keys [stack app-name]} config + (let [{:keys [stack app-name]} config _ (when (nil? config) (throw (js/Error. "Resource configs contain a nil value!"))) common-opts (merge all-providers (select-keys config [:app-name :app-namespace]) - {:pulumi-cfg pulumi-cfg}) - ] + {:pulumi-cfg pulumi-cfg})] - [app-name (process-stack stack config common-opts)]))) - ] + [app-name (process-stack stack config common-opts)])))] (clj->js deployment-results))) + + diff --git a/src/main/utils/providers/defaults.cljs b/src/main/utils/providers/defaults.cljs new file mode 100644 index 0000000..e55a41e --- /dev/null +++ b/src/main/utils/providers/defaults.cljs @@ -0,0 +1,12 @@ +(ns utils.providers.defaults + (:require ["path" :as path] + [configs :refer [cfg]] + [utils.providers.k8s :as k8s] + [utils.providers.harbor :as harbor] + [utils.providers.docker :as docker])) + + +(def defaults + {:k8s k8s/defaults + :harbor harbor/defaults + :docker docker/defaults}) diff --git a/src/main/utils/docker.cljs b/src/main/utils/providers/docker.cljs similarity index 81% rename from src/main/utils/docker.cljs rename to src/main/utils/providers/docker.cljs index 1b58223..ae4a766 100644 --- a/src/main/utils/docker.cljs +++ b/src/main/utils/providers/docker.cljs @@ -1,6 +1,6 @@ -(ns utils.docker +(ns utils.providers.docker (:require - [utils.general :refer [generic-transform deep-merge new-resource component-factory resource-factory deploy-stack-factory iterate-stack]] + [utils.execution.general :refer [generic-transform deep-merge new-resource component-factory resource-factory deploy-stack-factory iterate-stack]] ["@pulumi/docker-build" :as docker] ["path" :as path] [configs :refer [cfg]])) diff --git a/src/main/utils/harbor.cljs b/src/main/utils/providers/harbor.cljs similarity index 97% rename from src/main/utils/harbor.cljs rename to src/main/utils/providers/harbor.cljs index 0b2248e..f50ce14 100644 --- a/src/main/utils/harbor.cljs +++ b/src/main/utils/providers/harbor.cljs @@ -1,4 +1,4 @@ -(ns utils.harbor +(ns utils.providers.harbor (:require ["@pulumiverse/harbor" :as harbor])) diff --git a/src/main/utils/k8s.cljs b/src/main/utils/providers/k8s.cljs similarity index 99% rename from src/main/utils/k8s.cljs rename to src/main/utils/providers/k8s.cljs index e2fa818..091612a 100644 --- a/src/main/utils/k8s.cljs +++ b/src/main/utils/providers/k8s.cljs @@ -1,4 +1,4 @@ -(ns utils.k8s (:require ["@pulumi/kubernetes" :as k8s])) +(ns utils.providers.k8s (:require ["@pulumi/kubernetes" :as k8s])) diff --git a/src/main/utils/vault.cljs b/src/main/utils/providers/vault.cljs similarity index 99% rename from src/main/utils/vault.cljs rename to src/main/utils/providers/vault.cljs index 7751261..e8c1f88 100644 --- a/src/main/utils/vault.cljs +++ b/src/main/utils/providers/vault.cljs @@ -1,4 +1,4 @@ -(ns utils.vault +(ns utils.providers.vault (:require ["@pulumi/kubernetes" :as k8s] ["@pulumi/pulumi" :as pulumi]