Swap to config impl w/ chart changes

This commit is contained in:
2025-10-07 22:24:28 -05:00
parent b5135bc726
commit 4f9224923e

View File

@@ -1,49 +1,20 @@
(ns k8s.add-ons.ingress-controller.caddy (ns k8s.add-ons.ingress-controller.caddy (:require [configs :refer [cfg]]))
(:require
["@pulumi/pulumi" :as pulumi]
["@pulumi/kubernetes" :as k8s]
["@pulumi/docker" :as docker]
[configs :refer [cfg]]
["path" :as path]
[clojure.string :as str]))
(defn deploy [provider] (def config
(let [context-path (.. path (join "." (-> cfg :resource-path))) {:stack [:docker-image :vault-secrets :helm-fn :chart]
dockerfile-path (.. path (join context-path "caddy.dockerfile")) :app-namespace "caddy-system"
custom-caddy-image (new (.. docker -Image) "caddy" :app-name "caddy-ingress-controller"
(clj->js {:build {:context context-path :chart-repo "https://caddyserver.github.io/ingress"
:dockerfile dockerfile-path} :image-port 8080
:imageName (str (-> cfg :docker-repo) "/caddy:latest")})) :vault-load-yaml false
:helm-values-fn #(clj->js
helm-v3 (.. k8s -helm -v3) {:ingressController
service-name "caddy-ingress-controller" {:deployment {:kind "DaemonSet"}
namespace "caddy-system" :daemonSet {:useHostPort true}
ns (new (.. k8s -core -v1 -Namespace) "caddy-ns" :ports {:web {:hostPort 80}
(clj->js {:metadata {:name namespace}}) :websecure {:hostPort 443}}
(clj->js {:provider provider})) :service {:type "NodePort"
:externalTrafficPolicy "Local"}
helm-values (.apply (.-imageName custom-caddy-image) :image {:repository (-> cfg :docker-repo)
(fn [image-name] :tag "latest"}
(let [parts (str/split image-name #":") :config {:email (-> cfg :dns-email)}}})})
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))