Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Sans le chart : Ansible

demo/k3s/ansible/deploy.yml cree les objets que le chart rend avec plusieurs replicas, ban.backend: configmap, le Secret partage, le canal du cluster, la porte de controle et cluster.unreadyWhen: auto, pour un cluster deploye par Ansible plutot que par Helm.

ansible-galaxy collection install kubernetes.core
pip install kubernetes
ansible-playbook demo/k3s/ansible/deploy.yml -e ns=files -e release=gate \
  -e config_file=config.toml -e replicas=3

config_file est le config.toml que le chart prendrait en config.inline : ecoutes sur 0.0.0.0, backend = "configmap" sous [sftp.ban], [api.ban] et [admin.ban] (celles de ban_lists), allow_static_token = false sous [admin] (le chart l’ecrit), host_keys sous /keys, du Secret <release>-host-keys, a creer.

ObjetComme le chart
ServiceAccount <release>son jeton monte (automountServiceAccountToken: true) : les pods lisent et ecrivent les objets ci-dessous par l’API Kubernetes
Roles <release>-bans, <release>-accessget, update, patch sur cette seule ConfigMap ; watch sur la collection pour les bans (un watch ne peut nommer un objet)
Role <release>-cluster-secretget, update sur ce seul Secret
Secret <release>-cluster, ConfigMaps <release>-bans, <release>-accesscrees vides, seulement s’ils manquent : les pods y ecrivent leurs entrees, un passage suivant n’y touche pas
ConfigMap <release>-configconfig.toml, monte en entier sur /config
Services <release> (SFTP), <release>-api (API de fichiers), <release>-control (console, /metrics, sondes)TCP, ClusterIP (sftp_service_type, admin_service_type, control_service_type)
Service <release>-clusterheadless, publishNotReadyAddresses: true : un pod retire par les detecteurs reste un pair
NetworkPolicy <release>SFTP et API de fichiers depuis toute source ; port de controle depuis les pods du cluster ; port du cluster depuis les pods de la release
Deployment <release>les variables CRAFT_FILE_GATE_* du chart (port de controle, Secret, revocations, acces temporaires, une par liste de bans de ban_lists, canal du cluster, min_peers, unready_when, fils de hachage d’apres requests.cpu) ; sondes startupProbe et livenessProbe sur /livez, readinessProbe sur /readyz, toutes sur le port de controle ; le contexte de securite du chart ; termination_grace_secs : shutdown_grace_period_secs plus 60 s, 90 par defaut

Aucun Role ne porte create : sur une collection, il couvrirait chaque objet du namespace. Les variables, leurs defauts et leurs noms : le haut de deploy.yml.

Le verifier contre le chart

demo/k3s/demo.sh deploy ansible     # le playbook, dans un conteneur, contre le k3s de la demo
demo/k3s/demo.sh check ansible

check ansible compare chaque objet, avec les defauts qu’ajoute le serveur d’API, au chart rendu depuis les memes entrees (les valeurs du mode cluster, un essai a blanc cote serveur), puis joue le scenario sur ses pods. Il ecrit the 17 objects of the chart, identical, ou les differences.