SlideShare a Scribd company logo
1 of 20
Download to read offline
O Kapitan!
My Kapitan!
API Hour #44 - Clermont'ech du 23/10/2019
Présenté par Julien Pervillé
3
À propos
Julien Pervillé, 41 ans,
Ingénieur système multi-
usage chez Perfect-Memory
Github @jperville (projets
chef, docker, openshift)
Sommaire
1. Kapitan c’est quoi ?
2. Les concepts
3. En pratique
4. Conclusion
Kapitan c’est quoi ?
Kezako ?
Kapitan
Est un outil
Pour gérer des déploiements complexes
Avec jsonnet, kadet (alpha) et jinja2
Source : https://kapitan.dev/
Et encore ?
Moteur de configuration générique
Basé sur des templates
Pour Kubernetes, Terraform et autres choses
Source : https://kapitan.dev/
Et concrètement ?
Provisionner le matériel avec Terraform, Ansible ou autres
Générer tous les manifestes Kubernetes d’une application
Documenter l’ensemble de l’environnement
Générer les scripts de maintenance
À partir d’un seul inventaire facile à réutiliser et à personnaliser
En fait c’est….
Les concepts
Kapitan = 3 bonnes idées réunies :
– Inventaire unique pour la configuration
– Templates Jinja2 pour documents textes
– Composants Jsonnet pour documents structuré
Questions
Pourquoi ne pas réutiliser l’inventaire
d’Ansible, Terraform etc ?
Pourquoi ne pas déployer les applications
kubernetes avec Helm ?
Inventaire unique
Source de vérité pour tout l’environnement.
Fonctions :
– Concepts de Targets et de Classes
– Surcharge des paramètres (ordre d’inclusion des fichiers)
– Référencement de paramètres de l’inventaire (en lazy)
– Gestion des secrets (y compris génération)
Jinja2
Moteur de templates
pour documents textes,
familier aux utilisateurs Ansible.
Usage :
– Génération de scripts, documentations,
tout ce qui n’est pas un arbre d’objets
Source : https://jinja.palletsprojects.com/en/2.10.x/
Jsonnet : « The Data Templating Language »
= JSON + :
– Variables (normales et cachées), Fonctions, Imports
– Syntaxe pour remplacer / surcharger un objet
– Bibliothèque standard
– Syntaxe pour les commentaires :-)
Usage :
– Génération de manifestes JSON ou YAML
concis, réutilisables et validables
Source : https://jsonnet.org/
Bibliothèque Kapitan
Accessible depuis templates Jinja2
comme depuis composants jsonnet.
Donne accès :
- objets Kapitan : inventory etc.
- helpers divers : yaml_load/dump, jsonschema etc.
Source : https://kapitan.dev/compile/
En pratique
Conclusion
Merci !
Questions ?

More Related Content

Similar to Clermont'ech API Hour #44 O Kapitan! My Kapitan! par Julien Pervillé

De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsJohan Moreau
 
DevOps, freedom to get stuff done
DevOps, freedom to get stuff doneDevOps, freedom to get stuff done
DevOps, freedom to get stuff doneAhmed Bessifi
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & KubernetesPerfect Memory
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 
Alphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureParis Container Day
 
slides meetup devops aix-marseille - juillet 2023
slides meetup devops aix-marseille - juillet 2023slides meetup devops aix-marseille - juillet 2023
slides meetup devops aix-marseille - juillet 2023Frederic Leger
 
Contribuer à la traduction française de kubernetes
Contribuer à la traduction française de kubernetesContribuer à la traduction française de kubernetes
Contribuer à la traduction française de kubernetesAnthony Dahanne
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924Gregory Boissinot
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation dockerOlivier Eeckhoutte
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsThierry Gayet
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceChristian Charreyre
 
2023-02-02 - Marvelous March
2023-02-02 - Marvelous March2023-02-02 - Marvelous March
2023-02-02 - Marvelous MarchFrederic Leger
 

Similar to Clermont'ech API Hour #44 O Kapitan! My Kapitan! par Julien Pervillé (20)

De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
DevOps, freedom to get stuff done
DevOps, freedom to get stuff doneDevOps, freedom to get stuff done
DevOps, freedom to get stuff done
 
Kubernetes (k8s).pdf
Kubernetes (k8s).pdfKubernetes (k8s).pdf
Kubernetes (k8s).pdf
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Openshift 3 & Kubernetes
Openshift 3 & KubernetesOpenshift 3 & Kubernetes
Openshift 3 & Kubernetes
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Alphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et ConfigurationAlphorm.com Formation Kubernetes : Installation et Configuration
Alphorm.com Formation Kubernetes : Installation et Configuration
 
OpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse FaureOpenShift en production - Akram Ben Assi & Eloïse Faure
OpenShift en production - Akram Ben Assi & Eloïse Faure
 
slides meetup devops aix-marseille - juillet 2023
slides meetup devops aix-marseille - juillet 2023slides meetup devops aix-marseille - juillet 2023
slides meetup devops aix-marseille - juillet 2023
 
Contribuer à la traduction française de kubernetes
Contribuer à la traduction française de kubernetesContribuer à la traduction française de kubernetes
Contribuer à la traduction française de kubernetes
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
découverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspectsdécouverte du langage python dans tous ses aspects
découverte du langage python dans tous ses aspects
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Comment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open SourceComment travailler avec les logiciels Open Source
Comment travailler avec les logiciels Open Source
 
2023-02-02 - Marvelous March
2023-02-02 - Marvelous March2023-02-02 - Marvelous March
2023-02-02 - Marvelous March
 

Clermont'ech API Hour #44 O Kapitan! My Kapitan! par Julien Pervillé

  • 1. O Kapitan! My Kapitan! API Hour #44 - Clermont'ech du 23/10/2019 Présenté par Julien Pervillé
  • 2.
  • 3. 3 À propos Julien Pervillé, 41 ans, Ingénieur système multi- usage chez Perfect-Memory Github @jperville (projets chef, docker, openshift)
  • 4. Sommaire 1. Kapitan c’est quoi ? 2. Les concepts 3. En pratique 4. Conclusion
  • 6. Kezako ? Kapitan Est un outil Pour gérer des déploiements complexes Avec jsonnet, kadet (alpha) et jinja2 Source : https://kapitan.dev/
  • 7. Et encore ? Moteur de configuration générique Basé sur des templates Pour Kubernetes, Terraform et autres choses Source : https://kapitan.dev/
  • 8. Et concrètement ? Provisionner le matériel avec Terraform, Ansible ou autres Générer tous les manifestes Kubernetes d’une application Documenter l’ensemble de l’environnement Générer les scripts de maintenance À partir d’un seul inventaire facile à réutiliser et à personnaliser
  • 11. Kapitan = 3 bonnes idées réunies : – Inventaire unique pour la configuration – Templates Jinja2 pour documents textes – Composants Jsonnet pour documents structuré
  • 12. Questions Pourquoi ne pas réutiliser l’inventaire d’Ansible, Terraform etc ? Pourquoi ne pas déployer les applications kubernetes avec Helm ?
  • 13. Inventaire unique Source de vérité pour tout l’environnement. Fonctions : – Concepts de Targets et de Classes – Surcharge des paramètres (ordre d’inclusion des fichiers) – Référencement de paramètres de l’inventaire (en lazy) – Gestion des secrets (y compris génération)
  • 14. Jinja2 Moteur de templates pour documents textes, familier aux utilisateurs Ansible. Usage : – Génération de scripts, documentations, tout ce qui n’est pas un arbre d’objets Source : https://jinja.palletsprojects.com/en/2.10.x/
  • 15. Jsonnet : « The Data Templating Language » = JSON + : – Variables (normales et cachées), Fonctions, Imports – Syntaxe pour remplacer / surcharger un objet – Bibliothèque standard – Syntaxe pour les commentaires :-) Usage : – Génération de manifestes JSON ou YAML concis, réutilisables et validables Source : https://jsonnet.org/
  • 16. Bibliothèque Kapitan Accessible depuis templates Jinja2 comme depuis composants jsonnet. Donne accès : - objets Kapitan : inventory etc. - helpers divers : yaml_load/dump, jsonschema etc. Source : https://kapitan.dev/compile/