Titolo del modulo: dgt_plat10 – Composition Crossplane e API di piattaforma
Descrizione:
Le managed resource sono mattoni di basso livello: i developer non dovrebbero dover sapere come si combinano una rete, un load balancer e un database. Le composition di Crossplane permettono al platform team di definire le proprie API di alto livello, come "un database PostgreSQL" o "un ambiente per il mio servizio", nascondendo l'implementazione. Questo modulo insegna a progettare, costruire e versionare queste API.
Obiettivi del modulo:
-
Composite Resource Definition: Definire API di piattaforma personalizzate con una CompositeResourceDefinition (XRD) e uno schema OpenAPI che espone solo le opzioni di cui i developer hanno bisogno.
-
Composition e function: Implementare un'API con una pipeline di Composition e con le composition function (patch-and-transform, template Go, KCL o Python).
-
API namespaced: Usare composite resource namespaced, così che ogni team crei risorse nel proprio namespace con l'RBAC di Kubernetes.
-
Packaging: Distribuire XRD, composition e function come configuration package di Crossplane pubblicati su un registry OCI.
-
Ciclo di vita delle API: Versionare le API di piattaforma, testare le composition prima del rilascio e farle evolvere senza rompere gli utenti esistenti.
Contenuti del modulo:
-
Progettare una buona API: Scegliere default, policy e guardrail sensati: taglie invece di flavor, ambienti invece di reti.
-
Composition multi-provider: Una sola API con un'implementazione su OpenStack e una su un cloud pubblico, scelta in base all'ambiente.
-
Status e connection detail: Restituire endpoint e credenziali al developer in modo sicuro.
-
Test: Render locale delle composition, validazione degli schemi e test end-to-end in CI.
-
Policy: Combinare Crossplane con Kyverno o OPA Gatekeeper per far rispettare le regole aziendali.
Laboratorio pratico in linguaggio naturale:
Gli studenti progettano con l'agente AI un'API di piattaforma chiamata AppEnvironment che, a partire da pochi campi (team, taglia, ambiente), crea sul cloud OpenStack di laboratorio una rete, un security group, un namespace Kubernetes e un database PostgreSQL. Gli studenti rivedono XRD e composition, le testano con un render locale e le pubblicano come configuration package da usare nelle lezioni su Backstage.
Destinatari:
Questo modulo è pensato per gli studenti che hanno completato i moduli Linux, DevOps e Containers, e per sistemisti, DevOps engineer e SRE che vogliono avvicinarsi al Platform Engineering. È consigliata esperienza con Kubernetes.
Gli studenti possono caricare i propri esercizi nel progetto Git Academy DevOps & SRE. Per questo modulo, crea una cartella con il tuo username come nome nella seguente sottocartella: https://github.com/Garanti-Del-Talento/gdt_academy
