@Bordeaux Cloud Software Engineer @Artifakt Expert Kubernetes “Automate all things“ Le Cloud comme terrain de jeu CNCF Bureau des speakers Meetup CNCF Bordeaux 2 @etiennecoutaud
Artifakt est un PaaS • Nous fournissons des services à nos utilisateurs en s’appuyant sur les clouds publics (database, cache, compute, etc …) • Nous décrivons les ressources que nous manipulons sous forme de CRD avec un controller associé • La gestion de l’infrastructure est ainsi déclarative, la réconciliation fait le reste • La logique OPS/Infra est déportée dans ce layer platform • Point d’entrée unique l’API Kubernetes • Bénéficie de la puissance et de la flexibilité de l’API Kubernetes • Solution portable et agnostique du cloud provider frontend backend platform cloud provider
software dit tout ce qui y est associé - CICD - Management du cycle de vie - Gestion des bugs et des incidents - Maintenabilité - ... - Tests, tests, tests
à partir d’une crd application create/update un deployment simplifié et enregistre en status la référence vers le deployment apiVersion: cloudest.artifakt.io/v1 kind: Application metadata: name: myapp namespace: default spec: imageName: nginx replicas: 1
de la création : j’ajoute une nouvelle application 2. Le cas ou il ne se passe rien, je passe dans ma boucle et tout correspond à l’attendu 3. La différence entre le nombre de replicas de l’application et ceux du deployment 4. La différence entre le nom de l’image et celui du deployment
design pattern de plus en plus utilisé • Il existe plein de façon d’écrire un controller (language, framework etc) • Le coeur du controller est sa boucle de réconciliation • C’est elle qu’il faut tester en TU, le reste c’est du test d’intégration • Maîtriser son algorithme c’est maîtriser ses cas de tests • Le FakeClient est là pour mocker Kubernetes • les tests sont une comparaison entre l’action exécutée par le fakeClient et celle que j’attendais • le client go Kubernetes est vaste, on en découvre tous les jours • Peu ou pas de littérature, il faut lire du code, plonger dans les controllers existant et s’inspirer