Begin testing the modern config style. DNS is having some hiccups w/ the vault. Might be best to actually write a Cloudflare provider extension piece
This commit is contained in:
@@ -18,35 +18,33 @@
|
||||
(defn- get-node-ips []
|
||||
(str "kubectl get nodes -o jsonpath='{range .items[*]}{.status.addresses[?(@.type==\"ExternalIP\")].address}{\"\\n\"}{end}'"))
|
||||
|
||||
(defn setup-dns [{:keys [vault-provider pulumi-cfg]}]
|
||||
(let [get-node-ips (local/Command.
|
||||
(defn setup-dns [env]
|
||||
(let [
|
||||
{:keys [pulumi-cfg dns-secrets]} env
|
||||
get-node-ips (local/Command.
|
||||
"get-node-ips"
|
||||
(clj->js {:create (get-node-ips)
|
||||
:environment {:KUBECONFIG "./kubeconfig.yaml"}}))
|
||||
token (.requireSecret pulumi-cfg "apiToken")
|
||||
cloudflare-provider (new cloudflare/Provider "cloudflare-provider"
|
||||
(clj->js {:apiToken token}))
|
||||
service-name "dns"
|
||||
vault-path (str "secret/" service-name)
|
||||
initialize (utils/initialize-mount vault-provider vault-path service-name)
|
||||
dns-configs-secret (.getSecret (.-generic vault)
|
||||
(clj->js {:path vault-path})
|
||||
(clj->js {:provider vault-provider
|
||||
:dependsOn initialize}))
|
||||
node-ips-output (.-stdout get-node-ips)
|
||||
_ (js/console.log env)
|
||||
]
|
||||
|
||||
|
||||
node-ips-output (.-stdout get-node-ips)]
|
||||
|
||||
(.apply node-ips-output
|
||||
(fn [command-output]
|
||||
(let [node-ips (-> command-output
|
||||
str/split-lines
|
||||
(->> (map #(first (str/split % #" ")))
|
||||
(filter seq)))]
|
||||
(.then dns-configs-secret
|
||||
(filter seq)))
|
||||
]
|
||||
(.apply dns-secrets
|
||||
(fn [secret-data]
|
||||
(let [hostname-to-zone (-> (.-data secret-data)
|
||||
(js->clj :keywordize-keys true))]
|
||||
(js->clj :keywordize-keys true))
|
||||
_ (println "Ass ass")]
|
||||
(vec
|
||||
(for [[hostname zone-id] hostname-to-zone
|
||||
[index ip] (map-indexed vector node-ips)
|
||||
@@ -61,9 +59,11 @@
|
||||
(clj->js {:provider cloudflare-provider}))))))))))))
|
||||
|
||||
(def config
|
||||
{:stack [:execute]
|
||||
{:stack [:vault:prepare :k8s:secret :generic:execute]
|
||||
:app-name "dns"
|
||||
:app-namespace "dns"
|
||||
:exec-fn setup-dns})
|
||||
:exec-fn setup-dns
|
||||
:vault:prepare-opts {:app-name "dns"
|
||||
:app-namespace "dns"}})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user