diff --git a/cloud_computing_helm/.helmignore b/cloud_computing_helm/.helmignore
new file mode 100644
index 0000000000000000000000000000000000000000..0e8a0eb36f4ca2c939201c0d54b5d82a1ea34778
--- /dev/null
+++ b/cloud_computing_helm/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/cloud_computing_helm/Chart.yaml b/cloud_computing_helm/Chart.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e97fb5310341bb95531e248702aa7dde3feee7e0
--- /dev/null
+++ b/cloud_computing_helm/Chart.yaml
@@ -0,0 +1,24 @@
+apiVersion: v2
+name: cloud_computing_helm
+description: A Helm chart for Kubernetes
+
+# A chart can be either an 'application' or a 'library' chart.
+#
+# Application charts are a collection of templates that can be packaged into versioned archives
+# to be deployed.
+#
+# Library charts provide useful utilities or functions for the chart developer. They're included as
+# a dependency of application charts to inject those utilities and functions into the rendering
+# pipeline. Library charts do not define any templates and therefore cannot be deployed.
+type: application
+
+# This is the chart version. This version number should be incremented each time you make changes
+# to the chart and its templates, including the app version.
+# Versions are expected to follow Semantic Versioning (https://semver.org/)
+version: 0.1.0
+
+# This is the version number of the application being deployed. This version number should be
+# incremented each time you make changes to the application. Versions are not expected to
+# follow Semantic Versioning. They should reflect the version the application is using.
+# It is recommended to use it with quotes.
+appVersion: "1.16.0"
diff --git a/cloud_computing_helm/templates/NOTES.txt b/cloud_computing_helm/templates/NOTES.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f75c3cc187855bc3c21207c4d7a4a979149434e9
--- /dev/null
+++ b/cloud_computing_helm/templates/NOTES.txt
@@ -0,0 +1,22 @@
+1. Get the application URL by running these commands:
+{{- if .Values.ingress.enabled }}
+{{- range $host := .Values.ingress.hosts }}
+  {{- range .paths }}
+  http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
+  {{- end }}
+{{- end }}
+{{- else if contains "NodePort" .Values.service.type }}
+  export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "cloud_computing_helm.fullname" . }})
+  export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
+  echo http://$NODE_IP:$NODE_PORT
+{{- else if contains "LoadBalancer" .Values.service.type }}
+     NOTE: It may take a few minutes for the LoadBalancer IP to be available.
+           You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "cloud_computing_helm.fullname" . }}'
+  export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "cloud_computing_helm.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
+  echo http://$SERVICE_IP:{{ .Values.service.port }}
+{{- else if contains "ClusterIP" .Values.service.type }}
+  export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "cloud_computing_helm.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
+  export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
+  echo "Visit http://127.0.0.1:8080 to use your application"
+  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
+{{- end }}
diff --git a/cloud_computing_helm/templates/_helpers.tpl b/cloud_computing_helm/templates/_helpers.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..91d957f0a52129c33286c5f324c052ba4f5f98a5
--- /dev/null
+++ b/cloud_computing_helm/templates/_helpers.tpl
@@ -0,0 +1,62 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "cloud_computing_helm.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "cloud_computing_helm.fullname" -}}
+{{- if .Values.fullnameOverride }}
+{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $name := default .Chart.Name .Values.nameOverride }}
+{{- if contains $name .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "cloud_computing_helm.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "cloud_computing_helm.labels" -}}
+helm.sh/chart: {{ include "cloud_computing_helm.chart" . }}
+{{ include "cloud_computing_helm.selectorLabels" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+{{- end }}
+
+{{/*
+Selector labels
+*/}}
+{{- define "cloud_computing_helm.selectorLabels" -}}
+app.kubernetes.io/name: {{ include "cloud_computing_helm.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
+{{- end }}
+
+{{/*
+Create the name of the service account to use
+*/}}
+{{- define "cloud_computing_helm.serviceAccountName" -}}
+{{- if .Values.serviceAccount.create }}
+{{- default (include "cloud_computing_helm.fullname" .) .Values.serviceAccount.name }}
+{{- else }}
+{{- default "default" .Values.serviceAccount.name }}
+{{- end }}
+{{- end }}
diff --git a/cloud_computing_helm/templates/deployment.yaml b/cloud_computing_helm/templates/deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5347fe8e2add48b8095da38a678102a274e5123b
--- /dev/null
+++ b/cloud_computing_helm/templates/deployment.yaml
@@ -0,0 +1,61 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: {{ include "cloud_computing_helm.fullname" . }}
+  labels:
+    {{- include "cloud_computing_helm.labels" . | nindent 4 }}
+spec:
+  {{- if not .Values.autoscaling.enabled }}
+  replicas: {{ .Values.replicaCount }}
+  {{- end }}
+  selector:
+    matchLabels:
+      {{- include "cloud_computing_helm.selectorLabels" . | nindent 6 }}
+  template:
+    metadata:
+      {{- with .Values.podAnnotations }}
+      annotations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      labels:
+        {{- include "cloud_computing_helm.selectorLabels" . | nindent 8 }}
+    spec:
+      {{- with .Values.imagePullSecrets }}
+      imagePullSecrets:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      serviceAccountName: {{ include "cloud_computing_helm.serviceAccountName" . }}
+      securityContext:
+        {{- toYaml .Values.podSecurityContext | nindent 8 }}
+      containers:
+        - name: {{ .Chart.Name }}
+          securityContext:
+            {{- toYaml .Values.securityContext | nindent 12 }}
+          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          ports:
+            - name: http
+              containerPort: 80
+              protocol: TCP
+          livenessProbe:
+            httpGet:
+              path: /
+              port: http
+          readinessProbe:
+            httpGet:
+              path: /
+              port: http
+          resources:
+            {{- toYaml .Values.resources | nindent 12 }}
+      {{- with .Values.nodeSelector }}
+      nodeSelector:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.affinity }}
+      affinity:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
+      {{- with .Values.tolerations }}
+      tolerations:
+        {{- toYaml . | nindent 8 }}
+      {{- end }}
diff --git a/cloud_computing_helm/templates/grafana-data-persistentvolumeclaim.yaml b/cloud_computing_helm/templates/grafana-data-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a7faf70b8068149287674ef887a084928691c53b
--- /dev/null
+++ b/cloud_computing_helm/templates/grafana-data-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: grafana-data
+  name: grafana-data
+spec:
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/cloud_computing_helm/templates/grafana-deployment.yaml b/cloud_computing_helm/templates/grafana-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..266449f05cfff0ec2380eab5784a2f83d6b7a0b2
--- /dev/null
+++ b/cloud_computing_helm/templates/grafana-deployment.yaml
@@ -0,0 +1,41 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: grafana
+  name: grafana
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: grafana
+  strategy:
+    type: Recreate
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: grafana
+    spec:
+      containers:
+        - image: grafana/grafana:latest
+          name: grafana
+          ports:
+            - containerPort: 3000
+          resources: {}
+          volumeMounts:
+            - mountPath: /var/lib/grafana
+              name: grafana-data
+      restartPolicy: Always
+      volumes:
+        - name: grafana-data
+          persistentVolumeClaim:
+            claimName: grafana-data
+status: {}
diff --git a/cloud_computing_helm/templates/grafana-service.yaml b/cloud_computing_helm/templates/grafana-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9e9dee6d5a5aed8c360270f3a09ad5aef0d75fc8
--- /dev/null
+++ b/cloud_computing_helm/templates/grafana-service.yaml
@@ -0,0 +1,22 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: grafana
+  name: grafana
+spec:
+  ports:
+    - name: "3000"
+      port: 3000
+      targetPort: 3000
+    - name: 3000-tcp
+      port: 3000
+      targetPort: 3000
+  selector:
+    io.kompose.service: grafana
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/hpa.yaml b/cloud_computing_helm/templates/hpa.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..bf8042c01eace3100c535e027a84de049c64a5ab
--- /dev/null
+++ b/cloud_computing_helm/templates/hpa.yaml
@@ -0,0 +1,28 @@
+{{- if .Values.autoscaling.enabled }}
+apiVersion: autoscaling/v2beta1
+kind: HorizontalPodAutoscaler
+metadata:
+  name: {{ include "cloud_computing_helm.fullname" . }}
+  labels:
+    {{- include "cloud_computing_helm.labels" . | nindent 4 }}
+spec:
+  scaleTargetRef:
+    apiVersion: apps/v1
+    kind: Deployment
+    name: {{ include "cloud_computing_helm.fullname" . }}
+  minReplicas: {{ .Values.autoscaling.minReplicas }}
+  maxReplicas: {{ .Values.autoscaling.maxReplicas }}
+  metrics:
+    {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
+    - type: Resource
+      resource:
+        name: cpu
+        targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
+    {{- end }}
+    {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
+    - type: Resource
+      resource:
+        name: memory
+        targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
+    {{- end }}
+{{- end }}
diff --git a/cloud_computing_helm/templates/ingress.yaml b/cloud_computing_helm/templates/ingress.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..53590ddee55168004dbb5be10d932fc0c48a670d
--- /dev/null
+++ b/cloud_computing_helm/templates/ingress.yaml
@@ -0,0 +1,61 @@
+{{- if .Values.ingress.enabled -}}
+{{- $fullName := include "cloud_computing_helm.fullname" . -}}
+{{- $svcPort := .Values.service.port -}}
+{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
+  {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
+  {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
+  {{- end }}
+{{- end }}
+{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1
+{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
+apiVersion: networking.k8s.io/v1beta1
+{{- else -}}
+apiVersion: extensions/v1beta1
+{{- end }}
+kind: Ingress
+metadata:
+  name: {{ $fullName }}
+  labels:
+    {{- include "cloud_computing_helm.labels" . | nindent 4 }}
+  {{- with .Values.ingress.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+spec:
+  {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
+  ingressClassName: {{ .Values.ingress.className }}
+  {{- end }}
+  {{- if .Values.ingress.tls }}
+  tls:
+    {{- range .Values.ingress.tls }}
+    - hosts:
+        {{- range .hosts }}
+        - {{ . | quote }}
+        {{- end }}
+      secretName: {{ .secretName }}
+    {{- end }}
+  {{- end }}
+  rules:
+    {{- range .Values.ingress.hosts }}
+    - host: {{ .host | quote }}
+      http:
+        paths:
+          {{- range .paths }}
+          - path: {{ .path }}
+            {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
+            pathType: {{ .pathType }}
+            {{- end }}
+            backend:
+              {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
+              service:
+                name: {{ $fullName }}
+                port:
+                  number: {{ $svcPort }}
+              {{- else }}
+              serviceName: {{ $fullName }}
+              servicePort: {{ $svcPort }}
+              {{- end }}
+          {{- end }}
+    {{- end }}
+{{- end }}
diff --git a/cloud_computing_helm/templates/mongodb-deployment.yaml b/cloud_computing_helm/templates/mongodb-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9b3a20e456c4f3fb248e9a505ed2121f3aa47346
--- /dev/null
+++ b/cloud_computing_helm/templates/mongodb-deployment.yaml
@@ -0,0 +1,43 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: mongodb
+  name: mongodb
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: mongodb
+  strategy:
+    type: Recreate
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: mongodb
+    spec:
+      containers:
+        - args:
+            - --auth
+          image: mongo
+          name: mongodb
+          ports:
+            - containerPort: 27017
+          resources: {}
+          volumeMounts:
+            - mountPath: /data/db
+              name: mongodb
+      restartPolicy: Always
+      volumes:
+        - name: mongodb
+          persistentVolumeClaim:
+            claimName: mongodb
+status: {}
diff --git a/cloud_computing_helm/templates/mongodb-exporter-deployment.yaml b/cloud_computing_helm/templates/mongodb-exporter-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..dfde1f0e8bf50b63f4e8365fcbc4c4b91954dae2
--- /dev/null
+++ b/cloud_computing_helm/templates/mongodb-exporter-deployment.yaml
@@ -0,0 +1,35 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: mongodb-exporter
+  name: mongodb-exporter
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: mongodb-exporter
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: mongodb-exporter
+    spec:
+      containers:
+        - args:
+            - --mongodb.uri=mongodb://mongodb:27017/cloudComputing/
+          image: percona/mongodb_exporter:2.32.0
+          name: mongodb-exporter
+          ports:
+            - containerPort: 9216
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/cloud_computing_helm/templates/mongodb-exporter-service.yaml b/cloud_computing_helm/templates/mongodb-exporter-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..31189aee123f240edb7f3a69f91dadaa1dd28211
--- /dev/null
+++ b/cloud_computing_helm/templates/mongodb-exporter-service.yaml
@@ -0,0 +1,22 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: mongodb-exporter
+  name: mongodb-exporter
+spec:
+  ports:
+    - name: "9216"
+      port: 9216
+      targetPort: 9216
+    - name: 9216-tcp
+      port: 9216
+      targetPort: 9216
+  selector:
+    io.kompose.service: mongodb-exporter
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/mongodb-persistentvolumeclaim.yaml b/cloud_computing_helm/templates/mongodb-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e855fee83ef0ca6e4edc7fe1e0032baf0f1d8de0
--- /dev/null
+++ b/cloud_computing_helm/templates/mongodb-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: mongodb
+  name: mongodb
+spec:
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/cloud_computing_helm/templates/mongodb-service.yaml b/cloud_computing_helm/templates/mongodb-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..41c1218496a3568b413c70fcd635dea958d7b9f6
--- /dev/null
+++ b/cloud_computing_helm/templates/mongodb-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: mongodb
+  name: mongodb
+spec:
+  ports:
+    - name: "27017"
+      port: 27017
+      targetPort: 27017
+  selector:
+    io.kompose.service: mongodb
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/nginx-claim0-persistentvolumeclaim.yaml b/cloud_computing_helm/templates/nginx-claim0-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..964fa9e55782b4f8c70d5b613a28e6024ba4729c
--- /dev/null
+++ b/cloud_computing_helm/templates/nginx-claim0-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: nginx-claim0
+  name: nginx-claim0
+spec:
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/cloud_computing_helm/templates/nginx-deployment.yaml b/cloud_computing_helm/templates/nginx-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0698e4a128ae37c8f4664320b19c10bf251a085b
--- /dev/null
+++ b/cloud_computing_helm/templates/nginx-deployment.yaml
@@ -0,0 +1,42 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: nginx
+  name: nginx
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: nginx
+  strategy:
+    type: Recreate
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: nginx
+    spec:
+      containers:
+        - image: nginx
+          name: nginx
+          ports:
+            - containerPort: 80
+            - containerPort: 443
+          resources: {}
+          volumeMounts:
+            - mountPath: /etc/nginx/ssl
+              name: nginx-claim0
+      restartPolicy: Always
+      volumes:
+        - name: nginx-claim0
+          persistentVolumeClaim:
+            claimName: nginx-claim0
+status: {}
diff --git a/cloud_computing_helm/templates/nginx-service.yaml b/cloud_computing_helm/templates/nginx-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ab48fce22d8b2803a24f92a43afc88da56ea1ed3
--- /dev/null
+++ b/cloud_computing_helm/templates/nginx-service.yaml
@@ -0,0 +1,22 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: nginx
+  name: nginx
+spec:
+  ports:
+    - name: "3600"
+      port: 3600
+      targetPort: 80
+    - name: "443"
+      port: 443
+      targetPort: 443
+  selector:
+    io.kompose.service: nginx
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/node-exporter-claim0-persistentvolumeclaim.yaml b/cloud_computing_helm/templates/node-exporter-claim0-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..dae8469780f1d5e73309a4cb141435f5c8a01b90
--- /dev/null
+++ b/cloud_computing_helm/templates/node-exporter-claim0-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: node-exporter-claim0
+  name: node-exporter-claim0
+spec:
+  accessModes:
+    - ReadOnlyMany
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/cloud_computing_helm/templates/node-exporter-claim1-persistentvolumeclaim.yaml b/cloud_computing_helm/templates/node-exporter-claim1-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..4e17437376efb5aba04bc1eb4443a5defc9e2e36
--- /dev/null
+++ b/cloud_computing_helm/templates/node-exporter-claim1-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: node-exporter-claim1
+  name: node-exporter-claim1
+spec:
+  accessModes:
+    - ReadOnlyMany
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/cloud_computing_helm/templates/node-exporter-claim2-persistentvolumeclaim.yaml b/cloud_computing_helm/templates/node-exporter-claim2-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e828a5d26d85db21567cc4e212a46e4df3e59788
--- /dev/null
+++ b/cloud_computing_helm/templates/node-exporter-claim2-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: node-exporter-claim2
+  name: node-exporter-claim2
+spec:
+  accessModes:
+    - ReadOnlyMany
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/cloud_computing_helm/templates/node-exporter-daemonset.yaml b/cloud_computing_helm/templates/node-exporter-daemonset.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e8cfde7ef9bcc90c59e52fe237151d41487de68d
--- /dev/null
+++ b/cloud_computing_helm/templates/node-exporter-daemonset.yaml
@@ -0,0 +1,60 @@
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: node-exporter
+  name: node-exporter
+spec:
+  selector:
+    matchLabels:
+      io.kompose.service: node-exporter
+  template:
+    metadata:
+      creationTimestamp: null
+      labels:
+        io.kompose.service: node-exporter
+    spec:
+      containers:
+        - args:
+            - --path.procfs=/host/proc
+            - --path.sysfs=/host/sys
+            - --collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($|/)
+          image: prom/node-exporter:latest
+          name: node-exporter
+          ports:
+            - containerPort: 9100
+          resources: {}
+          volumeMounts:
+            - mountPath: /host/proc
+              name: node-exporter-claim0
+              readOnly: true
+            - mountPath: /host/sys
+              name: node-exporter-claim1
+              readOnly: true
+            - mountPath: /rootfs
+              name: node-exporter-claim2
+              readOnly: true
+      restartPolicy: Always
+      volumes:
+        - name: node-exporter-claim0
+          persistentVolumeClaim:
+            claimName: node-exporter-claim0
+            readOnly: true
+        - name: node-exporter-claim1
+          persistentVolumeClaim:
+            claimName: node-exporter-claim1
+            readOnly: true
+        - name: node-exporter-claim2
+          persistentVolumeClaim:
+            claimName: node-exporter-claim2
+            readOnly: true
+  updateStrategy: {}
+status:
+  currentNumberScheduled: 0
+  desiredNumberScheduled: 0
+  numberMisscheduled: 0
+  numberReady: 0
diff --git a/cloud_computing_helm/templates/node-exporter-service.yaml b/cloud_computing_helm/templates/node-exporter-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..259351e89d271f40b5c4354c332afdccc5ca9622
--- /dev/null
+++ b/cloud_computing_helm/templates/node-exporter-service.yaml
@@ -0,0 +1,22 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: node-exporter
+  name: node-exporter
+spec:
+  ports:
+    - name: "9100"
+      port: 9100
+      targetPort: 9100
+    - name: 9100-tcp
+      port: 9100
+      targetPort: 9100
+  selector:
+    io.kompose.service: node-exporter
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/prometheus-claim0-persistentvolumeclaim.yaml b/cloud_computing_helm/templates/prometheus-claim0-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..282635cba364f056d6274ef549e8eab8e403d7a2
--- /dev/null
+++ b/cloud_computing_helm/templates/prometheus-claim0-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: prometheus-claim0
+  name: prometheus-claim0
+spec:
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/cloud_computing_helm/templates/prometheus-data-persistentvolumeclaim.yaml b/cloud_computing_helm/templates/prometheus-data-persistentvolumeclaim.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3f80692e2040bd3b4d72ece40c9d129db837bfbb
--- /dev/null
+++ b/cloud_computing_helm/templates/prometheus-data-persistentvolumeclaim.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  creationTimestamp: null
+  labels:
+    io.kompose.service: prometheus-data
+  name: prometheus-data
+spec:
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 100Mi
+status: {}
diff --git a/cloud_computing_helm/templates/prometheus-deployment.yaml b/cloud_computing_helm/templates/prometheus-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f9e6b2e006af25c3391f88380f2424b62b239e90
--- /dev/null
+++ b/cloud_computing_helm/templates/prometheus-deployment.yaml
@@ -0,0 +1,48 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: prometheus
+  name: prometheus
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: prometheus
+  strategy:
+    type: Recreate
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: prometheus
+    spec:
+      containers:
+        - args:
+            - --config.file=/etc/prometheus/prometheus.yml
+          image: prom/prometheus:latest
+          name: prometheus
+          ports:
+            - containerPort: 9090
+          resources: {}
+          volumeMounts:
+            - mountPath: /etc/prometheus
+              name: prometheus-claim0
+            - mountPath: /prometheus
+              name: prometheus-data
+      restartPolicy: Always
+      volumes:
+        - name: prometheus-claim0
+          persistentVolumeClaim:
+            claimName: prometheus-claim0
+        - name: prometheus-data
+          persistentVolumeClaim:
+            claimName: prometheus-data
+status: {}
diff --git a/cloud_computing_helm/templates/prometheus-service.yaml b/cloud_computing_helm/templates/prometheus-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..4eb491637e106176a30c104b531c97679a9edb50
--- /dev/null
+++ b/cloud_computing_helm/templates/prometheus-service.yaml
@@ -0,0 +1,22 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: prometheus
+  name: prometheus
+spec:
+  ports:
+    - name: "9090"
+      port: 9090
+      targetPort: 9090
+    - name: 9090-tcp
+      port: 9090
+      targetPort: 9090
+  selector:
+    io.kompose.service: prometheus
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/redis-server-deployment.yaml b/cloud_computing_helm/templates/redis-server-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..dc1fdd633f69cf4cc49b65b5d6802a687e838332
--- /dev/null
+++ b/cloud_computing_helm/templates/redis-server-deployment.yaml
@@ -0,0 +1,33 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: redis-server
+  name: redis-server
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: redis-server
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: redis-server
+    spec:
+      containers:
+        - image: redis
+          name: redis-server
+          ports:
+            - containerPort: 6379
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/cloud_computing_helm/templates/redis-server-service.yaml b/cloud_computing_helm/templates/redis-server-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2123c12c1920e406d8e4f58504fb4e3826c1e892
--- /dev/null
+++ b/cloud_computing_helm/templates/redis-server-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: redis-server
+  name: redis-server
+spec:
+  ports:
+    - name: "6379"
+      port: 6379
+      targetPort: 6379
+  selector:
+    io.kompose.service: redis-server
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/server-george-deployment.yaml b/cloud_computing_helm/templates/server-george-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5a34da7f5869d5e031d96b3a8031baf08492b12b
--- /dev/null
+++ b/cloud_computing_helm/templates/server-george-deployment.yaml
@@ -0,0 +1,38 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: server-george
+  name: server-george
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: server-george
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: server-george
+    spec:
+      containers:
+        - env:
+            - name: NAME
+              value: george
+            - name: PORT
+              value: "3603"
+          image: server-george
+          name: server-george
+          ports:
+            - containerPort: 3603
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/cloud_computing_helm/templates/server-george-service.yaml b/cloud_computing_helm/templates/server-george-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a189acf9e046d7f9296d91e85cdc38dede25b37d
--- /dev/null
+++ b/cloud_computing_helm/templates/server-george-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: server-george
+  name: server-george
+spec:
+  ports:
+    - name: "3603"
+      port: 3603
+      targetPort: 3603
+  selector:
+    io.kompose.service: server-george
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/server-john-deployment.yaml b/cloud_computing_helm/templates/server-john-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..33d9af7d63d56b6c50e58b3f9112772f26adf422
--- /dev/null
+++ b/cloud_computing_helm/templates/server-john-deployment.yaml
@@ -0,0 +1,38 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: server-john
+  name: server-john
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: server-john
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: server-john
+    spec:
+      containers:
+        - env:
+            - name: NAME
+              value: john
+            - name: PORT
+              value: "3601"
+          image: server-john
+          name: server-john
+          ports:
+            - containerPort: 3601
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/cloud_computing_helm/templates/server-john-service.yaml b/cloud_computing_helm/templates/server-john-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..fcff948d22fc87c4864ae14b84e4db607537b6dd
--- /dev/null
+++ b/cloud_computing_helm/templates/server-john-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: server-john
+  name: server-john
+spec:
+  ports:
+    - name: "3601"
+      port: 3601
+      targetPort: 3601
+  selector:
+    io.kompose.service: server-john
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/server-paul-deployment.yaml b/cloud_computing_helm/templates/server-paul-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..2795dacdea49726362934ac41944f8f75d9fb14b
--- /dev/null
+++ b/cloud_computing_helm/templates/server-paul-deployment.yaml
@@ -0,0 +1,38 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: server-paul
+  name: server-paul
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: server-paul
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: server-paul
+    spec:
+      containers:
+        - env:
+            - name: NAME
+              value: paul
+            - name: PORT
+              value: "3602"
+          image: server-paul
+          name: server-paul
+          ports:
+            - containerPort: 3602
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/cloud_computing_helm/templates/server-paul-service.yaml b/cloud_computing_helm/templates/server-paul-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..973ee85b6952ffe34aa419589bcc949d913968bd
--- /dev/null
+++ b/cloud_computing_helm/templates/server-paul-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: server-paul
+  name: server-paul
+spec:
+  ports:
+    - name: "3602"
+      port: 3602
+      targetPort: 3602
+  selector:
+    io.kompose.service: server-paul
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/server-ringo-deployment.yaml b/cloud_computing_helm/templates/server-ringo-deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a2f4acbcc4f165d4f93f31673dd8d92b1ca1508d
--- /dev/null
+++ b/cloud_computing_helm/templates/server-ringo-deployment.yaml
@@ -0,0 +1,38 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: server-ringo
+  name: server-ringo
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      io.kompose.service: server-ringo
+  strategy: {}
+  template:
+    metadata:
+      annotations:
+        kompose.cmd: kompose convert -f docker-compose.yaml
+        kompose.version: 1.27.0 (HEAD)
+      creationTimestamp: null
+      labels:
+        io.kompose.service: server-ringo
+    spec:
+      containers:
+        - env:
+            - name: NAME
+              value: ringo
+            - name: PORT
+              value: "3604"
+          image: server-ringo
+          name: server-ringo
+          ports:
+            - containerPort: 3604
+          resources: {}
+      restartPolicy: Always
+status: {}
diff --git a/cloud_computing_helm/templates/server-ringo-service.yaml b/cloud_computing_helm/templates/server-ringo-service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6b783ed025a991f96a821f7085c84cfb699ea81c
--- /dev/null
+++ b/cloud_computing_helm/templates/server-ringo-service.yaml
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Service
+metadata:
+  annotations:
+    kompose.cmd: kompose convert -f docker-compose.yaml
+    kompose.version: 1.27.0 (HEAD)
+  creationTimestamp: null
+  labels:
+    io.kompose.service: server-ringo
+  name: server-ringo
+spec:
+  ports:
+    - name: "3604"
+      port: 3604
+      targetPort: 3604
+  selector:
+    io.kompose.service: server-ringo
+status:
+  loadBalancer: {}
diff --git a/cloud_computing_helm/templates/service.yaml b/cloud_computing_helm/templates/service.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..815b87b35c098cf734ff5ff572553085c15a2a0a
--- /dev/null
+++ b/cloud_computing_helm/templates/service.yaml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ include "cloud_computing_helm.fullname" . }}
+  labels:
+    {{- include "cloud_computing_helm.labels" . | nindent 4 }}
+spec:
+  type: {{ .Values.service.type }}
+  ports:
+    - port: {{ .Values.service.port }}
+      targetPort: http
+      protocol: TCP
+      name: http
+  selector:
+    {{- include "cloud_computing_helm.selectorLabels" . | nindent 4 }}
diff --git a/cloud_computing_helm/templates/serviceaccount.yaml b/cloud_computing_helm/templates/serviceaccount.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d894d873a2befd36a1b02de2843e859f813d0317
--- /dev/null
+++ b/cloud_computing_helm/templates/serviceaccount.yaml
@@ -0,0 +1,12 @@
+{{- if .Values.serviceAccount.create -}}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: {{ include "cloud_computing_helm.serviceAccountName" . }}
+  labels:
+    {{- include "cloud_computing_helm.labels" . | nindent 4 }}
+  {{- with .Values.serviceAccount.annotations }}
+  annotations:
+    {{- toYaml . | nindent 4 }}
+  {{- end }}
+{{- end }}
diff --git a/cloud_computing_helm/templates/tests/test-connection.yaml b/cloud_computing_helm/templates/tests/test-connection.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cd14dbc8d1f87c0dff5a055eec969b0ecaf40f9a
--- /dev/null
+++ b/cloud_computing_helm/templates/tests/test-connection.yaml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Pod
+metadata:
+  name: "{{ include "cloud_computing_helm.fullname" . }}-test-connection"
+  labels:
+    {{- include "cloud_computing_helm.labels" . | nindent 4 }}
+  annotations:
+    "helm.sh/hook": test
+spec:
+  containers:
+    - name: wget
+      image: busybox
+      command: ['wget']
+      args: ['{{ include "cloud_computing_helm.fullname" . }}:{{ .Values.service.port }}']
+  restartPolicy: Never
diff --git a/cloud_computing_helm/values.yaml b/cloud_computing_helm/values.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..bf57df3e9ad6b11f0d613b497d27c6340064c571
--- /dev/null
+++ b/cloud_computing_helm/values.yaml
@@ -0,0 +1,82 @@
+# Default values for cloud_computing_helm.
+# This is a YAML-formatted file.
+# Declare variables to be passed into your templates.
+
+replicaCount: 1
+
+image:
+  repository: nginx
+  pullPolicy: IfNotPresent
+  # Overrides the image tag whose default is the chart appVersion.
+  tag: ""
+
+imagePullSecrets: []
+nameOverride: ""
+fullnameOverride: ""
+
+serviceAccount:
+  # Specifies whether a service account should be created
+  create: true
+  # Annotations to add to the service account
+  annotations: {}
+  # The name of the service account to use.
+  # If not set and create is true, a name is generated using the fullname template
+  name: ""
+
+podAnnotations: {}
+
+podSecurityContext: {}
+  # fsGroup: 2000
+
+securityContext: {}
+  # capabilities:
+  #   drop:
+  #   - ALL
+  # readOnlyRootFilesystem: true
+  # runAsNonRoot: true
+  # runAsUser: 1000
+
+service:
+  type: ClusterIP
+  port: 80
+
+ingress:
+  enabled: false
+  className: ""
+  annotations: {}
+    # kubernetes.io/ingress.class: nginx
+    # kubernetes.io/tls-acme: "true"
+  hosts:
+    - host: chart-example.local
+      paths:
+        - path: /
+          pathType: ImplementationSpecific
+  tls: []
+  #  - secretName: chart-example-tls
+  #    hosts:
+  #      - chart-example.local
+
+resources: {}
+  # We usually recommend not to specify default resources and to leave this as a conscious
+  # choice for the user. This also increases chances charts run on environments with little
+  # resources, such as Minikube. If you do want to specify resources, uncomment the following
+  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
+  # limits:
+  #   cpu: 100m
+  #   memory: 128Mi
+  # requests:
+  #   cpu: 100m
+  #   memory: 128Mi
+
+autoscaling:
+  enabled: false
+  minReplicas: 1
+  maxReplicas: 100
+  targetCPUUtilizationPercentage: 80
+  # targetMemoryUtilizationPercentage: 80
+
+nodeSelector: {}
+
+tolerations: []
+
+affinity: {}
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 1983ad4622f9443b21901a598c6c21ee73154ef0..77bf1218f8385718f51dec6715c57c41d06e843c 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -9,6 +9,8 @@ services:
       - server-paul
       - server-george
       - server-ringo
+    # ports blablaXX:blablaYY exposed den Port XX zur Hostmaschine yyy, dmait ist der port auf der Hostmaschine zugänglich. Wenn man von ausßen in die Dockerwelt will.
+    # mit expose: 9090 nur der Port 9090 im Dockerumfeld is anwählbar. 
     ports:
       - "3600:80"
       - "443:443"
@@ -76,6 +78,7 @@ services:
   node-exporter:
     image: prom/node-exporter:latest
     container_name: node-exporter
+    # Ports auskommentieren
     ports:
       - 9100:9100
     restart: unless-stopped
@@ -100,6 +103,7 @@ services:
   mongodb-exporter:
     image: percona/mongodb_exporter:2.32.0
     container_name: mongodb-exporter
+    # Ports auskommentieren, expose ist ja da
     ports:
       - "9216:9216"
     expose: 
@@ -116,6 +120,7 @@ services:
   prometheus:
     image: prom/prometheus:latest
     container_name: prometheus
+    # Ports auskommentieren, expose ist ja da
     ports:
       - "9090:9090"
     expose: 
@@ -134,6 +139,7 @@ services:
   grafana:
     image: grafana/grafana:latest
     container_name: grafana
+    # Ports auskommentieren, expose ist ja da
     ports:
       - "3000:3000"
     expose: 
@@ -146,6 +152,7 @@ services:
     
   mongodb:
     image: mongo
+    # Ports auskommentieren, expose mit 27017 rein
     ports:
       - 27017:27017
     volumes:
diff --git "a/presentation_diagrams_documents/Exercise3/Pr\303\244sentation_Exercise3.pptx" "b/presentation_diagrams_documents/Exercise3/Pr\303\244sentation_Exercise3.pptx"
index 2f490d4ba45b14bb9abcf5d3205ebf387388970e..bbfe51016d1d045a34bf500803d118f5395a5a3f 100644
Binary files "a/presentation_diagrams_documents/Exercise3/Pr\303\244sentation_Exercise3.pptx" and "b/presentation_diagrams_documents/Exercise3/Pr\303\244sentation_Exercise3.pptx" differ
diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml
index b29198492d961d6ab4a599c32a2f1933cc15344a..5eeb69059d2e9fc3e04d5667f87122477d775d92 100644
--- a/prometheus/prometheus.yml
+++ b/prometheus/prometheus.yml
@@ -9,19 +9,19 @@ global:
 # Prometheus configuration of targets which will be scraped
 scrape_configs:
 
-  - job_name: 'nginx-3600'
+  - job_name: 'chatroom'
     honor_labels: true
     scrape_interval: 5s
     # scheme: https
     static_configs:
-      - targets: ['192.168.0.230:3600']   
+      - targets: ['134.103.205.145:3600']   
 
   - job_name: 'server-john'
     honor_labels: true
     scrape_interval: 5s
     # scheme: https
     static_configs:
-      - targets: ['192.168.0.230:3601']
+      - targets: ['134.103.205.145:3601']
 
   - job_name: 'server-paul'
     honor_labels: true
@@ -35,14 +35,14 @@ scrape_configs:
     scrape_interval: 5s
     # scheme: https
     static_configs:
-      - targets: ['192.168.0.230:3603']
+      - targets: ['134.103.205.145:3603']
 
   - job_name: 'server-ringo'
     honor_labels: true
     scrape_interval: 5s
     # scheme: https
     static_configs:
-      - targets: ['192.168.0.230:3604']
+      - targets: ['134.103.205.145:3604']
 
 
 # Chat server application