30 lines
1.6 KiB
Clojure
30 lines
1.6 KiB
Clojure
(ns k8s.services.traefik.service
|
|
(:require
|
|
["@pulumi/kubernetes" :as k8s]
|
|
["@pulumi/kubernetes/yaml" :as yaml]
|
|
["path" :as path]
|
|
[configs :refer [cfg]]))
|
|
|
|
(defn set-up-traefik [provider]
|
|
(let [helm-v3 (.. k8s -helm -v3)
|
|
chart (new (.. helm-v3 -Chart) "traefik"
|
|
(clj->js {:chart "traefik"
|
|
:fetchOpts {:repo "https://helm.traefik.io/traefik"}
|
|
:namespace "kube-system"
|
|
:values {:deployment {:kind "DaemonSet"
|
|
:hostNetwork true
|
|
}
|
|
:ports {:web {:hostPort 80}
|
|
:websecure {:hostPort 443}}
|
|
:service {:type "LoadBalancer"
|
|
:externalTrafficPolicy "Local"}
|
|
:providers {:kubernetesIngress
|
|
{:ingressStatus
|
|
{:endpoint
|
|
{:publishedService
|
|
{:name "traefik"
|
|
:namespace "kube-system"}}}}}
|
|
:additionalArguments ["--providers.kubernetesIngress.ingressClass=traefik"]
|
|
}})
|
|
(clj->js {:provider provider}))]
|
|
chart)) |