Vue normale

(ARC Raiders) Message « En file d’attente » expliqué : pourquoi vous êtes en file d’attente

3 mars 2026 à 07:32

Vous appuyez sur Lecture. Le lanceur respire, puis recrache une ligne froide : « En file d’attente. » J’ai vu des messages inonder Discord ce jour-là alors que des amis et des inconnus n’arrivaient pas à atteindre Topside. Je vais vous expliquer ce que signifie ce message, quand il apparaît et ce que vous pouvez essayer pendant que […]

Le post (ARC Raiders) Message « En file d’attente » expliqué : pourquoi vous êtes en file d’attente est apparu en premier sur Moyens I/O.

Podman Desktop - Red Hat dégaine sa version enterprise

Par : Korben
26 février 2026 à 13:16

Hey mais on dirait bien que c'est Red Hat qui débarque sur le marché des apps desktop pour conteneurs... mais lol ! Car oui, pendant que Docker Desktop trône depuis des années et qu'OrbStack séduit de plus en plus d'utilisateurs macOS, Red Hat se réveille ENFIN avec sa propre version Enterprise de Podman Desktop .

Bah mieux vaut tard que jamais !

Pour ceux qui débarquent (bouuuuh) Podman Desktop, c'est un outil open source qui existe depuis des années pour gérer vos conteneurs, images et pods via une interface graphique. C'est dispo sous Linux, macOS, Windows et le projet a même rejoint la CNCF (rien à voir avec les trains... lool) en janvier 2025 en même temps que d'autres briques Red Hat (Buildah, Skopeo, bootc, Composefs... chacun en projet séparé).

Interface de Podman Desktop

Et donc Red Hat a décidé de lancer sa propre "build" enterprise de cette app de conteneurs. En gros, c'est la même base que Podman Desktop, mais avec une couche admin par-dessus. Les responsables IT peuvent donc verrouiller des paramètres au niveau de la flotte tels que les registry mirrors, proxies HTTP, certificats custom... On est dans une ambiance un peu plus corporate quoi.

Côté Kubernetes, c'est également plutôt bien pensé. Vous créez vos pods en local, l'outil génère le YAML correspondant, et hop, déploiement sur Kind, Minikube ou directement sur OpenShift, les doigts dans le nez.

Pour ceux qui se demandent si ça remplace Docker Desktop, bah, ça dépend en fait. Podman tourne sans daemon et en rootless, du coup c'est un vrai plus côté sécurité. Mais par contre, le support Docker Compose passe par un système d'aliasing... ça marche bien, sauf si vous avez des configs Docker très exotiques... là faudra tester avant de tout basculer comme le early adopter fifou que vous êtes.

D'ailleurs, si vous êtes sur RHEL, Podman est déjà inclus dans votre abonnement et Red Hat a aussi bossé sur des extensions pour les images bootable OCI et le mode image RHEL.

Le truc, c'est que Red Hat arrive tard. TRÈS tard. Docker Desktop, c'est le standard de facto depuis des lustres, OrbStack a conquis les devs macOS avec sa légèreté sans oublier que Rancher Desktop et Portainer Business Edition occupent aussi le terrain. Du coup, leur stratégie c'est de cibler les boîtes déjà full Red Hat plutôt que d'essayer de convertir les utilisateurs Docker. C'est une ambition plutôt réaliste, je trouve.

Ça vient donc de passer en disponibilité générale via les canaux développeurs Red Hat, c'est gratuit, open source, et plutôt bien fichu pour ceux qui bossent dans un environnement RHEL au quotidien. Après, c'est pas non plus la révolution car ça reste Podman Desktop avec un petit chapeau d'entreprise.

Je pense que pour un usage hors Red Hat, Docker Desktop ou OrbStack restent devant. Mais si vous avez l'abonnement RHEL, ça peut valoir le coup d'y jeter un oeil.

Source

Arc Raiders Ciel Voilé : Quêtes, Récompenses et Guide de Complétion

24 février 2026 à 15:08

Vous atterrissez sur Stella Montis avec un vent hurlant et le HUD affichant un nouvel avertissement. La carte se redessine autour de ce seul drapeau météo et votre plan s’évapore. J’ai vu des itinéraires soigneusement préparés se dissoudre en improvisation en moins de deux minutes. Je joue, je note et je vous dis ce qui […]

Le post Arc Raiders Ciel Voilé : Quêtes, Récompenses et Guide de Complétion est apparu en premier sur Moyens I/O.

Phénomène rare à ne pas manquer : 6 planètes vont être visibles en même temps dans quelques jours !

Les planètes seront alignées, littéralement, dans le ciel de cette fin du mois de février. Elles seront six à être visibles dans le ciel nocturne, et tout particulièrement durant ces prochaines semaines, ce qui a le mérite d'être rare, mais aussi et surtout facile à observer, même sans matériel...

Todd Howard: Elder Scrolls 6 — Retour aux sources, en finir avec les quêtes fedex

22 février 2026 à 02:40

Je me souviens du silence lorsque le logo de Bethesda a rempli l’écran ; on pouvait sentir chaque siège s’incliner vers l’avant. J’ai regardé Todd Howard dire que le studio reviendrait à son « style classique » et ma poitrine s’est serrée – cette promesse apporte de l’espoir et un avertissement. Si Bethesda est sérieux, quelque chose […]

Le post Todd Howard: Elder Scrolls 6 — Retour aux sources, en finir avec les quêtes fedex est apparu en premier sur Moyens I/O.

Stuck Kubernetes Finalizers

19 février 2026 à 13:43

Si un namespace ne veut vraiment pas se laisser supprimer, en état "Terminating":

kubectl get namespace mynamespace -o json > mynamespace.json

Edit the file and remove the finalizers field entirely, ensuring the JSON looks like this:

{
  "apiVersion": "v1",
  "kind": "Namespace",
  "metadata": {
    "name": "mynamespace"
  }
}

Then apply the modified JSON back to the API:

kubectl replace --raw "/api/v1/namespaces/mynamespace/finalize" -f mynamespace.json

Voir aussi https://blog.zwindler.fr/2020/03/23/supprimer-un-namespace-bloque-a-terminating/


Permalink

Installing Longhorn on Talos With Helm

15 février 2026 à 11:01

Je joue avec Talos au boulot ces temps et les ressources comme celles-ci sont bienvenues, les IA ne peuvent pas tout résoudre (heureusement).

Voir aussi:
https://joshrnoll.com/creating-a-kubernetes-cluster-with-talos-linux-on-tailscale/
https://joshrnoll.com/using-traefik-on-kubernetes-over-tailscale/


Permalink

Battery-Free Smart Implant May Transform Automated Diabetes Treatment

8 février 2026 à 18:46
A new experimental diabetes implant is drawing attention for its potential to automate insulin management and reduce the daily burden on patients. The technology relies on bioengineered insulin-producing cells protected by a microscopic crystalline-like shield, allowing them to function safely inside the body. One of its most distinctive aspects is that it works without external batteries, electronics, or constant manual input. Rather than operating like traditional medical devices, the implant […]

Kubernetes : les projets CNCF les plus déployés en production

21 janvier 2026 à 15:57

Au tour d’Argo et de cert-manager de dépasser les 50 % de taux d’usage en production.

C’est tout du moins ce que donne à voir le dernier sondage annuel de la CNCF (Cloud Native Computing Foundation). L’échantillon comprend 628 répondants, interrogés en septembre 2025.

L’édition précédente avait recueilli 750 réponses à l’automne 2024. Six projets CNCF dépassaient alors les 50 % de taux d’usage en production : Kubernetes, Helm, etcd, Prometheus, CoreDNS et containerd.

Les 10 projets de l’écosystème Kubernetes les plus utilisés en production

34 projets ont désormais atteint le plus haut stade de maturité à la CNCF. Le sondage s’en est tenu au 30 premiers à y être arrivés (de Kubernetes en mars 2018 à CubeFS en décembre 2024).

Taux d’usage en prod 2024 Taux d’usage en prod 2025 Évolution Nature du projet Sandbox Incubation Gradué
Kubernetes 85 % 87 % + 2 pts Orchestrateur de conteneurs Mars 2016 Mars 2018
Helm 77 % 81 % + 4 pts Gestionnaire de paquets Juin 2018 Mai 2020
etcd 70 % 81 % + 11 pts Magasin clé-valeur distribué Décembre 2018 Novembre 2020
Prometheus 73 % 77 % + 4 pts Monitoring Mai 2016 Août 2018
CoreDNS 59 % 76 % + 17 pts Serveur DNS Février 2017 Février 2018 Janvier 2019
containerd 62 % 74 % + 12 pts Runtime Mars 2017 Février 2019
cert-manager 48 % 58 % + 10 pts Gestionnaire de certificats TLS Novembre 2020 Septembre 2022 Septembre 2024
Argo 43 % 52 % + 9 pts Déploiement GitOps Mars 2020 Décembre 2022
Fluentd 39 % 41 % + 2 pts Journalisation Novembre 2016 Avril 2019
Istio 31 % 36 % + 5 pts Maillage de services Septembre 2022 Juillet 2023

Les projets classés 11 à 20

Taux d’usage en prod 2024 Taux d’usage en prod 2025 Évolution Nature du projet Sandbox Incubation Gradué
CRI-O 25 % 34% + 9 pts Interface de runtime Avril 2019 Juillet 2023
Envoy 22 % 33 % + 11 pts Proxy Septembre 2017 Novembre 2018
Harbor 20 % 32 % + 12 pts Registre Juillet 2018 Novembre 2018 Juin 2020
Cilium 20 % 29 % + 9 pts Mise en réseau Octobre 2021 Octobre 2023
Open Policy Agent 18 % 25 % + 7 pts Moteur de politiques Mars 2018 Avril 2019 Janvier 2021
Flux 17 % 23 % + 6 pts Déploiement GitOps Juillet 2019 Mars 2021 Novembre 2022
Jaeger 14 % 22 % + 8 pts Traçage distribué Septembre 2017 Octobre 2019
KEDA 16 % 22 % + 6 % Autoscaler piloté par les événements Mars 2020 Août 2021 Août 2023
Falco 8 % 13 % + 5 pts Détection d’intrusions Octobre 2018 Janvier 2020 Février 2024
Rook 6 % 12 % + 6 pts Orchestration du stockage Janvier 2018 Septembre 2018 Octobre 2020

Les projets classés 21 à 30

Taux d’usage en prod 2024 Taux d’usage en prod 2025 Évolution Nature du projet Sandbox Incubation Gradué
Linkerd 8 % 11 % + 3 pts Maillage de services Janvier 2017 Avril 2018 Juillet 2021
CloudEvents 5 % 9 % + 4 pts Spécification pour la description de données d’événements Mai 2018 Octobre 2019 Janvier 2024
KubeEdge 6 % 5 % – 1 pt Kubernetes pour l’edge Mars 2019 Septembre 2020 Septembre 2024
SPIFFE 5 % 5 % = Framework de gestion des identités Mars 2018 Octobre 2019 Janvier 2024
Dapr 3 % 5 % + 2 pts Runtime piloté par les événements Novembre 2021 Octobre 2024
CubeFS 2 % 3 % + 1 pt Stockage distribué Décembre 2019 Juin 2022 Décembre 2024
SPIRE 3 % 3 % = Mise en œuvre de référence de SPIFFE Mars 2018 Juin 2020 Août 2022
Vitess 1 % 3 % + 2 pts Base de données compatible MySQL Février 2018 Novembre 2019
TUF 2 % 2 % = Framework de sécurisation des systèmes de mise à jour logicielles Octobre 2017 Décembre 2019
TiKV 1 % 2 % + 1 pt Base de données clé-valeur Août 2018 Septembre 2020

Pour quelques projets, le taux d’expérimentation (pilotes/tests) a aussi augmenté. En tête de liste :

  • KEDA (+ 5 pts, à 16 %)
  • Open Policy Agent (+ 3 pts, à 20 %)
  • Harbor (+ 3 pts, à 12 %)

À consulter en complément sur le sujet Kubernetes :

Les premières distros Kubernetes « certifiées IA »
L’arrivée à maturité de Knative, couche serverless pour Kubernetes
Les choix de Databricks pour le load balancing Kubernetes
Michelin a réinternalisé son Kubernetes après 3 ans chez VMware

The post Kubernetes : les projets CNCF les plus déployés en production appeared first on Silicon.fr.

Fact-check – Noël aura-t-il lieu le 25 décembre cette année ?

10 décembre 2025 à 15:00

Comment expliquer que Noël tombe si souvent le 25 décembre ? Pour le politologue Damien Poussard, il y a clairement « un manque d’inventivité des politiques » qui reflète « une vision sclérosée de la gouvernance et un pays engoncé dans ses traditions ». Certains travaux de spécialistes avancent d’autres raisons plus triviales comme la proximité avec le Black Friday ou la présence de vacances à cette période de l’année, ce qui rendrait l’organisation des fêtes plus pratique et les gueules de bois plus supportables. De nombreux Français militent pourtant pour un changement de date, comme Jérôme, de Lens : « Ça fait dix ans que je suis malade cette semaine-là, j’ai l’impression que le gouvernement le fait exprès. » Quant à Nadine, de Bordeaux, elle déplore surtout la météo en cette saison : « Noël tombe tout le temps en plein hiver alors que ce serait tellement mieux si on pouvait le fêter à la plage dans notre maison secondaire à Arcachon. Mais les gens ne pensent qu’à eux, ils sont d’un égoïsme ! »

Un président peu concerné ?

Interrogé à ce sujet, le chef de l’État a d’abord rappelé que Noël était un mot « un peu connoté » et qu’il préférait parler de « fête païenne du solstice et du soleil dans un esprit harmonieux de vivre-ensemble. » En revanche, en ce qui concerne la date, il n’a pas envisagé de changement pour le moment : « Ce n’est pas ma priorité, je vous rappelle que nous sommes en guerre ! ». Noël devrait donc, selon toute vraisemblance, avoir de nouveau lieu le 25 décembre cette année, alors même que la plupart des historiens sont incapables d’expliquer le choix de cette date. Pour le médiéviste et professeur d’université Vincent Guglielmo, « rien n’est clair, on ne sait même pas vraiment ce qu’on fête : le sapin, les cadeaux, la dinde, les discours gênants des oncles, la gastro ? Cela reste un mystère. » 

Pour les adeptes du changement, il ne reste donc plus qu’à espérer que le Nouvel an ne tombe pas le soir du 31 décembre.  

L’article Fact-check – Noël aura-t-il lieu le 25 décembre cette année ? est apparu en premier sur Le Gorafi.fr Gorafi News Network.

NixOS pour administrer un cluster Talos air-gapped | Stéphane ROBERT

8 décembre 2025 à 21:30

"Talos Linux est un OS minimaliste conçu pour Kubernetes. Pas de SSH, pas de shell, pas de gestionnaire de paquets.
L’OS entier se configure via une API et des fichiers YAML. Cette approche élimine toute une classe de vecteurs d’attaque et garantit une reproductibilité totale."
Moi qui débute dans Kubernetes, je me suis demandé comment hardené la base, soit l'OS. Voilà ma réponse.

Edit, voir aussi : https://vblog.io/talos-lusine-a-nodes/


Permalink

La RATP sort son calendrier de l’Avent contenant un problème technique par jour

2 décembre 2025 à 13:15

“Pour célébrer comme il se doit ce mois de décembre 2025, la RATP va offrir à tous les usagers un problème technique par jour dans la pure tradition des fêtes de fin d’année” a annoncé ce matin le président de la RATP Jean Bassère, en dévoilant un gigantesque calendrier de l’avent à l’effigie du RER B. “Tenez, aujourd’hui nous sommes le 2 décembre et bien…HOP ! Pour cause de malaise voyageur, le trafic sera totalement interrompu entre Gare du Nord et Le Bourget jusqu’à 00h50” s’exclame-t-il tout sourire, avant d’aller annoncer la nouvelle au micro en prenant la voix du Père Noël.

Bien que la RATP ait souhaité garder le contenu de ce calendrier secret, ils ont néanmoins accepté à titre exceptionnel de nous en dire un peu plus. On retrouvera ainsi jour après jour 24 problèmes techniques tous plus créatifs et insolubles les uns que les autres tels qu’avarie matérielle, présence d’animaux sauvages sur les voies, dégradation de caténaires, déraillement d’un train, chutes de feuilles, chutes de neige ou encore le traditionnel mouvement social que les usagers auront le bonheur de retrouver comme chaque année derrière le 24 décembre. 

Un petit geste ludique et garanti sans gaspillage puisqu’à l’image des chocolats, tous les problèmes non rencontrés par les usagers seront intégralement recyclés pour la période de Pâques.

L’article La RATP sort son calendrier de l’Avent contenant un problème technique par jour est apparu en premier sur Le Gorafi.fr Gorafi News Network.

Des vacances au clair de lune (ou comment faire son Geforce Now privé)

Par : Seboss666
15 octobre 2025 à 16:33

Il aura fallu beaucoup trop de temps pour que ça se produise, et je l’aurai travaillé au corps une paire de fois le gaillard, mais voilà, ceci est le premier billet invité de l’unique, l’irremplaçable Pierre-Marie ! Parce que c’était à la fois trop con comme cible de jeu, mais surtout trop rigolo vu le mix de technos abordées, parce qu’on va parler de Pokemon, de Sunshine/Moonlight (le titre ne ment pas), de wakeonlan, de Kubernetes, de Fission. Oui, tout ça en même temps. Vous comprenez mon enthousiasme ?

La puissance des algorithmes de ciblage

Au détour de mon scrolling sur X, je suis tombé sur un post parlant de jeux vidéos (l’algorithme est bien foutu) et sur une injonction à s’inscrire sur PokeMMO.
Pas fan hardcore de Pokémon, j’ai quand même bien poncé les deux premières gen et me suis tenté à la troisième.
Je fais partie des gens qui n’attendent plus grand chose de Game Freak qui, selon moi, ressort en boucle les mêmes jeux sans vraiment d’innovation.
Au contraire, côté développement non officiel, on retrouve des jeux dérivés comme Pokémon Showdown, qui malgré que ce ne soit pas mon style de jeu, attire une grande communauté et qui aurait pu donner des idées à Nintendo pour renouveler la licence.
J’ai, par exemple, plus apprécié le rom hack Pokémon Adventures Red Chapter basé sur l’excellent manga Pokémon La Grande Aventure que le remake Let’s Go Evoli.
Bref, je suis donc allé voir ce qu’était ce PokeMMO, et me suis motivé pour me lancer dessus. Ça tombe bien, je pars 2 semaines en vacances et il faudra bien occuper mes soirées au coin de la clim. (article commencé au mois de Juillet). PokeMMO propose un installer pour Windows, Linux, iOS, Android et même un package pour OS alternatif (j’ai vu pas mal de gens qui installaient ça sur une console portable de type Retroid).
Personnellement, j’ai à ma disposition une PsVita et une Switch, toutes deux libérées et qui me servent lors de mes sessions retrogaming. L’option téléphone/tablette est pour moi rédhibitoire ne possédant pas de manette compatible et aimant beaucoup trop les boutons physiques pour jouer au tactile.
Installer Android sur Switch me semblant trop fastidieux, j’ai décidé de partir sur une autre voie. Étant obligé d’être connecté pour jouer quoi qu’il arrive (le O de MMO, hein), je me penche sur Moonlight, que j’avais déjà testé il y presque 10 ans. Il y a des clients pour Switch et PsVita (et pour beaucoup d’autres OS/appareils) donc ça pourrait correspondre à mes besoins.

Installation de Sunshine/Moonlight

Moonlight, pour vulgariser, c’est un client non-officiel pour le protocole Nvidia Gamestream qui vient se connecter à un ordinateur distant pour le contrôler à distance. Il a la force de supporter les contrôleurs locaux et de transmettre au PC distant à la manière d’un Steam Link. Pour pouvoir streamer vers un client Moonlight, il faut un serveur sur la machine cible. Le logiciel Nvidia GeForce Experience permet cela mais la « nouveauté » par rapport à mon essai d’il y a 10 ans, c’est le serveur Sunshine qui permet de s’affranchir du logiciel de Nvidia.

L’installation de Sunshine se fait via l’installateur dédié à la distribution cible en quelques secondes. Une fois installé, Sushine se configure via une interface web accessible en local. Elle permet de gérer les différents clients (appairage, suppression…), les différentes applications et les options de streaming (encodage, bitrate…).

Le première étape est de créer un couple utilisateur/motdepasse pour protéger l’accès à cette interface.

Interface de configuration de Sunshine: Creation du mot de passe

Par défaut, Sunshine propose deux applications: Bureau et Steam Big Picture (même si Steam n’est pas installé sur le système)

Interface de configuration de Sunshine: Applications

J’installe donc PokeMMO et le configure comme Application dans Sunshine. Je reprends simplement les valeurs trouvées dans le raccourci Bureau qui a été crée lors de l’installation. Il détecte même la miniature automatiquement.

Interface de configuration de Sunshine: Création de l’application PokeMMO

J’installe le client Moonlight sur les deux appareils. Le client détecte automatiquement le PC supportant Sunshine et affiche un code d’appairage à entrer dans Sunshine.

Interface de Moonlight: Détection

Interface de configuration de Moonlight: Appairage

Interface de Sunshine: appairage

L’appairage se déroule sans problème et je peux tester le stream en local.

Interface de Moonlight: Écran d’accueil

Je lance l’application Bureau et ça me permet de confirmer qu’il est bien possible d’ouvrir une session Windows à distance.

Interface de Moonlight: Bureau

Pour le stream distant, il faut juste s’assurer que Upnp est activé sur le routeur et cocher une case dans la configuration de Sunshine.

Interface de configuration de Sunshine: Activation de l’Upnp

(ndr: sinon il faut définir les ports et ouvrir manuellement/créer les redirections de port; l’IP fixe pour le PC de jeu est fortement recommandée dans ce cas)

Fini ?

On aurait pu s’arrêter là, mais bon, je suis pas fan de laisser tourner le PC H24 pendant 2 semaines juste pour l’utiliser quelques heures. Moonlight propose une fonctionnalité bien pratique de Wake On LAN pour démarrer un ordinateur à distance, mais voilà, ça ne fonctionne qu’en réseau local (en même temps c’est dans le nom).
Il faut donc trouver le moyen de le faire fonctionner à distance. J’ai plusieurs dispositifs à ma disposition.
Mon routeur PfSense permet de d’envoyer des paquets WoL mais uniquement via l’interface, pas d’API disponible. Il faudrait se connecter à l’interface via VPN pour lancer la commande. C’est trop lourd et pas assez flexible.
Solution suivante, utiliser le cluster k3s qui tourne à la maison.

Utilisation de k3s

On teste la faisabilité du process en lançant un pod temporaire contenant la commande wakeonlan mais ça ne fonctionne pas car l’appareil ciblé n’est pas sur le LAN du cluster k3s comme l’est le pod.
En cherchant un peu, on trouve qu’il faut configurer le pod pour qu’il tourne dans le réseau hôte, le réseau des nœuds.

kubectl run tmp --rm -it --image nixery.dev/shell/wakeonlan -it --overrides='{"kind":"Pod", "apiVersion":"v1", "spec": {"hostNetwork":\ntrue}}' -- wakeonlan a1:b2:c3:d4:e5:f6

Et ça marche !!

Reste à trouver le moyen de lancer ça simplement, via un appel HTTP par exemple. Je viens justement de déployer un système de micro-services : Fission.
Fission permet de déployer des fonctions de micro-services à la manière d’un système Serverless comme Lambda. Ça me permettrait de recevoir une requête HTTP avec en paramètre l’adresse MAC cible et d’envoyer la requête WoL avec un simple code python.

Installation de Fission

L’installation de Fission est simple si on passe par leur chart Helm. On a juste à surcharger quelques valeurs grâce au fichier values.yml suivant.

## Fission chart configuration
##

## routerServiceType to consider while creating Fission Router service.
## For minikube, set this to NodePort, elsewhere use LoadBalancer or ClusterIP.
##
routerServiceType: ClusterIP

## defaultNamespace represents the namespace in which Fission custom resources will be created by the Fission user.
## This is different from the release namespace.
## Please consider setting `additionalFissionNamespaces` if you want more than one namespace to be used for Fission custom resources.
##
defaultNamespace: fission

# Add Fission helm repo
helm repo add fission-charts https://fission.github.io/fission-charts
# Install CRDs 
kubectl create -k "github.com/fission/fission/crds/v1?ref=v1.21.0"
# Install Fission
helm install fission fission-charts/fission-all -f values.yml -n fission --create-namespace
# Install Fission CLI binary
curl -Lo fission https://github.com/fission/fission/releases/download/v1.21.0/fission-v1.21.0-linux-amd64 && chmod +x fission && sudo mv fission /usr/local/bin/

Configuration de Fission

La documentation fission nous apprend qu’on peut modifier les spécifications des pods. Il y a même un tutoriel pour déployer un exemple.

# On créé un dossier dédié
mkdir wol-fn
cd wol-fn
# On initialise le dossier specs
fission spec init
# On créé l'environnement qui fera touner le code python
fission -n fission env create --spec --name python-wol --image ghcr.io/fission/python-env --builder ghcr.io/fission/python-builder
# On créé le dossier de la fonction
mkdir wol
# On créé un fichier requirements.txt avec le module python dont nous avons besoin
echo "wakeonlan" > wol/requirements.txt
# On créé le fichier contenant le code python à exécuter
touch wol/wol.py

from flask import request
from wakeonlan import send_magic_packet
import re

def main():
    mac = request.args.get('mac')
    if mac is None:
        return "Please send a MAC address"
    else:
        if re.match("[0-9a-f]{2}([-:]?)[0-9a-f]{2}(\\1[0-9a-f]{2}){4}$", mac.lower()):
            send_magic_packet(mac)
            return "Sending magic packet to 255.255.255.255 with broadcast 255.255.255.255 MAC %s port 9" % (mac)
        else:
            return "%s is not a valid MAC format" % (mac)

On créé la spécification pour la fonction qui décrit quel code doit être exécuté et le trigger HTTP qui détermine quelle URL déclenche son exécution.

# On créé la spécification pour la fonction
fission -n fission function create --spec --name wol-fn --env python-wol --src "wol/*" --entrypoint wol.main
# On créé la spécification pour la route.
# Avec les annotations permettant de créer l'ingress rule sur Traefik
fission -n fission route create --spec --name wol-fn-get --method GET --url /wake --function wol-fn --createingress --ingressrule "test.domain.tld=/wake" --ingressannotation "kubernetes.io/ingress.class=traefik" --ingressannotation "traefik.ingress.kubernetes.io/router.entrypoints=websecure" --ingressannotation 'traefik.ingress.kubernetes.io/router.tls="true"' --ingressannotation "traefik.ingress.kubernetes.io/router.tls.certresolver=letsencrypt"

On a maintenant un dossier contenant la fonction et son environnement standard.

wol-fn
├── specs
│   ├── README
│   ├── env-python-wol.yaml
│   ├── fission-deployment-config.yaml
│   ├── function-wol-fn.yaml
│   └── route-wol-fn-get.yaml
└── wol
    ├── requirements.txt
    └── wol.py

On va modifier le fichier env-python-wol.yaml pour ajouter notre configuration spécifique.

---
apiVersion: fission.io/v1
kind: Environment
metadata:
  creationTimestamp: null
  name: python-wol
spec:
  builder:
    command: build
    container:
      name: builder
      resources: {}
    image: ghcr.io/fission/python-builder
    podspec:
      containers:
      - name: builder
        resources: {}
  imagepullsecret: ""
  keeparchive: false
  poolsize: 3
  resources: {}
  runtime:
    container:
      name: python-wol
      resources: {}
    image: ghcr.io/fission/python-env
    podspec:
      containers:
      - name: python-wol
        resources: {}
+     hostNetwork: true
+     dnsPolicy: ClusterFirstWithHostNet
  version: 3

La directive hostNetwork permet comme vu plus haut de faire tourner le pod sur le réseau hôte.
Avec juste cette modification, on a une erreur à l’exécution du code parce que le pod n’arrive pas à aller chercher l’archive contenant le code de la fonction sur le stockage partagé de Fission.

{
    "level": "error",
    "ts": "2025-08-22T15:55:03.884Z",
    "logger": "generic_pool_manager.generic_pool.fetcher_client",
    "caller": "client/client.go:114",
    "msg": "error specializing/fetching/uploading package, retrying",
    "error": "Internal error - error fetching deploy package: failed to download url : Get \"http://storagesvc.fission/v1/archive?id=%2Ffission%2Ffission-functions%2Ffc6798a9-95c3-47cb-8797-28f842162f83\": dial tcp: lookup storagesvc.fission on 9.9.9.9:53: no such host",
    "url": "http://X.X.X.X:8000/specialize",
    "stacktrace": "github.com/fission/fission/pkg/fetcher/client.sendRequest\n\tpkg/fetcher/client/client.go:114\ngithub.com/fission/fission/pkg/fetcher/client.(*client).Specialize\n\tpkg/fetcher/client/client.go:56\ngithub.com/fission/fission/pkg/executor/executortype/poolmgr.(*GenericPool).specializePod\n\tpkg/executor/executortype/poolmgr/gp.go:467\ngithub.com/fission/fission/pkg/executor/executortype/poolmgr.(*GenericPool).getFuncSvc\n\tpkg/executor/executortype/poolmgr/gp.go:553\ngithub.com/fission/fission/pkg/executor/executortype/poolmgr.(*GenericPoolManager).GetFuncSvc\n\tpkg/executor/executortype/poolmgr/gpm.go:242\ngithub.com/fission/fission/pkg/executor.(*Executor).createServiceForFunction\n\tpkg/executor/executor.go:239\ngithub.com/fission/fission/pkg/executor.(*Executor).serveCreateFuncServices.func1\n\tpkg/executor/executor.go:143"
}

On voit qu’il cherche à contacter storagesvc.fission et qu’il n’arrive pas à résoudre ce hostname, ce qui est normal étant donné qu’il s’agit d’un nom interne au cluster et que le pod tourne désormais sur le hostNetwork. La directive dnsPolicy: ClusterFirstWithHostNet permet de forcer d’essayer la résolution en interne au cluster avant de tenter en externe sur le hostNetwork et résout ce problème.

Il ne reste qu’à déployer.

# On vérifie la syntaxe
fission spec validate
# On déploie
fission spec apply --wait
# On test via Fission CLI
fission -n fission function test --name wol-fn --method GET -q "mac=a1:b2:c3:d4:e5:f6"
# On test via HTTP depuis l'extérieur
curl "https://test/domain.tld/wake?mac=a1:b2:c3:d4:e5:f6"

Pour faire simple, ajouter l’URL en raccourci sur le téléphone et en un clic, le PC est démarré. Personnellement, je l’ai intégré dans mon Home Assistant avec un bouton dédié.

Home Assistant Dashboard

Finalisation de la configuration

Celui qu’on adore détester

Il reste deux ou trois détails à régler. Par défaut, depuis Windows 10, quand on arrête le système, il se place en réalité dans un mode de veille prolongée pour permettre un démarrage plus rapide. Hors le *Wake On LAN* ne fonctionne pas sur ce mode de sommeil. Microsoft documente ça très bien ici. Il y est également expliqué comment désactiver ce mode pour pouvoir rétablir un mode d’extinction « normal ».

Je vous les remets à l’identique:

  • Dans Panneau de configuration, ouvrez l’élément Options d’alimentation
  • Sélectionnez le lien Choisir ce que les boutons d’alimentation font
  • Désactivez la case à cocher Activer le démarrage rapide (recommandé)
  • Sélectionnez Enregistrez les paramètres.

Une fois cette modification effectuée, le Wake On LAN est complètement fonctionnel.

La fin

Et donc, puisqu’on a abordé le sujet, comment se passe l’extinction ? Vous vous rappelez ? le but de tout ce foutoir, c’était d’éviter de garder le PC allumé pendant deux semaines. On a parlé du démarrage, mais quid de l’arrêt ?

Le plus simple est de lancer une session Bureau dans Moonlight et d’aller cliquer sur le menu Démarrer puis le bouton Arrêter comme à la maison. Mais on peut aussi déclarer des applications dans Sunshine et il exécutera la commande associée à cette application.

J’ai donc créer une application nommée Shutdown qui lance la commande suivante shutdown /s /f /t 0.

Interface de configuration de Sunshine: Shutdown Application

Quand elle est lancée depuis le client Moonlight, elle éteint le PC distant.

Feedback et Conclusion

Puisque je suis rentré depuis, je peux débriefer ces 2 semaines d’utilisation, ça fonctionne super, le seul défaut que j’ai eu est qu’une fois le Shutdown n’a pas fonctionné et je ne l’ai pas vu tout de suite. Les fois suivantes, j’ai juste eu à bien vérifier le status dans le menu.

Interface de Moonlight: PC démarré

Interface de Moonlight: PC éteint

À part ça, super expérience ! Bien sur je n’ai pas cherché à jouer à des jeux très performants, mais ça a suffi à mes besoins, même en 4G. Je n’ai pas non plus poussé jusqu’à tenter de jouer sur la 4G en voiture, mais je pense que ça aurait pu marcher.
Je continue à l’utiliser, même à la maison, pour jouer dans le canapé plutôt que devant le PC.

Interface de Moonlight: PokeMMO


Alors, avouez que c’est pas mal en termes de bricolages inutiles donc indispensables, il était donc nécessaire de partager ça avec le plus grand nombre ? (enfin au moins les lecteurs de ce blog)

❌