Enoncé TP 11

/images/k8s.jpeg

TP11 : Helm

🇫🇷 Version Française

Rassembler les Yamls

On va rassembler les fichiers yamls décrivant toutes nos ressources :

  • configuration : secret, configmap, namespace
  • mongo: statefulSet & service
  • frontend: deployment & service
  • backend : deployment & service

l’arborescence d’un chart helm est conçu comme cela:

helm/
  Chart.yaml
  values.yaml
  (.helmignore)
  (OWNERS)
  templates/
     (_helpers.tpl)
     (NOTE.txt)
     someYamlFile.yaml
     someOtherYamlFile.yaml

les fichiers entre parenthéses sont optionels.

Variabilisation

Les variables que l’on veut variabiliser doivent être remplacés dans nos fichiers YAML.

Les variables sont stockés sous format clé: valeur dans le fichier values.yaml, elles seront accessibles dans les fichiers descripteurs des ressources via la syntax : {{ .Values.laVariable }}

Par exemple une variable "form-k8s-dev" deviendra "form-k8s-{{ .Values.env }}"

Dans un premier temps réalisé une premiére version où sera variablisé seulement l’environnement.

tips: la commande helm template ./ permet de voir si notre chart est bien écrit et de simuler la définition de nos ressources sans rien appliquer.

L’application doit pouvoir être installé et rendu accessible via la commande helm install --set env=test --name form-k8s-test ./

Une fois l’application fonctionnel vous pouvez variabilisé tout ce qui vous semble pertinent de variabiliser

Faites en sorte de pouvoir upgrader la version du backend via un --set backend.tag="1.4" et qu’il n’y ai bien sûr que votre backend qui en soit impacté.

🇬🇧 English version

Gather the Yamls

We will collect the yaml files describing all our resources:

  • configuration: secret, configmap, namespace
  • mongo: statefulSet & service
  • frontend: deployment & service
  • backend: deployment & service

the tree of a chart helm is designed like this:

helm/
  Chart.yaml
  values.yaml
  (.helmignore)
  (OWNERS)
  templates/
     (_helpers.tpl)
     (NOTE.txt)
     someYamlFile.yaml
     someOtherYamlFile.yaml

files in parentheses are optional.

Variabilization

The variables that we want to vary must be replaced in our YAML files.

The variables are stored in key: value format in the values.yaml file, they will be accessible in the resource descriptor files via the syntax: {{ .Values.laVariable }}

For example a variable "form-k8s-dev" will become "form-k8s-{{ .Values.env }}"

Firstly produced a first version where only the environment will be variable.

tips: the helm template ./ command allows you to see if our chart is well written and to simulate the definition of our resources without applying anything.

The application must be able to be installed and made accessible via the command helm install --set env=test --name form-k8s-test ./

Once the application is functional, you can vary everything that seems relevant to you

Make sure you can upgrade the backend version via a --set backend.tag="1.4" and that of course only your backend is impacted.

Latest Posts