# Helm Charts The provided helm chart has the following structure: ``` helm chart/ |_ pv.yaml |_ keycloak-admin-secret.yaml |_ gamify-it-helm-config/ |_ .helmignore |_ Chart.yaml |_ values.yaml |_ templates/ |_ NOTES.txt |_ _helpers.tpl |_ backend-deployment.yaml |_ frontend-deployment.yaml |_ hpa.yaml |_ ingress.yaml |_ reverse-proxy-deployment.yaml |_ reverse-proxy-service.yaml |_ services.yaml |_ statefulset.yaml ``` The content of these files will be briefly described here. ### helm chart/ #### pv.yaml This file takes care of the deployment of the persistent volumes. #### keycloak-admin-secret.yaml This file contains the admin credentials for the keycloak admin console. The credentials itself, are stored in the repository secrets. ### gamify-it-helm-config/ #### .helmignore Analog to the `.gitignore` file. It tells helm which files/directories to ignore. #### Chart.yaml This file contains some metadata about the chart. #### values.yaml As previously mentioned this file contains all the environment variables and other data used to deploy the pods. It is structured similar to a `docker-compose.yaml` file, but for all pods at once. ### templates/ #### NOTES.txt This file provisioned by default when creating a helm chart, its information will be displayed after running `helm install`. #### _helpers.tpl This file contains functions to reference values across other files. #### backend-deployment.yaml This file takes care of the deployment of the backend pods, by providing a template after which the pods will be configured. This template will be filled with information from the `values.yaml`. #### frontend-deployment.yaml This file takes care of the deployment of the frontend pods, by providing a template after which the pods will be configured. This template will be filled with information from the `values.yaml`. #### hpa.yaml This file provides a template for autoscaling, meaning the allocation of more computing power or replicas if needed. This is currently disable in the values.yaml. #### ingress.yaml This file manages the external access onto the cluster, it contains rules to redirect requests to the corresponding service. #### reverse-proxy-deployment.yaml This file takes care of the deployment of the nginx reverse proxy, by providing a template after which the pods will be configured. This template will be filled with information from the `values.yaml`. #### reverse-proxy-service.yaml This file configures the reverse proxy, so that it is accessible by other pods within the cluster. #### services.yaml This file configures the pods, so that they are accessible by other pods within the cluster. #### statefulset.yaml This file takes care of the deployment of the database pods, by providing a template after which the pods will be configured. This template will be filled with information from the `values.yaml`. It also creates the persistent volume claims, which links a database to its persistent volume.