diff --git a/freeleaps/alpha/oneoff/mongodb-chart/.helmignore b/freeleaps/alpha/oneoff/mongodb-chart/.helmignore new file mode 100644 index 00000000..da7f019f --- /dev/null +++ b/freeleaps/alpha/oneoff/mongodb-chart/.helmignore @@ -0,0 +1,5 @@ +# Exclude Helm-specific files +.DS_Store +*.swp +*.bak +*.tmp diff --git a/freeleaps/alpha/oneoff/mongodb-chart/Chart.yaml b/freeleaps/alpha/oneoff/mongodb-chart/Chart.yaml new file mode 100644 index 00000000..52570453 --- /dev/null +++ b/freeleaps/alpha/oneoff/mongodb-chart/Chart.yaml @@ -0,0 +1,5 @@ +apiVersion: v2 +name: mongodb-chart +description: A Helm chart for deploying MongoDB +version: 0.1.0 +appVersion: "latest" diff --git a/freeleaps/alpha/oneoff/mongodb-chart/templates/deployment.yaml b/freeleaps/alpha/oneoff/mongodb-chart/templates/deployment.yaml new file mode 100644 index 00000000..27d434c2 --- /dev/null +++ b/freeleaps/alpha/oneoff/mongodb-chart/templates/deployment.yaml @@ -0,0 +1,31 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mongodb + namespace: {{ .Values.namespace }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: mongodb + template: + metadata: + labels: + app: mongodb + spec: + containers: + - name: mongodb + image: {{ .Values.image.repository }}:{{ .Values.image.tag }} + ports: + - containerPort: {{ .Values.containerPort }} + resources: + limits: + cpu: {{ .Values.resources.limits.cpu }} + memory: {{ .Values.resources.limits.memory }} + volumeMounts: + - mountPath: /data/db + name: mongodb-storage + volumes: + - name: mongodb-storage + persistentVolumeClaim: + claimName: mongodb-pvc \ No newline at end of file diff --git a/freeleaps/alpha/oneoff/mongodb-chart/templates/persistentvolume.yaml b/freeleaps/alpha/oneoff/mongodb-chart/templates/persistentvolume.yaml new file mode 100644 index 00000000..60e8597a --- /dev/null +++ b/freeleaps/alpha/oneoff/mongodb-chart/templates/persistentvolume.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: mongodb-pv + namespace: {{ .Values.namespace }} +spec: + capacity: + storage: {{ .Values.persistence.size }} + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: Retain + storageClassName: {{ .Values.persistence.storageClass }} + hostPath: + path: {{ .Values.persistence.hostPath }} \ No newline at end of file diff --git a/freeleaps/alpha/oneoff/mongodb-chart/templates/persistentvolumeclaim.yaml b/freeleaps/alpha/oneoff/mongodb-chart/templates/persistentvolumeclaim.yaml new file mode 100644 index 00000000..09338091 --- /dev/null +++ b/freeleaps/alpha/oneoff/mongodb-chart/templates/persistentvolumeclaim.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: mongodb-pvc + namespace: {{ .Values.namespace }} +spec: + accessModes: + - {{ .Values.persistence.accessMode }} + resources: + requests: + storage: {{ .Values.persistence.size }} + storageClassName: {{ .Values.persistence.storageClass }} + diff --git a/freeleaps/alpha/oneoff/mongodb-chart/templates/service.yaml b/freeleaps/alpha/oneoff/mongodb-chart/templates/service.yaml new file mode 100644 index 00000000..8037ae46 --- /dev/null +++ b/freeleaps/alpha/oneoff/mongodb-chart/templates/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: mongodb-service + namespace: {{ .Values.namespace }} +spec: + selector: + app: mongodb + ports: + - protocol: TCP + port: {{ .Values.service.port }} + targetPort: {{ .Values.containerPort }} diff --git a/freeleaps/alpha/oneoff/mongodb-chart/values.yaml b/freeleaps/alpha/oneoff/mongodb-chart/values.yaml new file mode 100644 index 00000000..e8c4ef41 --- /dev/null +++ b/freeleaps/alpha/oneoff/mongodb-chart/values.yaml @@ -0,0 +1,18 @@ +namespace: freeleaps-alpha +replicaCount: 1 +resources: + limits: + cpu: "1000m" + memory: "1Gi" +image: + repository: mongo + tag: latest +service: + port: 27017 +containerPort: 27017 +persistence: + enabled: true + storageClass: "local-storage" + accessMode: ReadWriteOnce + size: 10Gi + hostPath: "/mnt/mongodb-data" # Path on the node’s local disk