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.