Skip to content

Commit 57020d3

Browse files
committed
create helm chart
1 parent 0df96e6 commit 57020d3

File tree

16 files changed

+265
-241
lines changed

16 files changed

+265
-241
lines changed

k8s/templates/backend

Whitespace-only changes.
Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,43 +33,61 @@ spec:
3333
key: secret-key
3434
- name: DEBUG
3535
value: {{ .Values.backend.config.debug | default "1" | quote }}
36-
- name: SQL_USER
37-
value: {{ .Values.database.user | default "balancer" | quote }}
3836
- name: VITE_API_BASE_URL
3937
value: {{ .Values.backend.config.apiBaseUrl | default "https://balancertestsite.com/" | quote }}
4038
- name: DJANGO_ALLOWED_HOSTS
4139
value: {{ .Values.backend.config.allowedHosts | default "*" | quote }}
4240
- name: DATABASE
43-
value: {{ .Values.database.type | default "postgres" | quote }}
41+
value: "postgres"
4442
- name: EMAIL_HOST_PASSWORD
4543
valueFrom:
4644
secretKeyRef:
4745
name: {{ .Release.Name }}-balancer-secrets
4846
key: email-password
49-
- name: SQL_ENGINE
50-
value: {{ .Values.database.engine | default "django.db.backends.postgresql" | quote }}
51-
- name: SQL_PORT
52-
value: {{ .Values.database.port | default "5432" | quote }}
5347
- name: EMAIL_HOST_USER
5448
value: {{ .Values.email.hostUser | default "[email protected]" | quote }}
55-
- name: SQL_DATABASE
56-
value: {{ .Values.database.name | default "balancer_dev" | quote }}
57-
- name: SQL_PASSWORD
49+
- name: OPENAI_API_KEY
5850
valueFrom:
5951
secretKeyRef:
6052
name: {{ .Release.Name }}-balancer-secrets
61-
key: database-password
62-
- name: OPENAI_API_KEY
53+
key: openai-api-key
54+
- name: SQL_USER
55+
value: {{ .Values.database.user | default "balancer" | quote }}
56+
- name: SQL_PASSWORD
6357
valueFrom:
6458
secretKeyRef:
6559
name: {{ .Release.Name }}-balancer-secrets
66-
key: openai-api-key
60+
key: database-password
61+
- name: SQL_ENGINE
62+
value: "django.db.backends.postgresql"
6763
- name: SQL_HOST
68-
value: {{ .Values.database.host | quote }}
64+
value: {{ if .Values.database.internal }}{{ printf "%s-db.%s.svc.cluster.local" .Release.Name .Release.Namespace | quote }}{{ else }}{{ .Values.database.host | quote }}{{ end }}
65+
- name: SQL_PORT
66+
value: {{ .Values.database.port | default "5432" | quote }}
67+
- name: SQL_DATABASE
68+
value: {{ .Values.database.name | default "balancer_dev" | quote }}
6969
resources:
7070
requests:
7171
cpu: {{ .Values.backend.resources.requests.cpu | default "500m" }}
7272
memory: {{ .Values.backend.resources.requests.memory | default "1Gi" }}
7373
limits:
7474
cpu: {{ .Values.backend.resources.limits.cpu | default "1024m" }}
75-
memory: {{ .Values.backend.resources.limits.memory | default "3Gi" }}
75+
memory: {{ .Values.backend.resources.limits.memory | default "3Gi" }}
76+
readinessProbe:
77+
httpGet:
78+
path: /health/
79+
port: http
80+
initialDelaySeconds: 10
81+
periodSeconds: 10
82+
livenessProbe:
83+
httpGet:
84+
path: /health/
85+
port: http
86+
initialDelaySeconds: 30
87+
periodSeconds: 15
88+
startupProbe:
89+
httpGet:
90+
path: /health/
91+
port: http
92+
failureThreshold: 30
93+
periodSeconds: 10
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{{- if .Values.backend.secrets.useExternalSecrets }}
2+
apiVersion: external-secrets.io/v1beta1
3+
kind: ExternalSecret
4+
metadata:
5+
name: {{ .Release.Name }}-backend-secrets
6+
labels:
7+
{{- include "balancer.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: backend
9+
spec:
10+
refreshInterval: "1h"
11+
secretStoreRef:
12+
name: {{ .Values.backend.secrets.externalSecretStore }}
13+
kind: ClusterSecretStore
14+
target:
15+
name: {{ .Release.Name }}-backend-secrets
16+
template:
17+
metadata:
18+
labels:
19+
{{- include "balancer.labels" . | nindent 10 }}
20+
app.kubernetes.io/component: backend
21+
data:
22+
- secretKey: secret-key
23+
remoteRef:
24+
key: {{ .Values.backend.secrets.externalSecretPath }}/secret-key
25+
- secretKey: email-password
26+
remoteRef:
27+
key: {{ .Values.backend.secrets.externalSecretPath }}/email-password
28+
- secretKey: database-password
29+
remoteRef:
30+
key: {{ .Values.backend.secrets.externalSecretPath }}/database-password
31+
- secretKey: openai-api-key
32+
remoteRef:
33+
key: {{ .Values.backend.secrets.externalSecretPath }}/openai-api-key
34+
{{- end }}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
apiVersion: bitnami.com/v1alpha1
3+
kind: SealedSecret
4+
metadata:
5+
name: {{ .Release.Name }}-backend-secrets
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
{{- include "balancer.labels" . | nindent 4 }}
9+
app.kubernetes.io/component: backend
10+
spec:
11+
encryptedData:
12+
database-password: AgBeM+d8ksKjIfgQDe1dQddT2h7hI7MosIh7o6ctBEGlegMkTp082XApZh4pNSXqtEMCbQCWBlV875dLCuOmXpguYZZ0Ldjj/vNgKR+gK8lmRQGc08DaHNMLychraYt6LKkAq/5PeLHcEQ/hyPz1jN+Mk1Omqiqdz3GvNi4TUaOdmsf8aXygXJlZZwCp/03akaKkuckK+rGd2n3lPzdC/03KkbaSKj4K5RrlTqOIYgwLzibM0NdfEWDhnmzf7ruz+WBE4u1iILFfFKGD7EbpXGbWLn7FsGNxOY8Qre15vG/0nc62x1nmN99A56Y2HcM3ezjOVfSepPWQBsiUHX94Lcdzw5bqJOVr/ZHvA2Q30U8Gj/v270+yOBBAX91pwoAwm+aC5rkjCF+kZYR3LXHne07Mjicta+/xq0Cgu4BhSjGCbg7ayxobBayClb7Fv7Gp8IkMgO1zhwyaqCHslJVydxh15Q4KE8pjtJ81cra4/kbinLj90q4iw+2BRgm/aqS5olaLrivZEV107a5H58SY+W9AvVFvPCU3pi4x0bFlJb+PCkRrnzbtEQ+FblRnIvK/z33QjnrrL+Svhvt54KKN8w5VJgV2ruqsLYyGAO2B/V6cyISpogx4fOrJAMktdVsCeB7rPMWudoNw03wKbQcau/tnHW8YFdTZE6YChS/rUy7XYt+ir2L4JPZX1EG0KxTCCI1JeEzWkSmnlW3M
13+
email-password: AgB7HPKbeHwmvwBkbPawZel2epsKJ9n9gcjUGRvkn+dEgl8SOphoSy887RzmPxcUO8NH8A7m7gTHPHv96qDbpe4ocNEKPxVuswheVi/CYGfz3arJuXUyQamI0S9P67Wx7h2hJRNd9JibbQYxnMCwvt4l2h1rVUuOq8LgHR743bTG4eVX2nxT0gRrxry11MYyvFfGq7LAlZDnRrzG6DUpSbH6tPhqm1W7ixXwD96Z+7VBm/E7Xa9ZkkKv0SxofPL3JdWYrUyiaNr+XiiNcxt+Xwixjl3RQ77WLBsfHsOdDD6/oBUOnek8cKXyM+oA4nKVNoGj9MqlY62TrpIq08UEGYcE3tmRDX8rKGJW9ymF9pYtwLSeHtJIEYrWkd+ckjtGS1J4ad+/K3Ax3lVwhztJjaaIquZJ+lOIWO3qRQZ2AVpZhs+AmzhO8NEBO2f9n0NTqN9pI5jEA+DhTb5K4yzUQwhwBZwoEXyAftlfsrtyjpkvXDXxx//th7XRAVVu1cKeW7hjiiX0f8kwXAecZvp6mrl53+GnleaPptC4mICjiE/8ObMFDybvxgX2sGZjhAxGgRutNpkwRumly7gO4gb1rPzDhmdOmG0RGVX7vX+ml9eJXwpYASic45yHN1L5W5j55D0diAOMtYDC0EuZqItdMTpmTNYDGricbqL8EbbkSnXVsL8iL9XcgakG1zYUxDFYybQDxRMeOhPdLvWeXM9hrZGv
14+
openai-api-key: AgBesie023rZM4uDmn8keGnRGMAEpOp8/s4sbrf/8HWuMRIAL8lw0UPvDDj2qYk8u+EvSAT/N2l0bKA7/ijd7caknfeMvynU8t6J6YDEsuCfKDA02SYSUCl91tVBJJ+Ms0kDSc16z6bf/bXjrJo2fe+3add+Xtodg4rUrrX6pUKZlyF1AqmAVg2REKMqrLm0NlRZCso1KLcZvtHcgLbpJ1OtN8qGFcgUGAl1k1QxpV6/WfYSFp34TsGZXxisX/nFSf2BpIugqEtHZwXAvSyPub7rz0f0YaJRgrQn+qjHJ20TII2nv7TqY2HEGCHwa1riu1HNhDWfFCaHY+om1psVUe5C644qMeUEQva6T2cdS39Ve2F7fcEGn+0mXFno2syM+h2C9RAWs0mitEv1Xh59cQh12SRsqKH6j6fV/MWDnr9vS9Qy/tVKmGPWqZk+KEaRn5pMtqyHUFU7hnJvKGvhg0oXmlDZYbG88RjsXGEJo1N98WpYoUefDnaIglGCDBG6oMTgaRMzCz4WzQQxoOoUGDlhrqFQ/s2CCcA2yqFwRgxh2i4/fdgRE0SCQFqvI2dt98vpeTxe0OKNQjKBlQNbG0xNdm/JYsGUJwN3JRIWakANbwK1DgHQjRSG9pf9N/HLqSPEhdrLWsqSNCygxHIWI09PTjrxm9B/nXRPyE/q/8y6vfS2x5/TQSvZxgJfi81YMH7sgZZ8C79SbNMoGnQPKT8ZFgXlGSqXbfDqmOTX+9FFnx3hHNrUS26sTRKlSit3h8uvKEfEnDZHTg==
15+
secret-key: AgCzCdAb7Z9ROU6aow5xLi1uOlt/mEtjust3HnGZLKv4eVPQOG6cSpiYaWYS1cWMOTjZzUw6POOuHkGAmiikI8d6GG2Dj9HF2zTYt3P/UKoIig1vr6PjxxMM7KFrRopDASyKDZ+2xHS1s/F8T49y2J49nZzFpRgcTW8cH731FRW229dAL9AlehxWq59tGezyBvnm6v085H0brx+YWEJ855tFMAjEUF+qvWloIKJeGQXM7QXaIWAUqHc7u3oIFyNPrQNhOC4GhpKTl96PJ1Rwm3atPMBuz0NmfKM9dWXFfl8KWka2ctbwxz+jmNGqFh0He3RqREXcgJdjiCJ7EAUB2ecZuKXwRusDWVAweOLWJQb5MMZQbEdNOPhk48bdx6QpKYTHLxDK6l2nLTYtorTAlIzOQXgerjHsRwA/eabS2jzejjrkCKFtXuLlk4Gr0mTziFzXA2PrEt+rJrUYmJ4W1Jx2aaWXC2D7KR+Jm7JELMmWiUAlehevmiZOx46w5bRb7+cvTqWSDo+GuqSe0W2ZOI8ME//ba8a5qXWJmxQoQtdOzE2u3g0p7DkUORUneO8bfEQri8nHQLjJiBvAgiebnGEfyFtSrtutCj3XpoB1WUenOVSooKWuMXbMzCaAYvd114f5neBXs0n8Gy/r0wq6ayjvsW5QfFRazk9Pl813rFI5a4ZCLf4FSdBUXOHokJz91GPYeoU=
16+
template:
17+
metadata:
18+
name: {{ .Release.Name }}-backend-secrets
19+
namespace: {{ .Release.Namespace }}
20+
labels:
21+
{{- include "balancer.labels" . | nindent 8 }}
22+
app.kubernetes.io/component: backend
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,4 @@ spec:
1414
name: http
1515
selector:
1616
{{- include "balancer.selectorLabels" . | nindent 4 }}
17-
app.kubernetes.io/component: backend
18-
---
17+
app.kubernetes.io/component: backend

k8s/templates/db/_helpers.tpl

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{{/*
2+
Database name
3+
*/}}
4+
{{- define "balancer.db.name" -}}
5+
{{- .Values.database.name | default "balancer_dev" }}
6+
{{- end }}
7+
8+
{{/*
9+
Database user
10+
*/}}
11+
{{- define "balancer.db.user" -}}
12+
{{- .Values.database.user | default "balancer" }}
13+
{{- end }}
14+
15+
{{/*
16+
Database labels
17+
*/}}
18+
{{- define "balancer.db.labels" -}}
19+
{{- include "balancer.labels" . | nindent 0 }}
20+
app.kubernetes.io/component: database
21+
{{- end }}
22+
23+
{{/*
24+
Database selector labels
25+
*/}}
26+
{{- define "balancer.db.selectorLabels" -}}
27+
{{- include "balancer.selectorLabels" . | nindent 0 }}
28+
app.kubernetes.io/component: database
29+
{{- end }}

k8s/templates/db/deployment.yaml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
{{- if .Values.database.internal }}
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: {{ .Release.Name }}-db
6+
labels:
7+
{{- include "balancer.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: database
9+
spec:
10+
replicas: 1
11+
selector:
12+
matchLabels:
13+
{{- include "balancer.selectorLabels" . | nindent 6 }}
14+
app.kubernetes.io/component: database
15+
template:
16+
metadata:
17+
labels:
18+
{{- include "balancer.selectorLabels" . | nindent 8 }}
19+
app.kubernetes.io/component: database
20+
spec:
21+
containers:
22+
- name: postgres
23+
image: "{{ .Values.database.image.repository }}:{{ .Values.database.image.tag }}"
24+
imagePullPolicy: {{ .Values.database.image.pullPolicy | default "IfNotPresent" }}
25+
ports:
26+
- name: postgres
27+
containerPort: 5432
28+
protocol: TCP
29+
env:
30+
- name: POSTGRES_USER
31+
value: {{ .Values.database.user | quote }}
32+
- name: POSTGRES_PASSWORD
33+
valueFrom:
34+
secretKeyRef:
35+
name: {{ .Release.Name }}-balancer-secrets
36+
key: database-password
37+
- name: POSTGRES_DB
38+
value: {{ .Values.database.name | quote }}
39+
resources:
40+
requests:
41+
cpu: {{ .Values.database.resources.requests.cpu | default "100m" }}
42+
memory: {{ .Values.database.resources.requests.memory | default "256Mi" }}
43+
limits:
44+
cpu: {{ .Values.database.resources.limits.cpu | default "500m" }}
45+
memory: {{ .Values.database.resources.limits.memory | default "512Mi" }}
46+
volumeMounts:
47+
- name: postgres-data
48+
mountPath: /var/lib/postgresql/data
49+
readinessProbe:
50+
exec:
51+
command:
52+
- pg_isready
53+
- -U
54+
- {{ .Values.database.user }}
55+
initialDelaySeconds: 5
56+
periodSeconds: 10
57+
livenessProbe:
58+
exec:
59+
command:
60+
- pg_isready
61+
- -U
62+
- {{ .Values.database.user }}
63+
initialDelaySeconds: 30
64+
periodSeconds: 15
65+
volumes:
66+
- name: postgres-data
67+
persistentVolumeClaim:
68+
claimName: {{ .Release.Name }}-db-pvc
69+
{{- end }}

k8s/templates/db/pvc.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{{- if .Values.database.internal }}
2+
apiVersion: v1
3+
kind: PersistentVolumeClaim
4+
metadata:
5+
name: {{ .Release.Name }}-db-pvc
6+
labels:
7+
{{- include "balancer.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: database
9+
spec:
10+
accessModes:
11+
- {{ .Values.database.persistence.accessMode | default "ReadWriteOnce" }}
12+
resources:
13+
requests:
14+
storage: {{ .Values.database.persistence.size | default "1Gi" }}
15+
{{- if .Values.database.persistence.storageClass }}
16+
storageClassName: {{ .Values.database.persistence.storageClass }}
17+
{{- end }}
18+
{{- end }}

k8s/templates/db/service.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{{- if .Values.database.internal }}
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: {{ .Release.Name }}-db
6+
labels:
7+
{{- include "balancer.labels" . | nindent 4 }}
8+
app.kubernetes.io/component: database
9+
spec:
10+
type: ClusterIP
11+
ports:
12+
- port: 5432
13+
targetPort: postgres
14+
protocol: TCP
15+
name: postgres
16+
selector:
17+
{{- include "balancer.selectorLabels" . | nindent 4 }}
18+
app.kubernetes.io/component: database
19+
{{- end }}

k8s/templates/deployment.yaml

Lines changed: 0 additions & 72 deletions
This file was deleted.

0 commit comments

Comments
 (0)