Plateforme

Ressources

En tant que club sous la régie des clubs, nous avons accès au local D-2020, où nous disposons de trois postes de bureau ainsi que d’espaces communs de travail.

Nous avons également accès au D-2022 comme entrepôt. Seuls le capitaine, le co-capitaine et les chefs d’équipe y ont accès via la gestion des membres sur la plateforme clubetudiants.

Finalement, nous disposons de racks de serveurs au D-2021. Nous avons deux liens fibre de 1 Gb/s via le RISQ, ainsi que des switches core et des switches de management. La salle est ventilée et plusieurs clubs étudiants y ont accès. Les racks peuvent être barrés avec une clé, et la régie gère les accès via le système Traka.


Ressources physiques

Nous avons 8 serveurs et un NAS, soit près de 40 To en SSD dans les serveurs et 100 To en disques durs dans le NAS, ainsi que 3 petits serveurs non utilisés.

Cette infrastructure est partagée entre les clubs grâce à un contrat signé entre le LAN ETS et CEDILLE afin de mettre les ressources en commun.

(Détailler les spécificités du matériel…)


Ressources logicielles

Nous utilisons majoritairement des logiciels libres ou à usage gratuit (Proxmox, OPNsense, Talos Linux, ArgoCD, Kubernetes, Docker, Git…).

Nous avons également accès à la plateforme Omni Sidero grâce à un sponsor, ce qui nous permet de gérer les accès Kubernetes de nos membres.


La plateforme CEDILLE

Nous appelons « Plateforme CEDILLE » l’ensemble des services que nous construisons avec nos ressources.

Nous offrons divers services tout en rendant l’expérience des membres éducative.


Infrastructure


Nos 8 serveurs utilisent Proxmox comme système d’exploitation. Proxmox est un hyperviseur permettant la gestion des VM, du stockage, etc.

Nous utilisons Rook/Ceph comme stockage distribué à travers nos machines.

Les VM créées par Proxmox utilisent Talos Linux, une distribution Linux minimaliste qui intègre Kubernetes. Il est impossible de se connecter en SSH aux VM Talos : elles exposent uniquement une API Omni/Kubernetes.

Nous avons actuellement 4 clusters Kubernetes :

  • Production-v2

  • Sandbox

  • Shared

  • Management-v2

Ces clusters ont des configurations différentes. Dans les prochains mois, nous prévoyons migrer vers une architecture simplifiée avec un cluster de production et un cluster sandbox.

CEDILLE utilise une approche GitOps : les déploiements sont définis dans des dépôts Git. Chaque cluster possède son propre dépôt, hébergé sur GitHub.

ArgoCD est utilisé pour surveiller ces dépôts et déployer automatiquement les applications décrites.

Pour la documentation des déploiemens par ansible, toute la documentation à dans ce repo: https://github.com/ClubCedille/AnsibleInfra


Déploiements

Les déploiements correspondent à des applications simples (site web, base de données, application) pour un seul club.

Actuellement, les déploiements sont effectués sur le cluster Production-v2.


Services

Les services correspondent à des déploiements partagés utilisés par l’ensemble de la communauté.

Ils nécessitent de la maintenance, des mises à jour, des sauvegardes, de la documentation et du support aux « clients ».

Actuellement, les services sont déployés sur le cluster Shared.


Développement

CEDILLE cherche constamment à automatiser ses procéssus.

Nous avons développé un bot Discord permettant aux nouveaux membres d’exécuter la commande /request join et de fournir leurs informations. Cela crée automatiquement une pull request sur GitHub contenant du code Terraform pour :

  • les ajouter à l’organisation GitHub

  • les ajouter au groupe Omni (accès Kubernetes)

  • les intégrer à Netdata (observabilité)

Nous avons également un backend en Go, structuré en microservices.


Sécurité

Nous utilisons Vaultwarden pour la gestion des mots de passe internes.

Nous sommes en train de déployer HashiCorp Vault pour la gestion des secrets dans Kubernetes.

L’accès à Kubernetes est limité aux membres qui en ont besoin pour leurs projets. Nous encourageons :

  • les déploiements en sandbox

  • les déploiements en production via pull request

  • la révision obligatoire avant fusion

Pour les services nécessitant une authentification, nous utilisons Authentik comme SSO avec les comptes étudiants (incluant le 2FA).

Selon les cas, nous utilisons également Authentik ou GitHub comme SSO pour les outils internes.

Tous les déploiements doivent être en HTTPS. Les images sont « pinnées » (versions fixes) afin d’éviter l’introduction de vulnérabilités ou de breaking changes.

Nous utilisons Kube-score pour l’analyse statique de sécurité. Il reste du travail à faire pour améliorer :

  • les network policies

  • les permissions

  • la configuration globale de sécurité

Nous utilisons également l’outil Poutine pour analyser les vulnérabilités dans les pipelines.


Observabilité

En plus des dashboards de Proxmox, Omni et ArgoCD, nous utilisons :

  • Gatus comme status page (hébergée sur Google Cloud Platform)

  • Netdata pour les métriques

  • Coroot pour les traces

Netdata inclut certaines alertes configurées.


Sauvegardes

Nous sauvegardons les données de nos services quotidiennement sur Backblaze.

Nous travaillons également à mettre en place des sauvegardes locales sur le NAS avec Garage HQ.

État détaillé des sauvegardes → Backups


Amélioration continue

Ce diagramme montre le niveau d’activité de CEDILLE dans différentes sphères.

Ce qui est en vert est considéré comme fonctionnel, et ce qui est en jaune comme étant à améliorer.