Quotidien Shaarli

Tous les liens d'un jour sur une page.

April 26, 2025

Customiser Talos avec des extensions

L'article explique comment étendre les fonctionnalités de Talos, un système d'exploitation minimaliste dédié au déploiement de nœuds Kubernetes. Bien que Talos soit léger, il est conçu pour être extensible via des extensions, permettant d'ajouter des outils ou des fonctionnalités non disponibles par défaut. L'auteur détaille les méthodes pour installer des extensions, soit via une image personnalisée de Talos, soit en spécifiant une image OCI contenant l'extension. Il illustre le processus avec un exemple concret d'installation de l'agent qemu-guest-agent sur des nœuds Talos, en utilisant Proxmox pour l'hébergement. L'article aborde également la création et la gestion des extensions, ainsi que l'injection de configurations spécifiques pour des besoins particuliers
.

EXPLAIN your slow queries

L'autrice utilise EXPLAIN avant de lancer la requête - ce qui calcule son plan sans l'exécuter - afin de ne pas surcharger sa base de données avec une requête lente
Elle utilise EXPLAIN ANALYZE après l'exécution de sa requête afin de comprendre pourquoi elle est lente.
La syntaxe présentée est celle de PostgreSQL - à adapter donc selon le SGBD.

ways to count rows

On a 3 manières de compter les lignes en SQL :

COUNT(*) compte toutes les lignes, sans s'occuper des valeurs de celles-ci. On l'utilise souvent avec GROUP BY comme dans cette requête sur les prénoms les plus populaires.

SELECT first_name, COUNT(*) FROM people GROUP BY first_name ORDER BY COUNT(*) DESC LIMIT 50

COUNT(DISTINCT column) renvoie le nombre de valeurs distinctes, et est donc très utile si une colonne a des valeurs dupliquées. Par exemple, la requête suivante trouve le nombre d'espèces pour chaque gêne de plante.

SELECT genus, COUNT(DISTINCT species) FROM plants GROUP BY 1 ORDER BY 2 DESC

À noter que GROUP BY 1 signifie de grouper par la 1ère expression du SELECT.

SUM(CASE WHEN expression THEN 1 ELSE 0 END) permet de compter, par exemple dans la requête ci-dessous, combien chaque propriétaire a de chats, de chiens et d'autres animaux.

SELECT owner , SUM(CASE WHEN type = 'dog' THEN 1 ELSE 0 END) AS num_dogs , SUM(CASE WHEN type = 'cat' THEN 1 ELSE 0 END) AS num_cats , SUM(CASE WHEN type NOT IN ('dog','cat') THEN 1 ELSE 0 END) AS num_other FROM pets GROUP BY owner

Ça marche bien si la table a le format

owner type
1 dog
1 cat
2 dog
2 parakeet