Helm est un “gestionnaire de paquet” ou vu autrement un “outil de templating avancé” pour k8s qui permet d’installer des applications sans faire des copier-coller pénibles de YAML :
Inconvénient: Helm ajoute souvent de la complexité non nécessaire car les Charts sur internet sont très paramétrables pour de multiples cas d’usages (plein de code qui n’est utile que dans des situations spécifiques).
Helm ne dispense pas de maîtriser l’administration de son cluster.
sudo snap install helm --classic
helm completion bash | sudo tee /etc/bash_completion.d/helm
et relancez votre terminal.
Cherchez Wordpress sur https://artifacthub.io/.
Prenez la version de Bitnami et ajoutez le dépôt avec la première commande à droite (ajouter le dépôt et déployer une release).
Installer une “release” wordpress-tp
de cette application (ce chart) avec helm install wordpress-tp bitnami/wordpress
Suivez les instructions affichées dans le terminal pour trouver l’IP et afficher le login et password de notre installation. Dans minikube il faut également lancer minikube service wordpress-tp
.
Notre Wordpress est prêt. Connectez-vous-y avec les identifiants affichés (il faut passer les commandes indiquées pour récupérer le mot de passe stocké dans un secret k8s).
Vous pouvez constater que l’utilisateur est par default user
ce qui n’est pas très pertinent. Un chart prend de nombreux paramètres de configuration qui sont toujours listés dans le fichier values.yaml
à la racine du Chart.
On peut écraser certains de ces paramètres dans un nouveau fichier par exemple myvalues.yaml
et installer la release avec l’option --values=myvalues.yaml
.
helm uninstall wordpress-tp
template
de Helm pour étudier les ressources d’un Chartgit clone https://github.com/bitnami/charts/
code charts
Regardez en particulier les fichiers templates
et le fichier de paramètres values.yaml
.
Comment modifier l’username et le password wordpress à l’installation ? il faut donner comme paramètres le yaml suivant:
wordpressUsername: <votrenom>
wordpressPassword: <easytoguesspasswd>
values.yaml
contenant:wordpressUsername: <stagiaire> # replace
wordpressPassword: myunsecurepassword
wordpressBlogName: Kubernetes example blog
replicaCount: 1
service:
type: ClusterIP
ingress:
enabled: true
hostname: wordpress.<stagiaire>.formation.dopl.uk # replace with your hostname pointing on the cluster ingress loadbalancer IP
tls: true
certManager: true
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
kubernetes.io/ingress.class: nginx
helm template wordpress-tp bitnami/wordpress --values=values.yaml > wordpress-tp-manifests.yaml
.On peut maintenant lire dans ce fichier les objets kubernetes déployés par le chart et ainsi apprendre de nouvelles techniques et syntaxes. En le parcourant on peut constater que la plupart des objets abordés pendant cette formation y sont présent plus certains autres.
Voir le TP Gitlab et ArgoCD.