mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-12 15:25:57 +00:00
* feat(other): major improvement of deployment Motivation ---------- Kubernetes: * backend becomes a statefulset (exclusive volume mount) See: https://spacelift.io/blog/statefulset-vs-deployment * implement neo4j backup with job Docker: * consistent targets across all dockerfiles * remove redundant labels * remove unnecessary build args * remove obsolete networks * remove development dependencies for production Rebranding: * add image tags for local tagging and pulling * use Github's docker build workflows * use Github container registry * ONBUILD to simplify caller Dockerfiles * docker compose for branding Tooling: * same node --version as in dockerfile Docs: * missing step in README.md * refactor: remove submodules It's better to keep them all in a separate repository * improve kubernetes chart * better image tag defaults * split neo4j into its own chart (for re-use) * use application defaults where possible * optional resources for all pods * remove obsolete key/value pair from secrets * remove obsolete build argsand and add labels for neo4j enterprise * env vars for webapp * allow to define redirect domains Define a list of Domains that redirect to the domain of the project. The idea is to provide the ability to redirect eg. www.domain.tld to domain.tld * remove maintenance part regarding database * move backup job outside template folder * name the ingress * updated ingress * handle empty case of middlewares * try to default the ingress * use quote * restore todo-next-update * fix docu check * fix naming * try using prod:migrate * try using override config * copy src folder * try using base as image instead of build * fix test build * force build * comment for the problem * fix webapp tests (potentially) --------- Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
35 lines
1.0 KiB
YAML
35 lines
1.0 KiB
YAML
kind: Deployment
|
|
apiVersion: apps/v1
|
|
metadata:
|
|
name: {{ .Release.Name }}-webapp
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: {{ .Release.Name }}-webapp
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: {{ .Release.Name }}-webapp
|
|
spec:
|
|
restartPolicy: Always
|
|
containers:
|
|
- name: {{ .Release.Name }}-webapp
|
|
image: "{{ .Values.webapp.image.repository }}:{{ .Values.webapp.image.tag | default (include "defaultTag" .) }}"
|
|
imagePullPolicy: {{ quote .Values.global.image.pullPolicy }}
|
|
{{- include "resources" .Values.webapp.resources | indent 8 }}
|
|
ports:
|
|
- containerPort: 3000
|
|
env:
|
|
- name: WEBSOCKETS_URI
|
|
value: "wss://{{ .Values.domain }}/api/graphql"
|
|
- name: HOST
|
|
value: "0.0.0.0"
|
|
- name: GRAPHQL_URI
|
|
value: "http://{{ .Release.Name }}-backend:4000"
|
|
envFrom:
|
|
- configMapRef:
|
|
name: {{ .Release.Name }}-webapp-env
|
|
- secretRef:
|
|
name: {{ .Release.Name }}-webapp-secret-env
|