Déploiement de la VotingApp avec Helm
Packaging et distribution de la VotingApp avec Helm
Dans cet exercice, vous allez déployer l’application VotingApp avec Helm.
- Installation du client Helm
Si vous n’avez pas encore le client Helm installé, vous pouvez le faire avec la commande suivante :
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh- Installation d’un Ingress Controller
Un Ingress Controller permet d’exposer des applications afin qu’elles soient disponibles depuis l’extérieur du cluster. Il est nécessaire d’utiliser des ressources de type Ingress afin de configurer celui-ci. Utilisez les commandes suivantes afin d’installer Traefik, un des Ingress Controllers de référence, dans votre cluster.
helm repo add traefik https://traefik.github.io/charts
helm repo update
helm install traefik traefik/traefik --version 37.1.0 --namespace traefik --create-namespaceL’installation de Traefik crée un Load Balancer configuré pour exposer Traefik et les applications du cluster. Utilisez la commande suivante afin de récupérer l’adresse IP de ce Load Balancer.
kubectl get service -n traefik
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
traefik LoadBalancer 10.108.137.57 91.92.203.158 80:31548/TCP,443:32518/TCP 98sVous pouvez retrouver les détails de ce load balancer depuis le portail Exoscale.

- Installation de la VotingApp
La VotingApp est packagée avec Helm et distribuée depuis le DockerHub. Afin d’exposer l’application en utilisant le Load Balancer créé lors de l’installation de Traefik, créez le fichier de configuration suivant (généralement référencé comme un fichier de valeurs), en remplaçant LOAD_BALANCER_IP par la véritable adresse IP de votre Load Balancer.
ingress:
enabled: true
hosts:
vote: vote.LOAD_BALANCER_IP.nip.io
result: result.LOAD_BALANCER_IP.nip.ioLa commande suivante permet de déployer l’application en prenant en compte le fichier de configuration.
helm upgrade --install voting oci://registry-1.docker.io/voting/app --version v1.0.49 -f ./values.yamlVous devriez obtenir un résultat similaire à celui ci-dessous.
Release "voting" does not exist. Installing it now.
Pulled: registry-1.docker.io/voting/app:v1.0.49
Digest: sha256:d1749998f166c068788737566b07bc84be795b852b05b593722717590b98fca3
NAME: voting
LAST DEPLOYED: Wed Sep 3 16:23:47 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: NoneEnsuite, vérifiez que tous les Pods de la VotingApp sont au statut Running :
$ kubectl get po
NAME READY STATUS RESTARTS AGE
db-66657ffcdd-gl82z 1/1 Running 0 50s
redis-5959579dbf-mp76x 1/1 Running 0 50s
result-765cdb6fd5-mh4w7 1/1 Running 0 50s
result-ui-84d69ddcb4-xjz2d 1/1 Running 0 50s
vote-6f4fb59f5-mnlpb 1/1 Running 0 50s
vote-ui-8784847bc-2qg54 1/1 Running 0 50s
worker-7965d7db45-8nlfz 1/1 Running 0 50sVérifiez ensuite que :
- l’interface de vote est accessible à
http://vote.LOAD_BALANCER_IP.nip.io - l’interface de result est accessible à
http://result.LOAD_BALANCER_IP.nip.io


- Désinstallation de l’application
Utilisez la commande suivante pour désinstaller l’application :
helm uninstall voting