Déploiement et gestion d'une application
Contexte
Notre application airports-frontend est un frontend écrit en quarkus et affichant des aéroports ainsi que des avions se déplaçant entre les aéroports. Néanmoins dans le cadre de ce workshop, nous ne nous occuperons ici que du frontend et nous ne verrons pas les avions se déplacer.
Notre application étant de plus en plus critique, il a été décidé de la déployer sur 2 clusters différents.
Objectif de l’exercice
L’objectif de cet exercice est de déployer notre application airports-frontend en mode multi-cluster en utilisant les mécanismes d’OpenShit Advanced Cluster Management.
Étapes de l’exercice
Depuis le cluster Hub OpenShift, accéder à l’interface d’ACM.
Pour cela, en haut de l’écran, cliquer sur local-cluster puis All Clusters :

Aller ensuite dans la partie Applications

A vous de jouer !
Exercice 1 :
1 - Déploiement sur le cluster de développement
- Créer une application de type Subscription (le type Application Set nécessiterait l’installation d’ArgoCD ce qui n’est pas l’objectif ici)
- Son nom sera <VOTRE_VILLE>-airports-frontend
- Son namespace sera <VOTRE_VILLE>-ns
- Repository Git basé sur https://github.com/workshop-opp/airports-frontend.git
- Branch : main
- Path : k8s
- Déployer l’application sur le Cluster sets global et choisissez 1 label identifiant UNIQUEMENT notre cluster de développement
Astuce : vous pouvez trouver l’ensemble des labels de chaque cluster dans le menu Infrastructure
- Vérifier dans l’onglet Topology que l’application s’est bien déployée sur le bon cluster (vous pouvez également vous connecter à la console OpenShift du cluster de Dev et vérifier que le nouveau namespace contient votre application )
Solution Exercice 1
Remplissez le formulaire comme indiqué ci-dessous (en remplaçant tokyo par le nom de votre ville).

Dans l’onglet Infrastructure, vous avez probablement remarqué qu’un label environment=dev a été appliquée au cluster de développement. C’est celui que nous allons utiliser.
Cliquez ensuite sur Créer en haut à droite.
Vous devez observer que le déploiement de votre application fonctionne bien dans la vue topologie.

En cliquant sur route puis sur launch route url , vous devriez voir l’application ci-dessous.

Exercice 2 :
2 - Déploiement sur le cluster de Dev et de Prod simultanément
- Retourner sur votre application <VOTRE_VILLE>-airports-frontend
- Editer là
- Créer une nouvelle règle de placement utilisant un label commun aux 2 clusters
- Oberver et vérifier que votre application est déployée sur les 2 clusters
Solution Exercice 2
Dans la section application, recherchez votre application créée précédemment puis cliquez dessus.

Cliquez sur Actions > Modifier l’application en haut à droite. Ouvrez ensuite la section Sélectionner les clusters pour le déploiement d’applications et cliquez sur Deploy application resources on clusters with all specified labels. Dans ClusterSet, utilisez à nouveau global et dans l’étiquette, sélectionnez deploy=acm.

Dans la vue topologique, vous devriez maintenant voir que l’application a été déployée sur les clusters de développement et de production.

Exercice 3 (Bonus) :
3 - GitOps avec ACM
Nous allons observer les mécanismes GitOps offerts par ACM : pour ce faire, il vous faudra OBLIGATOIREMENT un compte GitHub.
- Connecter vous avec votre login personnel à https://github.com
- Effectuez un fork du repository https://github.com/workshop-opp/airports-frontend
- Modifier l’application <VOTRE_USER>-airports-frontend pour utiliser le repository que vous venez de forker (https://github.com/<VOTRE_USER_GITHUB/airports-frontend)
- Modifier le nombre de replicas à 2 (au lieu de 1) dans le fichier k8s/deployment.yaml sur le repository de VOTRE compte
- Enregistrer et commiter votre code
- Oberver le changement du nombre de PODs déployés dans ACM (il peut se passer quelques temps avant le changement)