Skip to content

Commit

Permalink
added cosv deployment templates for helm chart
Browse files Browse the repository at this point in the history
  • Loading branch information
acies312 committed Jan 18, 2024
1 parent 0bac40b commit bd840f0
Show file tree
Hide file tree
Showing 8 changed files with 230 additions and 1 deletion.
19 changes: 19 additions & 0 deletions save-cloud-charts/save-cloud/templates/backend-cosv-configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Values.backend_cosv.name }}-config
data:
application.properties: |
backend.preprocessor-url=http://preprocessor
backend.orchestrator-url=http://orchestrator
backend.demo-url=http://demo
backend.loki.url=http://loki:3100
backend.loki.labels.agent-container-name=pod
backend.loki.labels.application-name=app
backend.agent-settings.backend-url=http://{{ .Values.backend_cosv.name }}
server.shutdown=graceful
management.endpoints.web.exposure.include=*
management.server.port={{ .Values.backend_cosv.managementPort }}
spring.datasource.url=${spring.datasource.backend-cosv-url}
logging.level.org.springframework=DEBUG
logging.level.com.saveourtool=DEBUG
138 changes: 138 additions & 0 deletions save-cloud-charts/save-cloud/templates/backend-cosv-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend-cosv
labels:
{{- include "common.labels" (merge (dict "service" .Values.backend_cosv) .) | nindent 4 }}
spec:
selector:
matchLabels:
io.kompose.service: backend-cosv
strategy:
# Because of shared volume with multi-attach problem
type: Recreate
template:
metadata:
labels:
{{- include "pod.common.labels" (merge (dict "service" .Values.backend_cosv ) .) | nindent 8 }}
annotations:
{{- include "pod.common.annotations" (dict "service" .Values.backend_cosv ) | nindent 8 }}
spec:
restartPolicy: Always
{{- include "cnb.securityContext" . | nindent 6 }}
containers:
- name: backend-cosv
{{- include "spring-boot.common" (merge (dict "service" .Values.backend_cosv) .) | nindent 10 }}
env:
{{- include "spring-boot.common.env" (merge (dict "service" .Values.backend_cosv) .) | nindent 12 }}
- name: DATABASE_SECRETS_PATH
value: {{ .Values.mysql.dbPasswordFile }}
- name: S3_SECRETS_PATH
value: {{ .Values.s3.secretFile }}
- name: JAVA_TOOL_OPTIONS
value: -XX:ReservedCodeCacheSize=48M
volumeMounts:
- {{ include "spring-boot.config-volume-mount" . | indent 14 | trim }}
- name: database-secret
mountPath: {{ .Values.mysql.dbPasswordFile }}
- name: s3-secrets
mountPath: {{ .Values.s3.secretFile }}
{{- include "spring-boot.management" .Values.backend_cosv | nindent 10 }}
resources:
limits:
memory: 2G
requests:
memory: 1G
{{ if .Values.mysql.migrations.enabled }}
initContainers:
- name: git-cloner
image: alpine/git
env:
{{ if .Values.proxy.enabled }}
{{- with .Values.proxy.extraEnv }}
{{- toYaml . | nindent 12 }}
{{- end }}
{{ end }}
args:
- clone
- --progress
- --verbose
{{ if .Values.proxy.enabled }}
{{- with .Values.proxy.extraArgs }}
{{- toYaml . | nindent 12 }}
{{- end }}
{{ end }}
- --single-branch
- --branch
- {{ .Values.mysql.migrations.branch | default "master" }}
- --
- https://github.com/saveourtool/save-cloud.git
- /data
volumeMounts:
- mountPath: /data
name: migrations-data
- name: liquibase-runner
image: liquibase/liquibase:4.20
securityContext:
runAsUser: 1001
runAsGroup: 1001
args:
- --url=$(DB_URL)?createDatabaseIfNotExist=true
- --changeLogFile=db/db.changelog-master.xml
- --username=$(DB_USERNAME)
- --password=$(DB_PASSWORD)
- --log-level=info
- --contexts={{ .Values.profile }}
- update
resources:
requests:
memory: 100M
limits:
memory: 300M
env:
# See https://hub.docker.com/r/liquibase/liquibase, section 'Notice for MySQL Users'
- name: INSTALL_MYSQL
value: 'true'
- name: DB_URL
valueFrom:
secretKeyRef:
name: db-secrets
key: spring.datasource.backend-url
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-secrets
key: spring.datasource.username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secrets
key: spring.datasource.password
{{ if .Values.proxy.enabled }}
{{- with .Values.proxy.extraEnv }}
{{- toYaml . | nindent 12 }}
{{- end }}
{{ end }}
volumeMounts:
- mountPath: /liquibase/changelog
name: migrations-data
- mountPath: {{ .Values.mysql.dbPasswordFile }}
name: database-secret
- mountPath: /etc/ssl/certs/ca-certificates.crt
name: ca-certs
subPath: cert-check.crt
readOnly: false
{{ end }}
volumes:
- {{ include "spring-boot.config-volume" (dict "service" .Values.backend_cosv) | indent 10 | trim }}
- name: database-secret
secret:
secretName: db-secrets
- name: s3-secrets
secret:
secretName: s3-secrets
- name: migrations-data
emptyDir: {}
- name: ca-certs
configMap:
name: ca-certs
12 changes: 12 additions & 0 deletions save-cloud-charts/save-cloud/templates/backend-cosv-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
{{- include "service.common.metadata" (dict "service" .Values.backend_cosv) | nindent 2 }}
spec:
{{ if .Values.backend_cosv.clusterIP }}
clusterIP: {{ .Values.backend_cosv.clusterIP }}
{{ end }}
ports:
{{- include "service.common.ports" (dict "service" .Values.backend_cosv) | nindent 4 }}
selector:
{{- include "service.common.selectors" (dict "service" .Values.backend_cosv) | nindent 4 }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend-cosv
labels:
{{- include "common.labels" (merge (dict "service" .Values.frontend_cosv) .) | nindent 4 }}
spec:
selector:
matchLabels:
io.kompose.service: frontend-cosv
strategy:
type: RollingUpdate
template:
metadata:
labels:
{{- include "pod.common.labels" (merge (dict "service" .Values.frontend_cosv ) .) | nindent 8 }}
spec:
restartPolicy: Always
{{- include "cnb.securityContext" . | nindent 6 }}
containers:
- name: frontend-cosv
{{- include "spring-boot.common" (merge (dict "service" .Values.frontend_cosv) .) | nindent 10 }}
env:
- name: PORT
value: '{{ .Values.frontend_cosv.containerPort | toString }}'
resources:
limits:
memory: 200M
requests:
memory: 100M
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Service
metadata:
{{- include "service.common.metadata" (dict "service" .Values.frontend_cosv) | nindent 2 }}
spec:
ports:
{{- include "service.common.ports" (dict "service" .Values.frontend_cosv) | nindent 4 }}
selector:
{{- include "service.common.selectors" (dict "service" .Values.frontend_cosv) | nindent 4 }}
2 changes: 2 additions & 0 deletions save-cloud-charts/save-cloud/values-minikube.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ ingress:
enabled: false
backend:
profile: dev,secure,kubernetes
backend-cosv:
profile: dev,secure,kubernetes
gateway:
profile: dev,kubernetes
applicationProperties: |+
Expand Down
14 changes: 13 additions & 1 deletion save-cloud-charts/save-cloud/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,21 @@ backend:
# Fixed ClusterIP can be assigned to make it easier to query backend from services outside Kubernetes.
# Should be chosen depending on cluster's network configuration: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address.
clusterIP: null
backend_cosv:
name: backend-cosv
profile: dev,secure,kubernetes
imageName: save-cosv
containerPort: 5700
managementPort: 5701
clusterIP: null
frontend:
name: frontend
imageName: save-frontend
containerPort: 5810
frontend-cosv:
name: frontend-cosv
imageName: save-cosv-frontend
containerPort: 5820
orchestrator:
name: orchestrator
imageName: save-orchestrator
Expand All @@ -47,8 +58,9 @@ preprocessor:
# Fixed ClusterIP can be assigned to make it easier to query preprocessor from services outside Kubernetes
clusterIP: null
gateway:
# Additional certs installation for internal CA case
initCerts:
enabled: true
enabled: false
name: gateway
profile: dev,kubernetes
imageName: api-gateway
Expand Down
7 changes: 7 additions & 0 deletions save-deploy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,13 @@ preprocessor:
## Database
The service is designed to work with MySQL database. Migrations are applied with liquibase. They expect event scheduler to be enabled on the DB.
## Provide Hostname (Domain name)
In the file `/home/saveu/configs/gateway/application.properties` the following properties should be provided:
* `hosts.save`
* `hosts.cosv`

It is needed because the 'save' and 'cosv' services have been divided, and now all the routing determines whether you are trying to visit the 'save' app (i.e., save.example.com) or the 'cosv' app (i.e., cosv.example.com)

## Enabling api-gateway with external OAuth providers
In the file `/home/saveu/configs/gateway/application.properties` the following properties should be provided:
* `spring.security.oauth2.client.provider.<provider name>.issuer-uri`
Expand Down

0 comments on commit bd840f0

Please sign in to comment.