finished all generate functions
This commit is contained in:
parent
194b87467c
commit
8c0bf1243e
9 changed files with 106 additions and 95 deletions
|
@ -18,7 +18,14 @@
|
|||
(defn k8s-objects [config]
|
||||
(into
|
||||
[]
|
||||
(concat [])))
|
||||
(concat
|
||||
[(yaml/to-string (matomo/generate-webserver-deployment))
|
||||
(yaml/to-string (matomo/generate-celeryworker-deployment))
|
||||
(yaml/to-string (matomo/generate-ingress config))
|
||||
(yaml/to-string (matomo/generate-certificate config))
|
||||
(yaml/to-string (matomo/generate-service-redis))
|
||||
(yaml/to-string (matomo/generate-service-webserver))
|
||||
(yaml/to-string (matomo/generate-statefulset))])))
|
||||
|
||||
(defn-spec generate any?
|
||||
[my-config config?
|
||||
|
|
|
@ -13,10 +13,11 @@
|
|||
(defmethod yaml/load-resource :matomo [resource-name]
|
||||
(case resource-name
|
||||
"matomo/certificate.yaml" (rc/inline "matomo/certificate.yaml")
|
||||
;"matomo/deployments.yaml" (rc/inline "matomo/deployments.yaml")
|
||||
;"matomo/ingress.yaml" (rc/inline "matomo/ingress.yaml")
|
||||
;"matomo/services.yaml" (rc/inline "matomo/services.yaml")
|
||||
;"matomo/statefulset.yaml" (rc/inline "matomo/statefulset.yaml")
|
||||
"matomo/deployments.yaml" (rc/inline "matomo/deployments.yaml")
|
||||
"matomo/ingress.yaml" (rc/inline "matomo/ingress.yaml")
|
||||
"matomo/service-redis.yaml" (rc/inline "matomo/service-redis.yaml")
|
||||
"matomo/service-webserver.yaml" (rc/inline "matomo/service-webserver.yaml")
|
||||
"matomo/statefulset.yaml" (rc/inline "matomo/statefulset.yaml")
|
||||
(throw (js/Error. "Undefined Resource!")))))
|
||||
|
||||
(defn generate-certificate [config]
|
||||
|
@ -30,10 +31,15 @@
|
|||
|
||||
(defn generate-webserver-deployment []
|
||||
(let [shynet-application "shynet-webserver"]
|
||||
(-> (yaml/from-string (yaml/load-resource "matomo/deployments-template.yaml"))
|
||||
(-> (yaml/from-string (yaml/load-resource "matomo/deployments.yaml"))
|
||||
(cm/replace-all-matching-values-by-new-value "shynet-application" shynet-application)
|
||||
(update-in [:spec :template :spec :containers 0] dissoc :command))))
|
||||
|
||||
(defn generate-celeryworker-deployment []
|
||||
(let [shynet-application "shynet-celeryworker"]
|
||||
(-> (yaml/from-string (yaml/load-resource "matomo/deployments.yaml"))
|
||||
(cm/replace-all-matching-values-by-new-value "shynet-application" shynet-application))))
|
||||
|
||||
(defn generate-ingress [config]
|
||||
(let [{:keys [fqdn issuer]
|
||||
:or {issuer :staging}} config
|
||||
|
@ -43,14 +49,11 @@
|
|||
(assoc-in [:metadata :annotations :cert-manager.io/cluster-issuer] letsencrypt-issuer)
|
||||
(cm/replace-all-matching-values-by-new-value "fqdn" fqdn))))
|
||||
|
||||
(defn generate-persistent-volume [config]
|
||||
(let [{:keys [matomo-data-volume-path]} config]
|
||||
(->
|
||||
(yaml/from-string (yaml/load-resource "matomo/persistent-volume.yaml"))
|
||||
(assoc-in [:spec :hostPath :path] matomo-data-volume-path))))
|
||||
(defn generate-statefulset []
|
||||
(yaml/from-string (yaml/load-resource "matomo/statefulset.yaml")))
|
||||
|
||||
(defn generate-pvc []
|
||||
(yaml/from-string (yaml/load-resource "matomo/pvc.yaml")))
|
||||
(defn generate-service-redis []
|
||||
(yaml/from-string (yaml/load-resource "matomo/service-redis.yaml")))
|
||||
|
||||
(defn generate-service []
|
||||
(yaml/from-string (yaml/load-resource "matomo/service.yaml")))
|
||||
(defn generate-service-webserver []
|
||||
(yaml/from-string (yaml/load-resource "matomo/service-webserver.yaml")))
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: shynet-application
|
||||
namespace: default
|
||||
labels:
|
||||
app: shynet-application
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: shynet-application
|
||||
strategy:
|
||||
type: Recreate
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: shynet-application
|
||||
spec:
|
||||
containers:
|
||||
- name: shynet-application
|
||||
image: milesmcc/shynet:edge
|
||||
imagePullPolicy: IfNotPresent
|
||||
command: ["./celeryworker.sh"]
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: shynet-settings
|
|
@ -1,52 +1,27 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: shynet-webserver
|
||||
name: shynet-application
|
||||
namespace: default
|
||||
labels:
|
||||
app: shynet-webserver
|
||||
app: shynet-application
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: shynet-webserver
|
||||
app: shynet-application
|
||||
strategy:
|
||||
type: Recreate
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: shynet-webserver
|
||||
app: shynet-application
|
||||
spec:
|
||||
containers:
|
||||
- name: shynet-webserver
|
||||
- name: shynet-application
|
||||
image: milesmcc/shynet:edge
|
||||
imagePullPolicy: IfNotPresent
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: shynet-settings
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: shynet-celeryworker
|
||||
namespace: default
|
||||
labels:
|
||||
app: shynet-celeryworker
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: shynet-celeryworker
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: shynet-celeryworker
|
||||
spec:
|
||||
containers:
|
||||
- name: shynet-celeryworker
|
||||
image: milesmcc/shynet:edge
|
||||
command: ["./celeryworker.sh"]
|
||||
imagePullPolicy: IfNotPresent
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: shynet-settings
|
||||
|
|
|
@ -3,6 +3,7 @@ kind: Ingress
|
|||
metadata:
|
||||
name: shynet-webserver-ingress
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt-staging-issuer
|
||||
kubernetes.io/ingress.class: addon-http-application-routing
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "256m"
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
|
@ -14,7 +15,7 @@ spec:
|
|||
tls:
|
||||
- hosts:
|
||||
- fqdn
|
||||
secretName: jira-secret
|
||||
secretName: shynet-secret
|
||||
rules:
|
||||
- host: fqdn
|
||||
http:
|
||||
|
|
11
src/main/resources/matomo/service-redis.yaml
Normal file
11
src/main/resources/matomo/service-redis.yaml
Normal file
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: shynet-redis
|
||||
spec:
|
||||
ports:
|
||||
- port: 6379
|
||||
name: redis
|
||||
clusterIP: None
|
||||
selector:
|
||||
app: shynet-redis
|
10
src/main/resources/matomo/service-webserver.yaml
Normal file
10
src/main/resources/matomo/service-webserver.yaml
Normal file
|
@ -0,0 +1,10 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: shynet-webserver-service
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 8080
|
||||
selector:
|
||||
app: shynet-webserver
|
|
@ -1,22 +0,0 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: shynet-redis
|
||||
spec:
|
||||
ports:
|
||||
- port: 6379
|
||||
name: redis
|
||||
clusterIP: None
|
||||
selector:
|
||||
app: shynet-redis
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: shynet-webserver-service
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 8080
|
||||
selector:
|
||||
app: shynet-webserver
|
|
@ -26,3 +26,56 @@
|
|||
:envFrom [{:secretRef {:name "shynet-settings"}}]}]}}}}
|
||||
(cut/generate-webserver-deployment))))
|
||||
|
||||
(deftest should-generate-celeryworker-deployment
|
||||
(is (= {:apiVersion "apps/v1"
|
||||
:kind "Deployment"
|
||||
:metadata
|
||||
{:name "shynet-celeryworker"
|
||||
:namespace "default"
|
||||
:labels {:app "shynet-celeryworker"}}
|
||||
:spec
|
||||
{:selector {:matchLabels {:app "shynet-celeryworker"}}
|
||||
:strategy {:type "Recreate"}
|
||||
:replicas 1
|
||||
:template
|
||||
{:metadata {:labels {:app "shynet-celeryworker"}}
|
||||
:spec
|
||||
{:containers
|
||||
[{:name "shynet-celeryworker"
|
||||
:image "milesmcc/shynet:edge"
|
||||
:imagePullPolicy "IfNotPresent"
|
||||
:command ["./celeryworker.sh"]
|
||||
:envFrom [{:secretRef {:name "shynet-settings"}}]}]}}}}
|
||||
(cut/generate-celeryworker-deployment))))
|
||||
|
||||
(deftest should-generate-certificate
|
||||
(is (= {:apiVersion "cert-manager.io/v1"
|
||||
:kind "Certificate"
|
||||
:metadata {:name "shynet-cert", :namespace "default"}
|
||||
:spec
|
||||
{:secretName "shynet-secret"
|
||||
:commonName "test.com"
|
||||
:dnsNames ["test.com"]
|
||||
:issuerRef {:name "letsencrypt-staging-issuer", :kind "ClusterIssuer"}}}
|
||||
(cut/generate-certificate {:fqdn "test.com" :issuer :staging}))))
|
||||
|
||||
(deftest should-generate-ingress
|
||||
(is (= {:apiVersion "networking.k8s.io/v1"
|
||||
:kind "Ingress"
|
||||
:metadata
|
||||
{:name "shynet-webserver-ingress"
|
||||
:annotations
|
||||
{:cert-manager.io/cluster-issuer "letsencrypt-staging-issuer"
|
||||
:kubernetes.io/ingress.class "addon-http-application-routing"
|
||||
: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"}}
|
||||
:spec
|
||||
{:tls [{:hosts ["test.com"], :secretName "shynet-secret"}]
|
||||
:rules
|
||||
[{:host "test.com"
|
||||
:http {:paths [{:backend {:serviceName "shynet-webserver-service", :servicePort 8080}, :path "/"}]}}]}}
|
||||
(cut/generate-ingress {:fqdn "test.com" :issuer :staging}))))
|
Loading…
Reference in a new issue