diff --git a/src/main/cljc/dda/c4k_website/website/website_internal.cljc b/src/main/cljc/dda/c4k_website/website/website_internal.cljc index 4297b6f..3bf99cf 100644 --- a/src/main/cljc/dda/c4k_website/website/website_internal.cljc +++ b/src/main/cljc/dda/c4k_website/website/website_internal.cljc @@ -87,7 +87,6 @@ name (replace-dots-by-minus unique-name)] (-> (yaml/load-as-edn "website/nginx-deployment.yaml") - (assoc-in [:metadata :labels :app.kubernetes.part-of] name) (assoc-in [:metadata :namespace] name) (replace-all-matching-substrings-beginning-with "NAME" name) (cm/replace-all-matching-values-by-new-value "BUILD_CPU_REQUEST" build-cpu-request) @@ -120,6 +119,20 @@ (replace-all-matching-substrings-beginning-with "NAME" name)))) +(defn-spec generate-website-build-cron map? + [config websiteconfig?] + (let [{:keys [unique-name build-cpu-request build-cpu-limit build-memory-request + build-memory-limit]} config + name (replace-dots-by-minus unique-name)] + (-> + (yaml/load-as-edn "website/website-build-cron.yaml") + (replace-all-matching-substrings-beginning-with "NAME" name) + (cm/replace-all-matching-values-by-new-value "BUILD_CPU_REQUEST" build-cpu-request) + (cm/replace-all-matching-values-by-new-value "BUILD_CPU_LIMIT" build-cpu-limit) + (cm/replace-all-matching-values-by-new-value "BUILD_MEMORY_REQUEST" build-memory-request) + (cm/replace-all-matching-values-by-new-value "BUILD_MEMORY_LIMIT" build-memory-limit)))) + + (defn-spec generate-website-content-volume map? [config websiteconfig?] (let [{:keys [unique-name volume-size]} config @@ -141,21 +154,6 @@ (replace-all-matching-substrings-beginning-with "NAME" name)))) -(defn-spec generate-website-build-cron map? - [config websiteconfig?] - (let [{:keys [unique-name build-cpu-request build-cpu-limit build-memory-request - build-memory-limit]} config - name (replace-dots-by-minus unique-name)] - (-> - (yaml/load-as-edn "website/website-build-cron.yaml") - (assoc-in [:metadata :labels :app.kubernetes.part-of] name) - (replace-all-matching-substrings-beginning-with "NAME" name) - (cm/replace-all-matching-values-by-new-value "BUILD_CPU_REQUEST" build-cpu-request) - (cm/replace-all-matching-values-by-new-value "BUILD_CPU_LIMIT" build-cpu-limit) - (cm/replace-all-matching-values-by-new-value "BUILD_MEMORY_REQUEST" build-memory-request) - (cm/replace-all-matching-values-by-new-value "BUILD_MEMORY_LIMIT" build-memory-limit)))) - - ; TODO: Non-Secret-Parts should be config map (defn-spec generate-website-build-secret pred/map-or-seq? [config websiteconfig? diff --git a/src/main/resources/website/website-build-cron.yaml b/src/main/resources/website/website-build-cron.yaml index a811e19..ea26b3f 100644 --- a/src/main/resources/website/website-build-cron.yaml +++ b/src/main/resources/website/website-build-cron.yaml @@ -1,7 +1,8 @@ apiVersion: batch/v1 kind: CronJob metadata: - name: NAME-build-cron + name: build-cron + namespace: NAME labels: app.kubernetes.part-of: NAME-website spec: @@ -11,10 +12,15 @@ spec: jobTemplate: spec: template: + metadata: + namespace: NAME + labels: + app: build-cron + app.kubernetes.part-of: NAME-website spec: containers: - image: domaindrivenarchitecture/c4k-website-build - name: NAME-build-app + name: build-cron-container imagePullPolicy: IfNotPresent resources: requests: @@ -30,14 +36,14 @@ spec: volumeMounts: - name: content-volume mountPath: /var/www/html/website - - name: hashfile-volume + - name: hash-state-volume mountPath: /var/hashfile.d volumes: - name: content-volume persistentVolumeClaim: - claimName: NAME-content-volume - - name: hashfile-volume + claimName: content-volume + - name: hash-state-volume persistentVolumeClaim: - claimName: NAME-hashfile-volume + claimName: hash-state-volume restartPolicy: OnFailure \ No newline at end of file diff --git a/src/test/cljc/dda/c4k_website/website/website_internal_test.cljc b/src/test/cljc/dda/c4k_website/website/website_internal_test.cljc index 307ec29..24a0414 100644 --- a/src/test/cljc/dda/c4k_website/website/website_internal_test.cljc +++ b/src/test/cljc/dda/c4k_website/website/website_internal_test.cljc @@ -123,8 +123,9 @@ (deftest should-generate-website-build-cron (is (= {:apiVersion "batch/v1", :kind "CronJob", - :metadata {:name "test-io-build-cron", - :labels {:app.kubernetes.part-of "test-io"}}, + :metadata {:name "build-cron", + :namespace "test-io", + :labels {:app.kubernetes.part-of "test-io-website"}}, :spec {:schedule "0/7 * * * *", :successfulJobsHistoryLimit 1, @@ -132,18 +133,22 @@ :jobTemplate {:spec {:template - {:spec + {:metadata + {:namespace "test-io", + :labels + {:app "build-cron", :app.kubernetes.part-of "test-io-website"}} + :spec {:containers [{:image "domaindrivenarchitecture/c4k-website-build", - :name "test-io-build-app", + :name "build-cron-container", :imagePullPolicy "IfNotPresent", :resources {:requests {:cpu "500m", :memory "256Mi"}, :limits {:cpu "1700m", :memory "512Mi"}}, :command ["/entrypoint.sh"], :envFrom [{:secretRef {:name "test-io-secret"}}], :volumeMounts [{:name "content-volume", :mountPath "/var/www/html/website"} - {:name "hashfile-volume", :mountPath "/var/hashfile.d"}]}], - :volumes [{:name "content-volume", :persistentVolumeClaim {:claimName "test-io-content-volume"}} - {:name "hashfile-volume", :persistentVolumeClaim {:claimName "test-io-hashfile-volume"}}], + {:name "hash-state-volume", :mountPath "/var/hashfile.d"}]}], + :volumes [{:name "content-volume", :persistentVolumeClaim {:claimName "content-volume"}} + {:name "hash-state-volume", :persistentVolumeClaim {:claimName "hash-state-volume"}}], :restartPolicy "OnFailure"}}}}}} (cut/generate-website-build-cron {:issuer "staging" :build-cpu-request "500m"