# Présentation travaux CI/CD Apps Démo Point de Synchro du 22/03/2024 --- ## Épisode précédent - Remplacer Concourse et Trackbone - Besoin de CI simple, besoin de déploiement complexe - Solutions retenues par l'équipe Apps : - CI : Gitlab CI (DT-Store) - CD : surprise... --- ## Épisode précédent > Est-ce que c'est Flux? -- Ala Réponse : > En ce moment l'équipe apps travaille sur Flux -- Vincent Donc... oui ! (grosse surprise) --- ## Plan initial 1. POC min pour valider ces outils chez apps avant présentation : - S'approprier Flux et son déploiement - Utiliser le Gitlab DT-Store comme source de code et CI 2. Implication de tout PF pour structurer leur utilisation --- ## Pourquoi Flux ? - Comparaison de nombreuses solutions - Peu de projets viables (maturité, compétences dispo, k8s natif, etc.) : - Flux CD - Argo CD --- ## Pourquoi Flux ? - Léger et **décentralisé** vs Argo "lourd" et centralisé (en gros) - Appropriation simple : des objets k8s en YAML, repos git et helm - Prise à charge de Terraform via un *controller* - Bonus : se popularise au sein de l'entreprise --- ## Contexte initial - Vision "PF" - Gestion de bout en bout des clusters - Gestion du bootstrap - Architecture "caascad" : - cluster parent -> clusters enfants --- ## Problème ! <p style="text-align:center"><strong>Ce n'est plus l'optique actuelle</strong></p> --- ## Contexte actuel - Clusters et objets "cloud" fournis par CaaS‑CNP - Gestion de Flux... ??? (pour le moment eux, à voir, pinguez Vincent) - Architecture "flat" (pour le déploiement) --- ## Nouveau plan(tm) 1. Attendre les présentations de Flux à la PF (c'est fait) 2. Présentation des sujets étudiés et testés par Apps (**c'est maintenant**) 3. Ateliers et autres pour construire *new observability stack avec un nom moins chiant* --- ## POC en tant que simple utilisateur Flux - Déploiement d'une [application sur un env CaaS-CNP](https://git-oab.si.fr.intraorange/cs-factory-stg/poc-fluxcd) - Utilisation de Kustomize - Réflexion sur l'organisation des repositories --- ## Architecture initialement envisagée ![](https://oss.eu-west-0.prod-cloud-ocb.orange-business.com/hedgedoc-corp/uploads/455dd8da-f4f0-4482-9ba9-3d34bf70708f.png) --- ## Dépendances identifiées - **git** : parent -> gitlab, enfants -> git-sync (sur le parent) - **registry OCI** (containers + charts) : parent -> harbor, enfants -> cache k8s - **secrets** : parent -> vault, enfants -> synchro secrets k8s --- ## POC de déploiement de l'architecture via Flux - Déploiement d'un [cluster parent via un laptop opérateur](https://sourcehub.orange-business.com/cs-factory-stg/apps/poc_flux) - Run de code Terraform - Déploiement d'un [cluster enfant via le cluster parent](https://sourcehub.orange-business.com/cs-factory-stg/apps/poc_flux) - Run de code Terraform via Flux --- ## Changement de sujet - Pause des réflexions sur Flux en attendant d'y voir plus clair - Mise en place d'une registry OCI (Harbor) - Bascule sur la prise en main de la CI --- ## POC Registry OCI - Structuration - Stockage de containers - Stockage de charts - "Robots" - Proxy-cache (vers docker, quay.io, etc.) --- ## POC Gitlab CI - Création de pipelines pour les tâches communes - Mirroring de charts - Mirroring de containers - Packaging de charts - Build de containers --- ## POC Gitlab CI & Harbor - Présentation détaillée à venir - Utilisation - Outils validés pour le build, push... - etc. --- ## Réflexions - Le passage au "GitOps" nous amène à : - Faire évoluer le modèle opérationnel - Repenser la structure de nos repositories - Les travaux vont devoir être répartis dans les équipes --- ## Proposition : Organisation git - La notion d'**Application** correspond bien à notre modèle actuel : - applications upstream : grafana, privx, etc. - "services" (= appli) cloud : aws-route53, fe-rds, etc. - développements "maison" : customers-manager, etc. - "enabler" (= operator k8s = appli) --- ## Proposition : Environnements - DEV : gros manque sur Caascad/NGOT. Idéalement déploiement continue automagique. - STG : rebuild propre + process de validation pour iso PRD (ticket MES) - PRD : pas de rebuild, copie des artefacts validés sur STG, validation (ticket MEP) --- ## La suite... - Répartition des tâches par les POs - Définir les ateliers <style type="text/css"> p { font-size: smaller; } .reveal ul ul li { font-size: smaller; } .reveal section { text-align: left; } .reveal h1 { color: #FF8200; text-align: center; border-bottom: 1px solid #FF8200; margin-bottom: 0.4em; } .reveal h2 { color: #FF8200; text-align: left; } .reveal h3 { color: #FF8200; text-align: center; border-bottom: 1px solid #FF8200; } .reveal code { color: aquamarine; font-size: smaller; } .reveal strong { color: #FF8200; } </style>
{"type":"slide","tags":"presentation","slideOptions":{"transition":"slide"}}