From e617c41f3058e2a9021d173e4d3ff4123cede258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Mass=C3=A9?= Date: Mon, 21 Oct 2024 17:36:21 +0200 Subject: [PATCH] WiP --- .../index.md | 181 ++++++++++-------- .../redhat-acm-observability-architecture.svg | 4 + 2 files changed, 105 insertions(+), 80 deletions(-) create mode 100644 content/french/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/redhat-acm-observability-architecture.svg diff --git a/content/french/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/index.md b/content/french/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/index.md index fbc70a7..696111e 100644 --- a/content/french/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/index.md +++ b/content/french/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/index.md @@ -224,84 +224,15 @@ Lors de l'Open Code Quest, nous avions à notre disposition 8 clusters : L'observabilité est un module supplémentaire (dans le sens où il n'est pas installé par défaut) de **Red Hat Advanced Cluster Management** et ce module est basé sur les composants Open Source **Prometheus**, **Thanos** et **Grafana**. -L'architecture du module d'observabilité, tel que décrit [dans la documentation Red Hat Advanced Cluster Management](https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.11/html/observability/observing-environments-intro#observing-environments-intro), est la suivante : +Le schéma suivant présente l'architecture du module d'observabilité dans **Red Hat Advanced Cluster Management**. +Je l'ai créé en observant les relations entre les composants à partir d'une installation d'ACM en version 2.11. -{{< attachedFigure src="redhat-acm-observability-architecture.png" title="Architecture logique de l'observabilité dans Red Hat Advanced Cluster Management 2.11 ([source](https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.11/html/observability/observing-environments-intro#observing-environments-intro))" >}} +{{< attachedFigure src="redhat-acm-observability-architecture.svg" title="Architecture logique de l'observabilité dans Red Hat Advanced Cluster Management 2.11" >}} -**TODO** +Les composants déployés sur le cluster central sont en **vert**, ceux déployés sur les clusters managés sont en **bleu** et les éléments de configuration en **gris**. +J'ai aussi illustré les deux endroits possibles pour le calcul des *recording rules*, en **jaune**. -### Mise en place de l'observabilité - -Le déployement du module d'observabilité sur le cluster **central**, se fait très simplement en suivant [la documentation](https://docs.redhat.com/en/documentation/red_hat_advanced_cluster_management_for_kubernetes/2.11/html/observability/observing-environments-intro#enabling-observability-service) : - -- Créer le namespace `open-cluster-management-observability`. -- Créer le *pull secret* permettant de télécharger les images sur **registry.redhat.io**. -- Créer un *bucket* S3. -- Créer la *Custom Resource Definition* `MultiClusterObservability`. - -Pour effectuer ces opérations, j'ai utiliser les commandes suivantes : - -```sh -AWS_ACCESS_KEY_ID="REDACTED" -AWS_SECRET_ACCESS_KEY="REDACTED" -S3_BUCKET_NAME="REDACTED" -AWS_REGION="eu-west-3" - -# Create the open-cluster-management-observability namespace -oc create namespace open-cluster-management-observability - -# Copy the pull secret from the openshift namespace -DOCKER_CONFIG_JSON=`oc extract secret/pull-secret -n openshift-config --to=-` -echo $DOCKER_CONFIG_JSON -oc create secret generic multiclusterhub-operator-pull-secret \ -   -n open-cluster-management-observability \ -   --from-literal=.dockerconfigjson="$DOCKER_CONFIG_JSON" \ -   --type=kubernetes.io/dockerconfigjson - -# Create an S3 bucket -aws s3api create-bucket --bucket "$S3_BUCKET_NAME" --create-bucket-configuration "LocationConstraint=$AWS_REGION" --region "$AWS_REGION" --output json - -# Deploy the observability add-on -oc apply -f - <}}. + +Et enfin, exporter le tableau de bord sous la forme d'une ConfigMap. ```sh ./generate-dashboard-configmap-yaml.sh "Red Hat Summit Connect 2024" -./setup-grafana-dev.sh --clean ``` +Un fichier `red-hat-summit-connect-2024.yaml` est créé. +Il suffit de l'appliquer sur le cluster **central** pour que le tableau de bord apparaisse dans l'instance Grafana de production. + +```sh +oc apply -f red-hat-summit-connect-2024.yaml +``` + +## Conclusion + +Pour conclure, l'implémentation du Leaderboard dans Red Hat Advanced Cluster Management m'a permis de mieux comprendre le fonctionnement de l'observabilité, en particulier les *recording rules*. +Au final, j'ai réussi à mettre en place un tableau de bord qui suit en temps réel l'avancée des participants. + +Retrouvez l'ensemble des *recording rules* utilisées pour l'Open Code Quest dans le dossier [acm](https://github.com/nmasse-itix/opencodequest-leaderboard/tree/main/acm) de l'entrepôt Git. diff --git a/content/french/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/redhat-acm-observability-architecture.svg b/content/french/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/redhat-acm-observability-architecture.svg new file mode 100644 index 0000000..aab5c2f --- /dev/null +++ b/content/french/blog/behind-the-scenes-at-open-code-quest-how-i-implemented-leaderboard-with-acm/redhat-acm-observability-architecture.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file