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 commande indiquée dans “Install” : helm repo add bitnami https://charts.bitnami.com/bitnami
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.
Si l’IP n’est pas accessible, il faut également lancer kubectl port-foward service wordpress-tp <port_de_votre_choix>:80
.
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’objet Service est par default Loadbalancer
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 ChartwordpressUsername: <votrenom>
values.yaml
contenant:wordpressUsername: <stagiaire> # replace
wordpressBlogName: Kubernetes example blog
replicaCount: 1
service:
type: ClusterIP
ingress:
enabled: true
ingressClassName: nginx
hostname: wordpress.<stagiaire>.formation.dopl.uk # replace with your hostname pointing on the cluster ingress loadbalancer IP
Si vous avez activé certmanager
(voir TP optionnel) vous pouvez remplacer la clé ingress avec :
ingress:
enabled: true
hostname: wordpress.<stagiaire>.formation.dopl.uk # replace with your hostname pointing on the cluster ingress loadbalancer IP
tls: true
certManager: true
ingressClassName: nginx
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.
git clone https://github.com/bitnami/charts/ --depth 1
code charts/bitnami/wordpress
templates
et le fichier de paramètres values.yaml
.Voir le TP Gitlab et ArgoCD.