Premiers pas avec Ansible AWX
installé AWX sur notre cluster Kubernetes
component. -->
Création :
installé AWX sur notre cluster Kubernetes
AWX
Ansible-Navigator
Faire tourner MacOS sur une machine Linux et cela, depuis une image Docker
kapp-controller
est une extension de kapp qui permet d’installer et de mettre à jour vos applications et packages sur vos clusters Kubernetes. Il fait partie de la suite Carvel.
kapp
Octant
Il faut aussi désormais surveiller le travail de la communauté Ansible, sinon on passe à côté de pépites qui vous simplifie le travail
Ytt fait aussi partie de la suite carvel. Ytt est un outil de templating et d’applications de patch pour fichiers Yaml. Il n’est pas essentiellement utilisé pour écrire des manifests kubernetes mais peut être aussi utilisé avec d’autres outils dont les fichiers de configurations sont écrit en Yaml.
Comme pour les autres outils je vous montre comment installer toute la suite Carvel:
Ytt charge tous les documents, les analyse pour identifier leurs types et
calculer la sortie. Il existe différentes types de documents: les fichiers
plein, les templates et ses sous-types et les overlays. Pour différencier les
types de documents, il recherche tout simplement la présence de lignes contenant
des instructions ytt qui débute par #@
.
En noir le pipeline.
Comme dis dans le descriptif du document ytt utilise différents types de documents :
Les Data Values Schema Document
qui décrivent les variables ytt avec leur
type et valeur par défaut :
Les Data Values Document
qui fixent les valeurs des variables :
Les Templated Documents
:
Les Overlay Documents
qui sont appliqués tout à la fin du processus
d’évaluation.
Le langage ytt est dérivé de celui de starlark, qui est un dialecte de Python destiné à être utilisé comme langage de configuration.
Les commentaires débute par #!
:
NoneType
: None (equivalent to null in other languages)Bool
: True or FalseInteger
: 1Float
: 1.1String
: “string”List
: [1, 2, {“a”:3}]Tuple
: (1, 2, “a”)Dictionary
: {“a”: 1, “b”: “b”}Struct
: struct.make(field1=123, field2=“val2”)Annotation
: @name arg1,arg2,keyword_arg3=123On retrouve bien une syntaxe proche de python avec if else elif
en ajoutant le
@ end
:
Les tests peuvent être écrits sur une seule ligne :
ou encore :
On retrouve la boucle for
avec les instructions continue/break
. Sa
définition se termine avec @ end
:
Une boucle peut s’écrire sur une ligne :
On retrouve les instructions def
et return
. Ici une fonction créant un
deployement et utilisant des variables #@ <variable-name>
. Sa définition se
termine par @ end
:
Vous avez remarqué nous retrouvons les paramètres optionnels de python qui doivent être nommé leur définition :
La fonction load
permet de faire appel aux fonctions provenant :
@yt:
:Les fichiers .star sont des fichiers écrits en starlark :
Maintenant que nous avons vu les bases de ce langage, passons à l’écriture d’un premier template (tiré de la documentation).
Nous allons déclarer nos variables dans le ficher de schema schema.yml
contenant deux définitions echos et service :
Créons un fichier de data default.yml
qui vient écraser les valeurs par
défaut :
Créons le template lui-meme demo.yml
. Le code est expliqué par ses
commentaires.
Pour lancer l’évaluation de ce template il suffit de lancer ytt avec tous ces fichiers de définition (peu importe l’ordre) :
Ce qui nous donne :
Pour gérer plusieurs environnements, on pourrait créer plusieurs jeux de valeurs default-dev.yml default-prod.yml.
Regardez cet exemple : vmware-tanzu/carvel-ytt-starter-for-kubernetes
L’utilisation la plus simple d’ytt est de l’utiliser pour patcher des fichiers
yaml. Nous allons voir comment l’utiliser pour patcher un manifest Kubernetes
récupérer avec vendir
.
Commençons par écrire la configuration vendir
qui se charge de récupérer le
manifest du deployment de pod nginx :
Le paramètre newRootPath
permet de changer le chemin root par défaut. Le
résultat, c’est le que le fichier qui se trouvait dans le répertoire
content/en/examples/application/
sera déposé dans le path
défini
deploy/definitions
.
Lançons la synchronisation :
Rappel : vendir
créé un lockfile pointant sur le commit qui a été utilisé. Si
vous voulez ré la même version il suffit de lancer la commande vendir sync --locked
Maintenant créons le fichier de patch que nous allons déposer dans le répertoire
deploy/patchs
C’est donc un fichier formaté ytt
:
Ici on charge le module ytt
overlay et on lui indique ce
qui doit être patcher le deployement avec le match sur la définition {"kind": "Deployment", "metadata": {"name": "nginx-deployment"}}
Créons le manifest kubernetes patché :
En sortie nous obtenons bien replicas : 3
:
Ytt est une belle alternative à Helm. Mais je n’ai pas trouvé trace de repository où on y retrouverait comme pour helm tous les templates des applications les plus courantes. Il va falloir donc tout écrire.
Vendir
principaux avantages
contrôle d’accès basé sur les rôles