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 :

ACM Console

Aller ensuite dans la partie Applications

ACM 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

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

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)