Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
popeye — 👀 Un sanitizer de ressources de cluster Kubernetes | Kitploit
Outils/GitHubGitHub/derailed/popeye
Sécurité des ConteneursAudit de ConfigurationSécurité CloudMauvaise Configuration
GitHubderailed/popeye

popeye

👀 Un sanitizer de ressources de cluster Kubernetes

Voir le dépôtSite web
6.3k344il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Popeye : Lampe de poche pour clusters live Kubernetes

Popeye est un utilitaire qui analyse les clusters Kubernetes en direct et signale les problèmes potentiels liés aux ressources et configurations déployées. À mesure que le paysage Kubernetes s'agrandit, il devient difficile pour un humain de suivre la multitude de manifestes et de politiques qui orchestrent un cluster. Popeye scanne votre cluster en fonction de ce qui est déployé, et non de ce qui se trouve sur le disque. En nettoyant votre cluster, il détecte les mauvaises configurations, les ressources obsolètes et vous aide à vous assurer que les bonnes pratiques sont en place, évitant ainsi de futurs maux de tête. Il vise à réduire la surcharge cognitive à laquelle on est confronté lors de l'exploitation d'un cluster Kubernetes dans la nature. De plus, si votre cluster utilise un metric-server, il signale les éventuelles sous/sur-allocations de ressources et tente de vous avertir si votre cluster manque de capacité.

Popeye est un outil en lecture seule, il n'altère en aucune façon vos ressources Kubernetes !




Go Report Card codebeat badge release license Docker Repository on Quay GitHub stars Releases


Captures d'écran

Console

JSON

HTML

Vous pouvez exporter le rapport d'analyse au format HTML.

Tableau de bord Grafana

Popeye publie des métriques Prometheus. Nous avons fourni un exemple de tableau de bord Popeye pour vous aider à démarrer dans ce dépôt.


Installation

Popeye est disponible sur les plateformes Linux, OSX et Windows.

  • Les binaires pour Linux, Windows et Mac sont disponibles sous forme d'archives dans la page des versions.

  • Pour OSX/Unix avec Homebrew/LinuxBrew ```shell brew install derailed/popeye/popeye

    root@kitploit:~
  • Utilisation de go install

    root@kitploit:~
    go install github.com/derailed/popeye@latest
    
  • Construction à partir des sources Popeye a été construit avec go 1.21+. Pour construire Popeye à partir des sources, vous devez :

    1. Clonez le dépôt

    2. Ajoutez la commande suivante dans votre fichier go.mod

      root@kitploit:~
      replace (
        github.com/derailed/popeye => MY_POPEYE_CLONED_GIT_REPO
      )
      
    3. Compilez et exécutez l'exécutable

      root@kitploit:~
      go run main.go
      

    Recette rapide pour les impatients : ```shell

    Clone outside of GOPATH

    git clone https://github.com/derailed/popeye cd popeye

    Build and install

    make build

    Run

    popeye

Vérifications pré-vol

  • Popeye utilise le mode terminal 256 couleurs. Sur les systèmes `Nix, assurez-vous que TERM est défini en conséquence.

    root@kitploit:~
    export TERM=xterm-256color
    

La ligne de commande

Vous pouvez utiliser Popeye en mode ouvert ou en utilisant un fichier de configuration spinach yaml pour ajuster vos linters. Les détails sur le fichier de configuration Popeye sont ci-dessous.```shell

Dump version info and logs location

popeye version

Popeye a cluster using your current kubeconfig environment.

NOTE! This will run Popeye in the context namespace if set or like kubectl will use the default namespace

popeye

Run Popeye in the fred namespace

popeye -n fred

Run Popeye in all namespaces

popeye -A

Run Popeye uses a spinach config file of course! aka spinachyaml!

popeye -f spinach.yaml

Popeye a cluster using a kubeconfig context.

popeye --context olive

Run Popeye with specific linters and log to the console

popeye -n ns1 -s pod,svc --logs none

Run Popeye for a given namespace in a given log file and debug logs

popeye -n ns1 --logs /tmp/fred.log -v4

Stuck?

popeye help

root@kitploit:~
---

## Analyseurs

Popeye scanne votre cluster à la recherche des meilleures pratiques et des problèmes potentiels.
Actuellement, Popeye ne vérifie qu'un ensemble donné de ressources Kubernetes sélectionnées.
D'autres arriveront bientôt !
Nous espérons que les amis de Kubernetes contribueront à rendre Popeye encore meilleur.

L'objectif des analyseurs est de détecter les mauvaises configurations, par exemple
les incompatibilités de ports, les ressources mortes ou inutilisées, l'utilisation des métriques,
les sondes, les images de conteneurs, les règles RBAC, les ressources nues, etc...

Popeye n'est pas un autre outil d'analyse statique. Il s'exécute et inspecte les ressources Kubernetes sur
des clusters en direct et analyse les ressources telles qu'elles sont en production !

Voici une liste de certains des analyseurs disponibles :

|    | Ressource                | Vérifications                                                                 | Alias       |
|----|--------------------------|-------------------------------------------------------------------------------|-------------|
| 🛀 | Nœud                     |                                                                               | no          |
|    |                          | Conditions, par exemple non prêt, manque de mémoire/disque, réseau, pids, etc |             |
|    |                          | Tolérances de pod référençant les teintures de nœud                          |             |
|    |                          | Métriques d'utilisation CPU/MEM, déclenche si dépassement des limites (défaut 80% CPU/MEM) | |
| 🛀 | Espace de noms           |                                                                               | ns          |
|    |                          | Inactif                                                                      |             |
|    |                          | Espaces de noms morts                                                        |             |
| 🛀 | Pod                      |                                                                               | po          |
|    |                          | Statut du pod                                                                |             |
|    |                          | Statuts des conteneurs                                                       |             |
|    |                          | Présence du ServiceAccount                                                   |             |
|    |                          | CPU/MEM sur les conteneurs au-dessus d'une limite définie (défaut 80% CPU/MEM)|             |
|    |                          | Image de conteneur sans tag                                                  |             |
|    |                          | Image de conteneur utilisant le tag `latest`                                 |             |
|    |                          | Présence des demandes/limites de ressources                                   |             |
|    |                          | Présence des sondes de vivacité/préparation                                  |             |
|    |                          | Ports nommés et leurs références                                             |             |
| 🛀 | Service                  |                                                                               | svc         |
|    |                          | Présence des points de terminaison                                           |             |
|    |                          | Correspondance des étiquettes de pods                                        |             |
|    |                          | Ports nommés et leurs références                                             |             |
| 🛀 | ServiceAccount           |                                                                               | sa          |
|    |                          | Inutilisé, détecte les SA potentiellement inutilisés                         |             |
| 🛀 | Secrets                  |                                                                               | sec         |
|    |                          | Inutilisé, détecte les secrets ou clés associées potentiellement inutilisés  |             |
| 🛀 | ConfigMap                |                                                                               | cm          |
|    |                          | Inutilisé, détecte les cm ou clés associées potentiellement inutilisés       |             |
| 🛀 | Déploiement              |                                                                               | dp, deploy  |
|    |                          | Inutilisé, validation du modèle de pod, utilisation des ressources           |             |
| 🛀 | StatefulSet              |                                                                               | sts         |
|    |                          | Inutilisé, validation du modèle de pod, utilisation des ressources           |             |
| 🛀 | DaemonSet                |                                                                               | ds          |
|    |                          | Inutilisé, validation du modèle de pod, utilisation des ressources           |             |
| 🛀 | Volume persistant        |                                                                               | pv          |
|    |                          | Inutilisé, vérifier le volume lié ou l'erreur de volume                      |             |
| 🛀 | Réclamation de volume persistant |                                                                     | pvc         |
|    |                          | Inutilisé, vérifier la liaison ou l'erreur de montage de volume              |             |
| 🛀 | Autoscaler horizontal de pods |                                                                         | hpa         |
|    |                          | Inutilisé, Utilisation, Vérifications des pics max                           |             |
| 🛀 | Budget de perturbation de pods |                                                                       | pdb         |
|    |                          | Inutilisé, Vérifier la configuration de minAvailable                         |             |
| 🛀 | Rôle de cluster          |                                                                               | cr          |
|    |                          | Inutilisé                                                                     |             |
| 🛀 | Liaison de rôle de cluster |                                                                             | crb         |
|    |                          | Inutilisé                                                                     |             |
| 🛀 | Rôle                     |                                                                               | ro          |
|    |                          | Inutilisé                                                                     |             |
| 🛀 | Liaison de rôle          |                                                                               | rb          |
|    |                          | Inutilisé                                                                     |             |
| 🛀 | Ingress                  |                                                                               | ing         |
|    |                          | Valide                                                                        |             |
| 🛀 | Politique réseau         |                                                                               | np          |
|    |                          | Valide, Obsolète, Gardée                                                     |             |
| 🛀 | Politique de sécurité de pods |                                                                         | psp         |
|    |                          | Valide                                                                        |             |
| 🛀 | CronJob                  |                                                                               | cj          |
|    |                          | Valide, Suspendu, Exécutions                                                 |             |
| 🛀 | Tâche                    |                                                                               | job         |
|    |                          | Vérifications du pod                                                          |             |
| 🛀 | Classe de passerelle     |                                                                               | gwc         |
|    |                          | Valide, Inutilisé                                                             |             |
| 🛀 | Passerelle               |                                                                               | gw          |
|    |                          | Valide, Inutilisé                                                             |             |
| 🛀 | Route HTTP               |                                                                               | gwr         |
|    |                          | Valide, Inutilisé                                                             |             |

Vous pouvez également voir la [liste complète des codes](https://github.com/derailed/popeye/blob/HEAD/docs/codes.md)

---

## Enregistrement des analyses

Pour enregistrer le rapport Popeye dans un fichier, passez l'option `--save` à la commande.
Par défaut, il créera un répertoire temporaire et y stockera votre rapport d'analyse.
Le chemin du répertoire temporaire sera affiché sur STDOUT.
Si vous avez besoin de spécifier le répertoire de sortie du rapport,
vous pouvez utiliser la variable d'environnement `POPEYE_REPORT_DIR`. Le chemin final sera `<POPEYE_REPORT_DIR>/<cluster>/<contexte>`.
Par défaut, le nom du fichier de sortie suit le format suivant : `lint_<nom-cluster>_<temps-UnixNano>.<extension-sortie>` (ex. : "lint-mycluster-1594019782530851873.html").
Si vous souhaitez également spécifier le nom du fichier de sortie du rapport, vous pouvez passer l'option `--output-file` avec le nom de fichier souhaité comme paramètre.

Exemple pour enregistrer le rapport dans le répertoire de travail :```shell
POPEYE_REPORT_DIR=$(pwd) popeye --save

Exemple pour enregistrer le rapport dans le répertoire de travail au format HTML sous le nom « report.html » :```shell POPEYE_REPORT_DIR=$(pwd) popeye --save --out html --output-file report.html

root@kitploit:~
### Enregistrer dans un stockage d'objets S3

Alternativement, vous pouvez envoyer les rapports générés vers un stockage d'objets AWS S3 ou Minio en fournissant le drapeau `--s3-bucket`.
Pour les paramètres, vous devez fournir le nom du compartiment S3 où vous souhaitez stocker le rapport.
Pour enregistrer le rapport dans un sous-répertoire du compartiment, fournissez le paramètre du compartiment sous la forme `bucket/path/to/report`.

Exemple pour enregistrer le rapport dans S3 :```shell
# AWS S3
# NOTE: You must provide env vars for AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
# This will create bucket my-popeye if not present and upload a popeye json report to /fred/scan.json
popeye --s3-bucket s3://my-popeye/fred --s3-region us-west-2 --out json --save --output-file scan.json

# Minio Object Store
# NOTE: You must provide env vars for AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY and a minio server URI
# This will create bucket my-popeye if not present and upload a popeye json report to /fred/scan.json
popeye --s3-bucket minio://my-popeye/fred --s3-region us-east --s3-endpoint localhost:9000 --out json --save --output-file scan.json

Support Docker

Vous pouvez également exécuter Popeye dans un conteneur en l'exécutant directement depuis le dépôt docker officiel sur Quay. La commande par défaut lorsque vous exécutez le conteneur docker est popeye, vous pouvez donc personnaliser l'analyse en utilisant les indicateurs CLI pris en charge. Pour accéder à vos clusters, mappez votre répertoire kubeconfig local dans le conteneur avec -v :```shell docker run --rm -it -v $HOME/.kube:/root/.kube quay.io/derailed/popeye --context foo -n bar

root@kitploit:~
Exécuter la commande docker ci-dessus avec `--rm` signifie que le conteneur est supprimé lorsque Popeye se termine.
Lorsque vous utilisez `--save`, il écrit dans /tmp dans le conteneur puis supprime le conteneur lorsque Popeye se termine, ce qui signifie que vous perdez la sortie ;(
Pour contourner ce problème, mappez /tmp vers /tmp du conteneur.

> REMARQUE : Vous pouvez remplacer l'emplacement du répertoire de sortie par défaut en définissant la variable d'environnement `POPEYE_REPORT_DIR`.```shell
docker run --rm -it \
  -v $HOME/.kube:/root/.kube \
  -e POPEYE_REPORT_DIR=/tmp/popeye \
  -v /tmp:/tmp \
  quay.io/derailed/popeye --context foo -n bar --save --output-file my_report.txt

# Docker has exited, and the container has been deleted, but the file
# is in your /tmp directory because you mapped it into the container
cat /tmp/popeye/my_report.txt
<snip>

Formats de sortie

Popeye peut générer des rapports de linting dans divers formats. Vous pouvez utiliser l'option -o en ligne de commande et choisir votre poison.


The Prom Queen!

Popeye peut publier des métriques Prometheus directement depuis une analyse. Vous aurez besoin d'accéder à un pushgateway Prometheus et d'avoir des identifiants.

NOTE! Ceci est susceptible de changer en fonction des retours des utilisateurs et de l'usage!!

Pour publier des métriques, des arguments CLI supplémentaires doivent être présents.```shell

Run popeye using console output and push prom metrics.

popeye --push-gtwy-url http://localhost:9091

Run popeye using a saved html output and push prom metrics.

NOTE! When scan are dump to disk, popeye_cluster_score metric below includes

an additional label to track the persisted artifact so you can aggregate with the scan

Don't think it's the correct approach as this changes the metric cardinality on every push.

Hence open for suggestions here??

popeye -o html --save --push-gtwy-url http://localhost:9091

root@kitploit:~
### Métriques PopProm

Les métriques Prometheus suivantes de Popeye sont publiées :

* `popeye_severity_total` [gauge] suit les différents comptages basés sur la sévérité.
* `popeye_code_total` [gauge] suit les comptages par codes de linter de Popeye.
* `popeye_linter_tally_total` [gauge] suit les comptages par linter.
* `popeye_report_errors_total` [gauge] suit les totaux d'erreurs d'analyse.
* `popeye_cluster_score` [gauge] suit les scores des rapports d'analyse.

### PopGraf

Un exemple de tableau de bord [Grafana](https://grafana.com) se trouve dans ce dépôt pour vous aider à démarrer.

> NOTE! Travail en cours, n'hésitez pas à contribuer si vous avez des compétences en UX/grafana/promql.

---

## SpinachYAML

Un fichier de configuration YAML spinach peut être spécifié via l'option `-f` pour configurer davantage les linters. Ce fichier peut spécifier le seuil d'utilisation des conteneurs et des configurations de linter spécifiques ainsi que des ressources et des codes qui seront exclus du linter.

> NOTE! Ce fichier changera au fur et à mesure que Popeye évolue !

Sous la clé `excludes`, vous pouvez configurer l'exclusion de certaines ressources ou codes de linter.
Les linters de Popeye sont nommés d'après les noms des ressources k8s.
Par exemple, le linter PodDisruptionBudget est nommé `poddisruptionbudgets` et scanne `policy/v1/poddisruptionbudgets`.

> NOTE! Le linter utilise la forme plurielle du `kind` de la ressource et tout est écrit en minuscules.

Un nom de ressource pleinement qualifié, aussi appelé `FQN`, est utilisé dans le fichier spinach pour identifier un nom de ressource, c'est-à-dire `namespace/resource_name`.

Par exemple, le FQN d'un pod nommé `fred-1234` dans le namespace `blee` sera `blee/fred-1234`. Cela permet de différencier `fred/p1` et `blee/p1`.
Pour les ressources à l'échelle du cluster, le FQN est équivalent au nom.
Les règles d'exclusion peuvent être soit une correspondance exacte de chaîne, soit une expression régulière. Dans ce dernier cas, l'expression régulière doit être spécifiée via le préfixe `rx:`.

> NOTE! Soyez prudent avec votre regex car des ressources supplémentaires pourraient être exclues du rapport avec une règle regex *lâche*.
> Lorsque vos ressources de cluster changent, cela pourrait conduire à des analyses sous-optimales.
> Ainsi, nous recommandons d'exécuter Popeye `wide open` de temps en temps pour vous assurer de détecter tout nouveau problème qui pourrait être apparu dans vos clusters…

Voici un exemple de fichier spinach tel qu'il se présente dans cette version.
Il existe un fichier spinach plus complet basé sur eks et aks dans ce dépôt sous `spinach`.
(Au fait : pour les nouveaux arrivants dans le projet, cela pourrait être un excellent moyen de contribuer en ajoutant des PRs de fichiers spinach spécifiques à un cluster...)```yaml
# spinach.yaml

# A Popeye sample configuration file
popeye:
  # Checks resources against reported metrics usage.
  # If over/under these thresholds a linter warning will be issued.
  # Your cluster must run a metrics-server for these to take place!
  allocations:
    cpu:
      underPercUtilization: 200 # Checks if cpu is under allocated by more than 200% at current load.
      overPercUtilization: 50   # Checks if cpu is over allocated by more than 50% at current load.
    memory:
      underPercUtilization: 200 # Checks if mem is under allocated by more than 200% at current load.
      overPercUtilization: 50   # Checks if mem is over allocated by more than 50% usage at current load.

  # Excludes excludes certain resources from Popeye scans
  excludes:
    # [NEW!] Global exclude resources and codes globally of any linters.
    global:
      fqns: [rx:^kube-] # => excludes all resources in kube-system, kube-public, etc..
      # [NEW!] Exclude resources for all linters matching these labels
      labels:
        app: [bozo, bono] #=> exclude any resources with labels matching either app=bozo or app=bono
      # [NEW!] Exclude resources for all linters matching these annotations
      annotations:
        fred: [blee, duh] # => exclude any resources with annotations matching either fred=blee or fred=duh
      # [NEW!] Exclude scan codes globally via straight codes or regex!
      codes: ["300", "206", "rx:^41"] # => exclude issue codes 300, 206, 410, 415 (Note: regex match!)

    # [NEW!] Configure individual resource linters
    linters:
      # Configure the namespaces linter for v1/namespaces
      namespaces:
        # [NEW!] Exclude these codes for all namespace resources straight up or via regex.
        codes: ["100", "rx:^22"] # => exclude codes 100, 220, 225, ...
        # [NEW!] Excludes specific namespaces from the scan
        instances:
          - fqns: [kube-public, kube-system] # => skip ns kube-pulbic and kube-system
          - fqns: [blee-ns]
            codes: [106] # => skip code 106 for namespace blee-ns

      # Skip secrets in namespace bozo.
      secrets:
        instances:
          - fqns: [rx:^bozo]

      # Configure the pods linter for v1/pods.
      pods:
        instances:
          # [NEW!] exclude all pods matching these labels.
          - labels:
              app: [fred,blee] # Exclude codes 102, 105 for any pods with labels app=fred or app=blee
            codes: [102, 105]

  resources:
    # Configure node resources.
    node:
      # Limits set a cpu/mem threshold in % ie if cpu|mem > limit a lint warning is triggered.
      limits:
        # CPU checks if current CPU utilization on a node is greater than 90%.
        cpu:    90
        # Memory checks if current Memory utilization on a node is greater than 80%.
        memory: 80

    # Configure pod resources
    pod:
      # Restarts check the restarts count and triggers a lint warning if above threshold.
      restarts: 3
      # Check container resource utilization in percent.
      # Issues a lint warning if about these threshold.
      limits:
        cpu:    80
        memory: 75


  # [New!] overrides code severity
  overrides:
    # Code specifies a custom severity level ie critical=3, warn=2, info=1
    - code: 206
      severity: 1

  # Configure a list of allowed registries to pull images from.
  # Any resources not using the following registries will be flagged!
  registries:
    - quay.io
    - docker.io

Dans le cluster

Popeye est conteneurisé et peut être exécuté directement dans vos clusters Kubernetes en tant que tâche unique ou CronJob.

Voici un exemple de configuration, veuillez modifier selon vos besoins/souhaits. Les manifests correspondants se trouvent dans le répertoire k8s de ce dépôt.```shell kubectl apply -f k8s/popeye

root@kitploit:~
## KitPloitTools

Maîtrisez l'art de la cybersécurité en un seul endroit. Améliorez votre expertise avec des outils essentiels, gardez une longueur d'avance sur les menaces émergentes et explorez les dernières innovations du monde de la sécurité sur [KitPloit](https://www.kitploit.com/).```yaml
---
apiVersion: v1
kind: Namespace
metadata:
  name:      popeye
---
apiVersion: batch/v1
kind: CronJob
metadata:
  name:      popeye
  namespace: popeye
spec:
  schedule: "* */1 * * *" # Fire off Popeye once an hour
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          serviceAccountName: popeye
          restartPolicy: Never
          containers:
            - name: popeye
              image: derailed/popeye:vX.Y.Z
              imagePullPolicy: IfNotPresent
              args:
                - -o
                - yaml
                - --force-exit-zero
              resources:
                limits:
                  cpu:    500m
                  memory: 100Mi

La valeur --force-exit-zero doit être définie. Sinon, les pods se retrouveront dans un état d'erreur.

NOTE ! Popeye se termine avec un code d'erreur non nul si des erreurs de lint sont détectées.

Popeye s'occupe de votre RBAC !

Pour que Popeye puisse faire son travail, l'utilisateur connecté doit disposer de suffisamment d'oomph RBAC pour obtenir/lister les ressources mentionnées ci-dessus.

Exemples de règles RBAC pour Popeye (veuillez noter qu'elles sont susceptibles d'être modifiées.)

NOTE ! Veuillez les vérifier et les adapter selon les politiques de votre cluster.```yaml


Popeye ServiceAccount.

apiVersion: v1 kind: ServiceAccount metadata: name: popeye namespace: popeye


Popeye needs get/list access on the following Kubernetes resources.

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: popeye rules:

  • apiGroups: [""] resources:
    • configmaps
    • endpoints
    • namespaces
    • nodes
    • persistentvolumes
    • persistentvolumeclaims
    • pods
    • secrets
    • serviceaccounts
    • services verbs: ["get", "list"]
  • apiGroups: ["apps"] resources:
    • daemonsets
    • deployments
    • statefulsets
    • replicasets verbs: ["get", "list"]
  • apiGroups: ["networking.k8s.io"] resources:
    • ingresses
    • networkpolicies verbs: ["get", "list"]
  • apiGroups: ["batch.k8s.io"] resources:
    • cronjobs
    • jobs verbs: ["get", "list"]
  • apiGroups: ["gateway.networking.k8s.io"] resources:
    • gateway-classes
    • gateways
    • httproutes verbs: ["get", "list"]
  • apiGroups: ["autoscaling"] resources:
    • horizontalpodautoscalers verbs: ["get", "list"]
  • apiGroups: ["policy"] resources:
    • poddisruptionbudgets
    • podsecuritypolicies verbs: ["get", "list"]
  • apiGroups: ["rbac.authorization.k8s.io"] resources:
    • clusterroles
    • clusterrolebindings
    • roles
    • rolebindings verbs: ["get", "list"]
  • apiGroups: ["metrics.k8s.io"] resources:
    • pods
    • nodes verbs: ["get", "list"]

Binds Popeye to this ClusterRole.

apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: popeye subjects:

  • kind: ServiceAccount name: popeye namespace: popeye roleRef: kind: ClusterRole name: popeye apiGroup: rbac.authorization.k8s.io
root@kitploit:~
---

## Morphologie du rapport

Le rapport de lint affiche chaque groupe de ressources scanné et leurs problèmes potentiels.
Le rapport est codé par couleur/emoji selon les niveaux de sévérité du linter :

| Niveau | Icône | Jurassic | Couleur   | Description             |
|--------|-------|----------|-----------|-------------------------|
| OK     | ✅    | OK       | Vert      | Heureux !               |
| Info   | 🔊    | I        | BleuVert  | Pour info               |
| Avertissement | 😱 | W        | Jaune     | Problème potentiel      |
| Erreur | 💥    | E        | Rouge     | Action requise          |

La section d'en-tête de chaque ressource Kubernetes scannée fournit un nombre récapitulatif
pour chacune des catégories ci-dessus.

La section Résumé fournit un **Score Popeye** basé sur le passage du linter sur le cluster donné.

---

## Problèmes connus

Cette version initiale est fragile. Popeye risque fort de planter quand…

* Vous utilisez des versions plus anciennes de Kubernetes. Popeye fonctionne mieux avec Kubernetes 1.25.X.
* Vous n'avez pas assez de puissance RBAC pour gérer votre cluster (voir la section RBAC)

---

## Avertissement

Ceci est un travail en cours ! Si la communauté Kubernetes montre suffisamment d'intérêt,
nous améliorerons selon vos recommandations/contributions.
Et si vous appréciez cet effort, faites-le nous savoir aussi !

---

## Bravo les filles/garçons !

Popeye repose sur de nombreux projets et bibliothèques open source. Nos *sincères*
remerciements à tous les contributeurs OSS qui travaillent nuits et week-ends
pour concrétiser ce projet !

### Coordonnées

1. **Email** :   [email protected]
2. **Twitter** : [@kitesurfer](https://twitter.com/kitesurfer?lang=en)

---

<img src="https://raw.githubusercontent.com/derailed/popeye/master/assets/imhotep_logo.png" width="32" height="auto"/>  &nbsp;© 2025 Imhotep Software LLC.
Tous les documents sont sous licence [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0)
Télécharger l’outil
root@kitploit:~
FormatDescriptionDefaultCredits
standardLa sortie complète avec icônes et couleursoui
jurassicSans icônes ni couleurs, comme en 1979
yamlEn YAML
htmlEn HTML
jsonEn JSON
junitPour les mélancoliques du Java
prometheusExporte le rapport sous forme de métriques Prometheusdardanel
scoreRetourne un score unique de linting du cluster (0-100)kabute