diff --git a/iac/src/main/k8s/add_ons/ingress_controller/caddy.cljs b/iac/src/main/k8s/add_ons/ingress_controller/caddy.cljs index 1e6db66..a26457a 100644 --- a/iac/src/main/k8s/add_ons/ingress_controller/caddy.cljs +++ b/iac/src/main/k8s/add_ons/ingress_controller/caddy.cljs @@ -1,49 +1,20 @@ -(ns k8s.add-ons.ingress-controller.caddy - (:require - ["@pulumi/pulumi" :as pulumi] - ["@pulumi/kubernetes" :as k8s] - ["@pulumi/docker" :as docker] - [configs :refer [cfg]] - ["path" :as path] - [clojure.string :as str])) +(ns k8s.add-ons.ingress-controller.caddy (:require [configs :refer [cfg]])) -(defn deploy [provider] - (let [context-path (.. path (join "." (-> cfg :resource-path))) - dockerfile-path (.. path (join context-path "caddy.dockerfile")) - custom-caddy-image (new (.. docker -Image) "caddy" - (clj->js {:build {:context context-path - :dockerfile dockerfile-path} - :imageName (str (-> cfg :docker-repo) "/caddy:latest")})) - - helm-v3 (.. k8s -helm -v3) - service-name "caddy-ingress-controller" - namespace "caddy-system" - ns (new (.. k8s -core -v1 -Namespace) "caddy-ns" - (clj->js {:metadata {:name namespace}}) - (clj->js {:provider provider})) - - helm-values (.apply (.-imageName custom-caddy-image) - (fn [image-name] - (let [parts (str/split image-name #":") - repo (first parts) - tag (or (second parts) "latest")] - (clj->js - {:ingressController - {:deployment {:kind "DaemonSet"} - :daemonSet {:useHostPort true} - - :ports {:web {:hostPort 80} - :websecure {:hostPort 443}} - :service {:type "NodePort" - :externalTrafficPolicy "Local"} - :image {:repository repo - :tag tag} - :config {:email (-> cfg :dns-email)}}})))) - chart (new (.. helm-v3 -Chart) service-name - (clj->js {:chart service-name - :fetchOpts {:repo "https://caddyserver.github.io/ingress"} - :namespace namespace - :values helm-values}) - (clj->js {:provider provider - :dependsOn [ns custom-caddy-image]}))] - chart)) \ No newline at end of file +(def config + {:stack [:docker-image :vault-secrets :helm-fn :chart] + :app-namespace "caddy-system" + :app-name "caddy-ingress-controller" + :chart-repo "https://caddyserver.github.io/ingress" + :image-port 8080 + :vault-load-yaml false + :helm-values-fn #(clj->js + {:ingressController + {:deployment {:kind "DaemonSet"} + :daemonSet {:useHostPort true} + :ports {:web {:hostPort 80} + :websecure {:hostPort 443}} + :service {:type "NodePort" + :externalTrafficPolicy "Local"} + :image {:repository (-> cfg :docker-repo) + :tag "latest"} + :config {:email (-> cfg :dns-email)}}})}) \ No newline at end of file