From 9bbbfb23f548e2c130e4690eefcdc8ada359c08b Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Tue, 16 Feb 2021 16:42:56 +0100 Subject: [PATCH] backend templates --- .../templates/backend/ConfigMap.yml | 26 +++++++++ .../templates/backend/Deployment.yaml | 55 +++++++++++++++++++ .../backend/PersistentVolumeClaim.yaml | 24 ++++++++ .../kubernetes/templates/backend/Secret.yaml | 21 +++++++ .../kubernetes/templates/backend/Service.yaml | 20 +++++++ 5 files changed, 146 insertions(+) create mode 100644 deployment/kubernetes/templates/backend/ConfigMap.yml create mode 100644 deployment/kubernetes/templates/backend/Deployment.yaml create mode 100644 deployment/kubernetes/templates/backend/PersistentVolumeClaim.yaml create mode 100644 deployment/kubernetes/templates/backend/Secret.yaml create mode 100644 deployment/kubernetes/templates/backend/Service.yaml diff --git a/deployment/kubernetes/templates/backend/ConfigMap.yml b/deployment/kubernetes/templates/backend/ConfigMap.yml new file mode 100644 index 000000000..a8c480abf --- /dev/null +++ b/deployment/kubernetes/templates/backend/ConfigMap.yml @@ -0,0 +1,26 @@ +kind: ConfigMap +apiVersion: v1 +metadata: + name: configmap-{{ .Release.Name }}-backend + labels: + app.kubernetes.io/name: "{{ .Chart.Name }}" + app.kubernetes.io/instance: "{{ .Release.Name }}" + app.kubernetes.io/version: "{{ .Chart.AppVersion }}" + app.kubernetes.io/component: "configmap backend" + app.kubernetes.io/part-of: "{{ .Chart.Name }}" + app.kubernetes.io/managed-by: "{{ .Release.Service }}" + helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" +data: + PUBLIC_REGISTRATION: "{{ .Values.PUBLIC_REGISTRATION }}" + CLIENT_URI: "{{ .Values.BACKEND.CLIENT_URI }}" + EMAIL_DEFAULT_SENDER: "{{ .Values.BACKEND.EMAIL_DEFAULT_SENDER }}" + SMTP_HOST: "{{ .Values.BACKEND.SMTP_HOST }}" + SMTP_PORT: "{{ .Values.BACKEND.SMTP_PORT }}" + SMTP_IGNORE_TLS: "{{ .Values.BACKEND.SMTP_IGNORE_TLS }}" + SMTP_SECURE: "{{ .Values.BACKEND.SMTP_SECURE }}" + GRAPHQL_URI: "http://{{ .Release.Name }}-backend:4000" + NEO4J_URI: "bolt://{{ .Release.Name }}-neo4j:7687" + #REDIS_DOMAIN: ---toBeSet(IP)--- + #REDIS_PORT: "6379" + #SENTRY_DSN_WEBAPP: "---toBeSet---" + #SENTRY_DSN_BACKEND: "---toBeSet---" \ No newline at end of file diff --git a/deployment/kubernetes/templates/backend/Deployment.yaml b/deployment/kubernetes/templates/backend/Deployment.yaml new file mode 100644 index 000000000..108a5d10a --- /dev/null +++ b/deployment/kubernetes/templates/backend/Deployment.yaml @@ -0,0 +1,55 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: {{ .Release.Name }}-backend + labels: + app.kubernetes.io/name: "{{ .Chart.Name }}" + app.kubernetes.io/instance: "{{ .Release.Name }}" + app.kubernetes.io/version: "{{ .Chart.AppVersion }}" + app.kubernetes.io/component: "deployment backend" + app.kubernetes.io/part-of: "{{ .Chart.Name }}" + app.kubernetes.io/managed-by: "{{ .Release.Service }}" + helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" +spec: + replicas: 1 + minReadySeconds: {{ .Values.BACKEND.MIN_READY_SECONDS }} + progressDeadlineSeconds: {{ .Values.BACKEND.PROGRESS_DEADLINE_SECONDS }} + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: "100%" + selector: + matchLabels: + app: {{ .Release.Name }}-backend + template: + metadata: + annotations: + backup.velero.io/backup-volumes: uploads + labels: + app: {{ .Release.Name }}-backend + spec: + containers: + - name: container-{{ .Release.Name }}-backend + image: "{{ .Values.BACKEND.DOCKER_IMAGE_REPO }}:{{ .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.BACKEND.DOCKER_IMAGE_PULL_POLICY }} + envFrom: + - configMapRef: + name: configmap-{{ .Release.Name }}-backend + - secretRef: + name: secret-{{ .Release.Name }}-backend + ports: + - containerPort: 4000 + protocol: TCP + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /app/public/uploads + name: uploads + dnsPolicy: ClusterFirst + schedulerName: default-scheduler + restartPolicy: {{ .Values.BACKEND.CONTAINER_RESTART_POLICY }} + terminationGracePeriodSeconds: {{ .Values.BACKEND.CONTAINER_TERMINATION_GRACE_PERIOD_SECONDS }} + volumes: + - name: uploads + persistentVolumeClaim: + claimName: volume-claim-{{ .Release.Name }}-uploads \ No newline at end of file diff --git a/deployment/kubernetes/templates/backend/PersistentVolumeClaim.yaml b/deployment/kubernetes/templates/backend/PersistentVolumeClaim.yaml new file mode 100644 index 000000000..d75b2f252 --- /dev/null +++ b/deployment/kubernetes/templates/backend/PersistentVolumeClaim.yaml @@ -0,0 +1,24 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: volume-claim-{{ .Release.Name }}-uploads + labels: + app.kubernetes.io/name: "{{ .Chart.Name }}" + app.kubernetes.io/instance: "{{ .Release.Name }}" + app.kubernetes.io/version: "{{ .Chart.AppVersion }}" + app.kubernetes.io/component: "volume-claim backend" + app.kubernetes.io/part-of: "{{ .Chart.Name }}" + app.kubernetes.io/managed-by: "{{ .Release.Service }}" + helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" +spec: + #dataSource: + # name: uploads-snapshot + # kind: VolumeSnapshot + # apiGroup: snapshot.storage.k8s.io + storageClassName: storage-{{ .Release.Name }}-persistent + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .Values.BACKEND.STORAGE_UPLOADS }} + diff --git a/deployment/kubernetes/templates/backend/Secret.yaml b/deployment/kubernetes/templates/backend/Secret.yaml new file mode 100644 index 000000000..a24941ebe --- /dev/null +++ b/deployment/kubernetes/templates/backend/Secret.yaml @@ -0,0 +1,21 @@ +kind: Secret +apiVersion: v1 +metadata: + name: secret-{{ .Release.Name }}-backend + labels: + app.kubernetes.io/name: "{{ .Chart.Name }}" + app.kubernetes.io/instance: "{{ .Release.Name }}" + app.kubernetes.io/version: "{{ .Chart.AppVersion }}" + app.kubernetes.io/component: "secret backend" + app.kubernetes.io/part-of: "{{ .Chart.Name }}" + app.kubernetes.io/managed-by: "{{ .Release.Service }}" + helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" +stringData: + JWT_SECRET: "{{ .Values.BACKEND.JWT_SECRET }}" + MAPBOX_TOKEN: "{{ .Values.BACKEND.MAPBOX_TOKEN }}" + PRIVATE_KEY_PASSPHRASE: "{{ .Values.BACKEND.PRIVATE_KEY_PASSPHRASE }}" + SMTP_USERNAME: "{{ .Values.BACKEND.SMTP_USERNAME }}" + SMTP_PASSWORD: "{{ .Values.BACKEND.SMTP_PASSWORD }}" + #NEO4J_USERNAME: "" + #NEO4J_PASSWORD: "" + #REDIS_PASSWORD: ---toBeSet--- diff --git a/deployment/kubernetes/templates/backend/Service.yaml b/deployment/kubernetes/templates/backend/Service.yaml new file mode 100644 index 000000000..0098589fd --- /dev/null +++ b/deployment/kubernetes/templates/backend/Service.yaml @@ -0,0 +1,20 @@ +kind: Service +apiVersion: v1 +metadata: + name: {{ .Release.Name }}-backend + labels: + app.kubernetes.io/name: "{{ .Chart.Name }}" + app.kubernetes.io/instance: "{{ .Release.Name }}" + app.kubernetes.io/version: "{{ .Chart.AppVersion }}" + app.kubernetes.io/component: "service backend" + app.kubernetes.io/part-of: "{{ .Chart.Name }}" + app.kubernetes.io/managed-by: "{{ .Release.Service }}" + helm.sh/chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}" +spec: + ports: + - name: {{ .Release.Name }}-graphql + port: 4000 + targetPort: 4000 + protocol: TCP + selector: + app: {{ .Release.Name }}-backend