Fix: Déployer Litmus Chaos sur Minikube (Mac ARM)

Un petit guide pour faire tourner Litmus Chaos sur un cluster Minikube local sur Mac avec puce Apple Silicon, en contournant les problèmes d'images ARM.

2026-03-18

chaos-engineering

kubernetes

helm

Si tu veux tester Litmus Chaos en local sur un Mac avec puce Apple Silicon, voilà ce qui fonctionne vraiment sans passer des heures comme moi à déboguer pour trouver un moyen de faire tourner MongoDB sur ARM.

Dans cette situation, on a:

  • Minikube avec le driver Docker
  • Helm 3
  • kubectl configuré sur le cluster minikube
  • orbstack pour faire tourner Docker
minikube start --nodes 3 -p minikube-multinode --driver=docker

Le problème avec les images ARM

La plupart des images Bitnami sur docker.io sont en x86 uniquement. MongoDB en particulier ne tourne pas sur ARM sans une image adaptée. On utilise dlavrenuek/bitnami-mongodb-arm à la place.

Le fichier values.yaml

Il ressemble à ça:

mongodb:
  image:
    registry: docker.io
    repository: dlavrenuek/bitnami-mongodb-arm
    tag: 8.0.9
  volumePermissions:
    image:
      registry: docker.io
      repository: bitnami/os-shell
      tag: "12"

portal:
  server:
    waitForMongodb:
      image:
        repository: dlavrenuek/bitnami-mongodb-arm
        tag: 6.0.13

Attention au bug dans le chart officiel

Le chart litmuschaos/litmus du repo officiel a un bug : le template wait-for-mongodb préfixe l'image avec litmuschaos.docker.scarf.sh/litmuschaos/, ce qui donne un nom d'image invalide quand tu utilises une image Docker Hub personnalisée. Il faut patch les templates localement.

Dans charts/litmus/templates/server-deployment.yaml et auth-server-deployment.yaml, le initContainer doit ressembler à :

image: {{ .Values.portal.server.waitForMongodb.image.repository }}:{{ .Values.portal.server.waitForMongodb.image.tag }}

au lieu de :

image: {{ .Values.image.imageRegistryName }}/{{ .Values.portal.server.waitForMongodb.image.repository }}:{{ .Values.portal.server.waitForMongodb.image.tag }}

Installation

helm install chaos ./litmus-helm/charts/litmus \
  --namespace=litmus \
  --create-namespace \
  --set portal.frontend.service.type=NodePort \
  -f values.yaml

Accéder à l'interface

La façon la plus simple :

kubectl port-forward svc/chaos-litmus-frontend-service 9091:9091 -n litmus

ou

minikube service chaos-litmus-frontend-service -n litmus -p minikube-multinode --url

C'est tout !