From 56e30b0b5f2f236b8d9fd9d02ce8ee9d71063095 Mon Sep 17 00:00:00 2001 From: bom Date: Fri, 13 May 2022 14:19:16 +0200 Subject: [PATCH] added load-as-edn as function --- src/main/clj/dda/c4k_common/yaml.clj | 7 ++++- src/test/clj/dda/c4k_common/yaml_test.clj | 31 +++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/main/clj/dda/c4k_common/yaml.clj b/src/main/clj/dda/c4k_common/yaml.clj index ba748a8..ecc7af9 100644 --- a/src/main/clj/dda/c4k_common/yaml.clj +++ b/src/main/clj/dda/c4k_common/yaml.clj @@ -36,4 +36,9 @@ (defmulti load-resource dispatch-by-resource-name) (defmethod load-resource :clj [resource-name] - (slurp (io/resource resource-name))) \ No newline at end of file + (slurp (io/resource resource-name))) + +(defmulti load-as-edn dispatch-by-resource-name) + +(defmethod load-as-edn :clj [resource-name] + (from-string (load-resource resource-name))) \ No newline at end of file diff --git a/src/test/clj/dda/c4k_common/yaml_test.clj b/src/test/clj/dda/c4k_common/yaml_test.clj index 178921b..0c32a63 100644 --- a/src/test/clj/dda/c4k_common/yaml_test.clj +++ b/src/test/clj/dda/c4k_common/yaml_test.clj @@ -51,3 +51,34 @@ {:serviceName "another_keycloak" :servicePort 8081}}]}}]}} (cut/from-string (cut/load-resource "test/ingress_test.yaml"))))) + +(deftest should-directly-convert-config-yml-to-map + (is (= {:apiVersion "networking.k8s.io/v1beta1" + :kind "Ingress" + :metadata + {:name "ingress-cloud" + :annotations + {:cert-manager.io/cluster-issuer + "letsencrypt-staging-issuer" + :nginx.ingress.kubernetes.io/proxy-body-size "256m" + :nginx.ingress.kubernetes.io/ssl-redirect "true" + :nginx.ingress.kubernetes.io/rewrite-target "/" + :nginx.ingress.kubernetes.io/proxy-connect-timeout "300" + :nginx.ingress.kubernetes.io/proxy-send-timeout "300" + :nginx.ingress.kubernetes.io/proxy-read-timeout "300"} + :namespace "default"} + :spec + {:tls [{:hosts ["fqdn"], :secretName "keycloak-secret"}] + :rules + [{:host "fqdn" + :http + {:paths + [{:backend + {:serviceName "keycloak", :servicePort 8080}}]}} + {:host "fqdn" + :http + {:paths + [{:backend + {:serviceName "another_keycloak" + :servicePort 8081}}]}}]}} + (cut/load-as-edn "test/ingress_test.yaml"))))