Skip to content

Commit e007015

Browse files
authored
feat: Merge pull request #16 from abolfazl8131/add-helm
Add DevOps Gpt Helm Chart
2 parents 1b6bc80 + 6225b29 commit e007015

11 files changed

Lines changed: 231 additions & 0 deletions

File tree

helm/Chart.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v2
2+
name: devopsgpt
3+
description: The Helm chart for DevOps GPT
4+
type: application
5+
version: 1.0.0
6+
appVersion: "1.0.0"

helm/templates/db/_helpers.tpl

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{{- define "db.labels" -}}
2+
app: {{ .Chart.Name }}
3+
component: db-gpt
4+
release: {{ .Release.Name }}
5+
{{- end -}}
6+
7+
{{- define "db.deploymentName" -}}
8+
{{ .Release.Name }}-db
9+
{{- end -}}
10+
11+
{{- define "db.serviceName" -}}
12+
{{ .Release.Name }}-db-service
13+
{{- end -}}
14+
15+
{{- define "db.pvcName" -}}
16+
{{ .Release.Name }}-db-pvc
17+
{{- end -}}
18+
19+
{{- define "db.secretName" -}}
20+
{{ .Release.Name }}-db-secret
21+
{{- end -}}

helm/templates/db/deployment.yaml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ include "db.deploymentName" . }}
5+
labels:
6+
{{- include "db.labels" . | nindent 4 }}
7+
spec:
8+
replicas: {{ .Values.db.replicaCount }}
9+
selector:
10+
matchLabels:
11+
{{- include "db.labels" . | nindent 8 }}
12+
template:
13+
metadata:
14+
labels:
15+
{{- include "db.labels" . | nindent 8 }}
16+
spec:
17+
containers:
18+
- name: {{ include "db.deploymentName" . }}
19+
image: {{ .Values.db.image.repository }}:{{ .Values.db.image.tag }}
20+
ports:
21+
- containerPort: {{ .Values.db.service.targetPort }}
22+
envFrom:
23+
- secretRef:
24+
name: {{ include "db.secretName" . }}
25+
volumeMounts:
26+
- name: data
27+
mountPath: /data/db
28+
volumes:
29+
- name: data
30+
persistentVolumeClaim:
31+
claimName: {{ include "db.pvcName" . }}
32+
{{- if .Values.db.nodeSelector }}
33+
nodeSelector: {{ .Values.db.nodeSelector | toYaml | nindent 8 }}
34+
{{- end }}
35+
36+
{{- if .Values.db.affinity }}
37+
affinity: {{ .Values.db.affinity | toYaml | nindent 8 }}
38+
{{- end }}

helm/templates/db/pvc.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{{- if .Values.db.persistence.enabled }}
2+
apiVersion: v1
3+
kind: PersistentVolumeClaim
4+
metadata:
5+
name: {{ include "db.pvcName" . }}
6+
labels:
7+
{{- include "db.labels" . | nindent 4 }}
8+
spec:
9+
accessModes:
10+
- {{ .Values.db.persistence.accessModes | first | quote }}
11+
resources:
12+
requests:
13+
storage: {{ .Values.db.persistence.size | quote }}
14+
{{- if .Values.db.persistence.storageClass }}
15+
storageClassName: {{ .Values.db.persistence.storageClass | quote }}
16+
{{- end }}
17+
{{- end }}

helm/templates/db/secret.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: {{ include "db.secretName" . }}
5+
labels:
6+
{{- include "db.labels" . | nindent 4 }}
7+
type: Opaque
8+
data:
9+
{{- range $key, $value := .Values.db.environment }}
10+
{{ $key }}: {{ $value | b64enc | quote }}
11+
{{- end }}

helm/templates/db/service.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: {{ include "db.serviceName" . }}
5+
labels:
6+
{{- include "db.labels" . | nindent 4 }}
7+
spec:
8+
type: {{ .Values.db.service.type }}
9+
ports:
10+
- port: {{ .Values.db.service.port }}
11+
targetPort: {{ .Values.db.service.targetPort }}
12+
protocol: {{ .Values.db.service.protocol }}
13+
selector:
14+
{{- include "db.labels" . | nindent 4 }}

helm/templates/web/_helpers.tpl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{{- define "web.labels" -}}
2+
app: {{ .Chart.Name }}
3+
component: web-gpt
4+
release: {{ .Release.Name }}
5+
{{- end -}}
6+
7+
{{- define "web.deploymentName" -}}
8+
{{ .Release.Name }}-web
9+
{{- end -}}
10+
11+
{{- define "web.serviceName" -}}
12+
{{ .Release.Name }}-web-service
13+
{{- end -}}
14+
15+
{{- define "web.secretName" -}}
16+
{{ .Release.Name }}-web-secret
17+
{{- end -}}

helm/templates/web/deployment.yaml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ include "web.deploymentName" . }}
5+
labels:
6+
{{- include "web.labels" . | nindent 4 }}
7+
spec:
8+
replicas: {{ .Values.web.replicaCount }}
9+
selector:
10+
matchLabels:
11+
{{- include "web.labels" . | nindent 8 }}
12+
template:
13+
metadata:
14+
labels:
15+
{{- include "web.labels" . | nindent 8 }}
16+
spec:
17+
containers:
18+
- name: {{ include "web.deploymentName" . }}
19+
image: {{ .Values.web.image.repository }}:{{ .Values.web.image.tag }}
20+
command: ["fastapi", "run", "app/main.py", "--port", "8080"]
21+
ports:
22+
- containerPort: {{ .Values.web.service.targetPort }}
23+
envFrom:
24+
- secretRef:
25+
name: {{ include "web.secretName" . }}
26+
- secretRef:
27+
name: {{ include "db.secretName" . }}
28+
env:
29+
- name: MONGO_HOST
30+
value: {{ include "db.serviceName" . }}
31+
- name: MONGO_PORT
32+
value: "{{ .Values.db.service.port }}"
33+
{{- if .Values.web.nodeSelector }}
34+
nodeSelector: {{ .Values.web.nodeSelector | toYaml | nindent 8 }}
35+
{{- end }}
36+
37+
{{- if .Values.web.affinity }}
38+
affinity: {{ .Values.web.affinity | toYaml | nindent 8 }}
39+
{{- end }}

helm/templates/web/secret.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: {{ include "web.secretName" . }}
5+
labels:
6+
{{- include "web.labels" . | nindent 4 }}
7+
type: Opaque
8+
data:
9+
{{- range $key, $value := .Values.web.environment }}
10+
{{ $key }}: {{ $value | b64enc | quote }}
11+
{{- end }}

helm/templates/web/service.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: {{ include "web.serviceName" . }}
5+
labels:
6+
{{- include "web.labels" . | nindent 4 }}
7+
spec:
8+
type: {{ .Values.web.service.type }}
9+
ports:
10+
- port: {{ .Values.web.service.port }}
11+
targetPort: {{ .Values.web.service.targetPort }}
12+
protocol: {{ .Values.web.service.protocol }}
13+
selector:
14+
{{- include "web.labels" . | nindent 4 }}

0 commit comments

Comments
 (0)