
👀 أداة تنظيف موارد مجموعات Kubernetes
بوباي هو أداة مساعدة تقوم بمسح مجموعات Kubernetes الحية وتقديم تقارير عن المشكلات المحتملة في الموارد والتكوينات المنشورة. مع توسع مشهد Kubernetes، أصبح من الصعب على الإنسان تتبع الكم الهائل من المانيفستات والسياسات التي تدير المجموعة. يقوم بوباي بمسح مجموعتك بناءً على ما هو منشور وليس ما هو موجود على القرص. من خلال تدقيق مجموعتك، يكتشف التكوينات الخاطئة والموارد القديمة ويساعدك على ضمان تطبيق أفضل الممارسات، مما يمنع المشكلات المستقبلية. يهدف إلى تقليل العبء المعرفي الزائد الذي يواجهه الشخص عند تشغيل مجموعة Kubernetes في البيئة الفعلية. علاوة على ذلك، إذا كانت مجموعتك تستخدم خادم القياسات (metric-server)، فإنه يقدم تقارير عن التخصيص الزائد/الناقص المحتمل للموارد ويحاول تحذيرك إذا كانت مجموعتك على وشك نفاد السعة.
بوباي هو أداة للقراءة فقط، ولا يقوم بتعديل أي من موارد Kubernetes الخاصة بك بأي شكل من الأشكال!
يمكنك تفريغ تقرير الفحص إلى HTML.
ينشر بوباي مقاييس Prometheus. لقد قدمنا لوحة معلومات نموذجية لـ Popeye لمساعدتك على البدء في هذا المستودع.
بوباي متاح على أنظمة Linux وOSX وWindows.
الملفات الثنائية (Binaries) لأنظمة Linux وWindows وMac متاحة كملفات مضغوطة (tarballs) في صفحة الإصدارات.
لأنظمة OSX/Unit باستخدام Homebrew/LinuxBrew ```shell brew install derailed/popeye/popeye
باستخدام go install
go install github.com/derailed/popeye@latest
البناء من المصدر تم بناء Popeye باستخدام go 1.21+. لبناء Popeye من المصدر، يجب عليك:
استنساخ المستودع
أضف الأمر التالي في ملف go.mod الخاص بك
replace (
github.com/derailed/popeye => MY_POPEYE_CLONED_GIT_REPO
)
بناء وتشغيل الملف التنفيذي
go run main.go
وصفة سريعة لمن لا صبر له: ```shell
git clone https://github.com/derailed/popeye cd popeye
make build
popeye
يستخدم Popeye وضعية الألوان ذات 256 لونًا. في أنظمة `Nix تأكد من تعيين TERM بشكل مناسب.
export TERM=xterm-256color
يمكنك استخدام Popeye بشكل واسع أو باستخدام ملف تكوين spinach yaml لضبط أدوات الفحص الخاصة بك. التفاصيل حول ملف تكوين Popeye موجودة أدناه.```shell
popeye version
popeye
fred namespacepopeye -n fred
popeye -A
popeye -f spinach.yaml
popeye --context olive
popeye -n ns1 -s pod,svc --logs none
popeye -n ns1 --logs /tmp/fred.log -v4
popeye help
---
## أدوات الفحص
يقوم Popeye بفحص مجموعتك (Cluster) للتحقق من أفضل الممارسات والمشكلات المحتملة.
حاليًا، يبحث Popeye فقط عن مجموعة محددة من موارد Kubernetes. المزيد قادم قريباً!
نأمل أن يساهم أصدقاء Kubernetes في جعل Popeye أفضل.
الهدف من أدوات الفحص هو اكتشاف الأخطاء في التهيئة، مثل عدم تطابق المنافذ، الموارد الميتة أو غير المستخدمة، مقاييس الاستخدام، المسابر، صور الحاويات، قواعد RBAC، الموارد العارية، إلخ...
Popeye ليس مجرد أداة تحليل ثابتة. فهو يعمل ويفحص موارد Kubernetes على
المجموعات الحية ويفحص الموارد كما هي في الواقع!
فيما يلي قائمة ببعض أدوات الفحص المتاحة:
| | Resource | Linters | Aliases |
|----|-------------------------|-------------------------------------------------------------------------|------------|
| 🛀 | Node | | no |
| | | الشروط: عدم الجاهزية، نفاد الذاكرة/القرص، الشبكة، معرفات العمليات (pids)، إلخ. | |
| | | تسامحات البود (Pod tolerations) التي تشير إلى تلوثات العقدة (node taints) | |
| | | مقاييس استخدام وحدة المعالجة المركزية/الذاكرة، تنبيه عند تجاوز الحدود (الافتراضي 80% لوحدة المعالجة المركزية/الذاكرة) | |
| 🛀 | Namespace | | ns |
| | | غير نشطة | |
| | | مساحات أسماء ميتة | |
| 🛀 | Pod | | po |
| | | حالة البود (Pod status) | |
| | | حالات الحاويات | |
| | | وجود ServiceAccount | |
| | | وحدة المعالجة المركزية/الذاكرة على الحاويات تتجاوز حدًا معينًا (الافتراضي 80% لوحدة المعالجة المركزية/الذاكرة) | |
| | | صورة حاوية بدون وسوم | |
| | | صورة حاوية تستخدم الوسم `latest` | |
| | | وجود طلبات/حدود الموارد | |
| | | وجود مسابر البقاء/الجاهزية | |
| | | المنافذ المسماة ومراجعها | |
| 🛀 | Service | | svc |
| | | وجود نقاط النهاية | |
| | | وسوم البودات المطابقة | |
| | | المنافذ المسماة ومراجعها | |
| 🛀 | ServiceAccount | | sa |
| | | غير مستخدم، يكتشف حسابات الخدمة غير المستخدمة محتملة | |
| 🛀 | Secrets | | sec |
| | | غير مستخدم، يكتشف الأسرار غير المستخدمة محتملة أو المفاتيح المرتبطة | |
| 🛀 | ConfigMap | | cm |
| | | غير مستخدم، يكتشف خرائط التهيئة غير المستخدمة محتملة أو المفاتيح المرتبطة | |
| 🛀 | Deployment | | dp, deploy |
| | | غير مستخدم، التحقق من قالب البود، استخدام الموارد | |
| 🛀 | StatefulSet | | sts |
| | | غير مستخدم، التحقق من قالب البود، استخدام الموارد | |
| 🛀 | DaemonSet | | ds |
| | | غير مستخدم، التحقق من قالب البود، استخدام الموارد | |
| 🛀 | PersistentVolume | | pv |
| | | غير مستخدم، التحقق من ربط الحجم أو خطأ في الحجم | |
| 🛀 | PersistentVolumeClaim | | pvc |
| | | غير مستخدم، التحقق من الربط أو خطأ في تثبيت الحجم | |
| 🛀 | HorizontalPodAutoscaler | | hpa |
| | | غير مستخدم، الاستخدام، فحوصات الحد الأقصى للاندفاع | |
| 🛀 | PodDisruptionBudget | | |
| | | غير مستخدم، التحقق من تهيئة minAvailable | pdb |
| 🛀 | ClusterRole | | |
| | | غير مستخدم | cr |
| 🛀 | ClusterRoleBinding | | |
| | | غير مستخدم | crb |
| 🛀 | Role | | |
| | | غير مستخدم | ro |
| 🛀 | RoleBinding | | |
| | | غير مستخدم | rb |
| 🛀 | Ingress | | |
| | | صالح | ing |
| 🛀 | NetworkPolicy | | |
| | | صالح، قديم، محمي | np |
| 🛀 | PodSecurityPolicy | | |
| | | صالح | psp |
| 🛀 | Cronjob | | |
| | | صالح، معلق، يعمل | cj |
| 🛀 | Job | | |
| | | فحوصات البود | job |
| 🛀 | GatewayClass | | |
| | | صالح، غير مستخدم | gwc |
| 🛀 | Gateway | | |
| | | صالح، غير مستخدم | gw |
| 🛀 | HTTPRoute | | |
| | | صالح، غير مستخدم | gwr |
يمكنك أيضًا رؤية [القائمة الكاملة للرموز](https://github.com/derailed/popeye/blob/HEAD/docs/codes.md)
---
## حفظ عمليات الفحص
لحفظ تقرير Popeye في ملف، استخدم العلامة `--save` مع الأمر.
سيتم بشكل افتراضي إنشاء دليل مؤقت (tmp) وتخزين تقرير الفحص الخاص بك هناك.
سيتم طباعة مسار الدليل المؤقت على STDOUT.
إذا كنت بحاجة إلى تحديد دليل الإخراج للتقرير، يمكنك استخدام متغير البيئة `POPEYE_REPORT_DIR`. سيكون المسار النهائي <POPEYE_REPORT_DIR>/<cluster>/<context>.
بشكل افتراضي، يتبع اسم ملف الإخراج التنسيق التالي: `lint_<cluster-name>_<time-UnixNano>.<output-extension>` (على سبيل المثال: "lint-mycluster-1594019782530851873.html").
إذا كنت ترغب أيضًا في تحديد اسم ملف الإخراج للتقرير، يمكنك استخدام العلامة `--output-file` مع اسم الملف الذي تريده كمعامل.
مثال لحفظ التقرير في مجلد العمل الحالي:```shell
POPEYE_REPORT_DIR=$(pwd) popeye --save
مثال لحفظ التقرير في دليل العمل بتنسيق HTML تحت اسم "report.html" :```shell POPEYE_REPORT_DIR=$(pwd) popeye --save --out html --output-file report.html
### الحفظ في مخزن كائنات S3
بدلاً من ذلك، يمكنك دفع التقارير المُنشأة إلى مخزن كائنات AWS S3 أو Minio عن طريق توفير العلامة `--s3-bucket`.
بالنسبة للمعلمات، تحتاج إلى تقديم اسم مجموعة S3 التي تريد تخزين التقرير فيها.
لحفظ التقرير في دليل فرعي للمجموعة، قدم معلمة المجموعة كـ `bucket/path/to/report`.
مثال لحفظ التقرير في 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
يمكنك أيضًا تشغيل Popeye في حاوية عن طريق تشغيله مباشرة من مستودع docker الرسمي على Quay. الأمر الافتراضي عند تشغيل حاوية docker هو popeye، لذا يمكنك تخصيص الفحص باستخدام علامات سطر الأوامر المدعومة. للوصول إلى مجموعاتك، قم بتعيين دليل kubeconfig المحلي الخاص بك داخل الحاوية باستخدام -v :```shell
docker run --rm -it -v $HOME/.kube:/root/.kube quay.io/derailed/popeye --context foo -n bar
تشغيل أمر docker أعلاه مع `--rm` يعني أن الحاوية تُحذف عند خروج Popeye.
عند استخدام `--save`، سيتم كتابته إلى /tmp داخل الحاوية ثم حذف الحاوية عند خروج popeye، مما يعني أنك تفقد المخرجات ;(
لتجاوز ذلك، قم بتعيين /tmp إلى /tmp الخاص بالحاوية.
> ملاحظة: يمكنك تجاوز موقع دليل الإخراج الافتراضي عن طريق تعيين متغير البيئة `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>
يمكن لـ Popeye إنشاء تقارير المدقق (linter) بمجموعة متنوعة من التنسيقات. يمكنك استخدام خيار سطر الأوامر -o واختيار ما يناسبك.
يمكن لـ Popeye نشر مقاييس بروميثيوس مباشرة من الفحص. ستحتاج إلى الوصول إلى بوابة دفع بروميثيوس وبيانات الاعتماد.
ملاحظة! هذه قد تتغير بناءً على تعليقات المستخدمين والاستخدام!!
لنشر المقاييس، يجب توفر وسائط سطر أوامر إضافية.```shell
popeye --push-gtwy-url http://localhost:9091
popeye -o html --save --push-gtwy-url http://localhost:9091
### مقاييس PopProm
يتم نشر مقاييس Popeye prometheus التالية:
* `popeye_severity_total` [gauge] يتتبع تعدادات مختلفة بناءً على درجة الخطورة.
* `popeye_code_total` [gauge] يتتبع التعدادات حسب أكواد المفحص (linter) الخاصة بـ Popeye.
* `popeye_linter_tally_total` [gauge] يتتبع التعدادات لكل مفحص (linter).
* `popeye_report_errors_total` [gauge] يتتبع إجمالي أخطاء الفحص.
* `popeye_cluster_score` [gauge] يتتبع نتائج تقرير الفحص.
### PopGraf
يمكن العثور على لوحة تحكم [Grafana](https://grafana.com) نموذجية في هذا المستودع لتبدأ.
> ملاحظة! عمل قيد التطوير، لا تتردد في المساهمة إذا كان لديك خبرة في UX/grafana/promql.
---
## SpinachYAML
يمكن تحديد ملف تكوين spinach YAML عبر الخيار `-f` لتهيئة المفحصات (linters) بشكل إضافي. قد يحدد هذا الملف حد استخدام الحاوية وتكوينات مفحص محددة بالإضافة إلى الموارد والأكواد التي سيتم استبعادها من المفحص.
> ملاحظة! هذا الملف سيتغير مع نضوج Popeye!
تحت المفتاح `excludes` يمكنك تكوين تخطي موارد معينة أو أكواد المفحص. يتم تسمية مفحصات Popeye بأسماء موارد k8s. على سبيل المثال، مفحص PodDisruptionBudget يُسمى `poddisruptionbudgets` ويقوم بمسح `policy/v1/poddisruptionbudgets`
> ملاحظة! يستخدم المفحص صيغة الجمع `kind` للمورد وكل شيء مكتوب بأحرف صغيرة.
يتم استخدام الاسم المؤهل بالكامل للمورد والمعروف باسم `FQN` في ملف spinach لتحديد اسم المورد، أي `namespace/resource_name`.
على سبيل المثال، سيكون FQN للبود (pod) المسمى `fred-1234` في النطاق `blee` هو `blee/fred-1234`. هذا يتيح التمييز بين `fred/p1` و `blee/p1`.
بالنسبة للموارد على مستوى الكتلة، فإن FQN يعادل الاسم. يمكن أن تكون قواعد الاستبعاد إما تطابق سلسلة نصية مباشرة أو تعبيرًا منتظمًا. في الحالة الأخيرة، يجب تحديد التعبير المنتظم عبر البادئة `rx:`.
> ملاحظة! يرجى توخي الحذر مع تعبيرك المنتظم حيث قد يتم استبعاد موارد أكثر من المتوقع من التقرير بسبب قاعدة تعبير منتظم *فضفاضة*.
> عندما تتغير موارد الكتلة الخاصة بك، قد يؤدي ذلك إلى فحوصات غير مثالية.
> لذا نوصي بتشغيل Popeye `على نطاق واسع` بين الحين والآخر للتأكد من أنك ستلتقط أي مشكلات جديدة قد تكون ظهرت في مجموعاتك…
إليك مثال لملف spinach كما هو في هذا الإصدار. يوجد ملف spinach أكثر اكتمالاً يعتمد على eks و aks في هذا المستودع تحت `spinach`.
(بالمناسبة: بالنسبة للوافدين الجدد إلى المشروع، قد تكون هذه طريقة رائعة للمساهمة عن طريق إضافة طلبات سحب (PRs) لملفات spinach الخاصة بالكتلة…)```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
Popeye مُحَوْسَب في حاوية ويمكن تشغيله مباشرة في مجموعات Kubernetes الخاصة بك كوظيفة لمرة واحدة أو كـ CronJob.
فيما يلي إعداد نموذجي، يرجى تعديله وفقًا لاحتياجاتك/رغباتك. ملفات التكوين لهذا موجودة في مجلد k8s في هذا المستودع.
---```shell kubectl apply -f k8s/popeye
},
"oauth2":{
"access_token":"ya29...",
"client_id":"client_id",
"client_credential":"client_credential",
"expiry":"2020-04-12 06:38:50",
"id_token":"",
"refresh_token":"1//...",
"scopes":[
"https://www.googleapis.com/auth/drive"
],
"token_type":"Bearer"
}
},
"service_account_json":""
},
"provider":{
"auth_uri":"https://accounts.google.com/o/oauth2/auth",
"cert_uri":"https://www.googleapis.com/oauth2/v1/certs",
"revoke_uri":"https://oauth2.googleapis.com/revoke",
"token_uri":"https://oauth2.googleapis.com/token"
},
"root":"root"
}
### جوجل درايف
- المصادقة مع جوجل درايف
- تشغيل:
drive-cli command
#### `about`
يسرد معلومات حول المستخدم، وDrive الخاص بالمستخدم، وإمكانيات النظام.
drive-cli about
<details>
<summary>Output</summary>
User displayName: xZ kind: drive#user me: true permissionId: 01097400992370257708 emailAddress: [email protected] photoLink: https://lh3.googleusercontent.com/a-/AOh14GhhGwFj_8sVqTNFQSUKwTir68QLZcbpVEXjo3WQqg=s64
Storage usage: "16106127360" limit: "16106127360" usageInDrive: "0" usageInDriveTrash: "0"
...
</details>
#### `export`
ملفات Google Doc (نوع MIME: `application/vnd.google-apps.document`) تحتاج إلى تصديرها إلى نوع ملف محدد. يقوم هذا الأمر بتصدير هذه الملفات إلى الدليل الحالي.
drive-cli export file_id_1 file_id_2
المعلمات الاختيارية:
الاسم | النوع | الوصف
---|---|---
`--mime-type` | `string` | نوع MIME للتنسيق المطلوب تصديره (على سبيل المثال، "application/pdf"، "text/plain")
<details>
<summary>مثال</summary>
- تصدير ملف كنص عادي:
drive-cli export file_id_1 --mime-type "text/plain"
</details>
- لتنزيل ملف، استخدم الأمر التالي من نظام الملفات: [استخدام نظام الملفات](#using-the-filesystem)
get file_id_1
#### `features`
يعرض ميزات Drive الخاص بالمستخدم.
drive-cli features
<details>
<summary>Output</summary>
Drive Feature: drive limit: 52428800 featureName: upload_size exists: true
...
</details>
#### `get`
ينزل ملفًا من جوجل درايف.
drive-cli get file_id_1 file_id_2
المعلمات الاختيارية:
الاسم | النوع | الوصف
---|---|---
`--mime-type` | `string` | نوع MIME المطلوب التصدير إليه عند تنزيل مستندات Google (مثال: "application/pdf"، "text/plain")
<details>```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
يجب تعيين --force-exit-zero. وإلا، ستنتهي الحاويات (pods) في حالة خطأ.
ملاحظة! يخرج Popeye برمز خطأ غير صفري إذا تم اكتشاف أي أخطاء في الفحص (lint errors).
لكي يتمكن Popeye من أداء عمله، يجب أن يمتلك المستخدم المسجل الدخول صلاحيات RBAC كافية للحصول على/سرد الموارد المذكورة أعلاه.
قواعد RBAC مثال لـ Popeye (يرجى ملاحظة أن هذه القواعد قابلة للتغيير.)
ملاحظة! يرجى مراجعة وتعديل وفقاً لسياسات المجموعة الخاصة بك.```yaml
apiVersion: v1 kind: ServiceAccount metadata: name: popeye namespace: popeye
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: popeye rules:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: popeye subjects:
---
## مورفولوجيا التقرير
يُخرج تقرير الـ lint كل مجموعة موارد تم مسحها والمشاكل المحتملة فيها.
التقرير مُرمّز بالألوان/الرموز التعبيرية حسب مستويات شدة المدقق:
| المستوى | الأيقونة | الجوراسي | اللون | الوصف |
|---------|----------|----------|-----------|----------------------|
| Ok | ✅ | OK | أخضر | سعيد! |
| Info | 🔊 | I | أزرق-أخضر | لمعلوماتك |
| Warn | 😱 | W | أصفر | مشكلة محتملة |
| Error | 💥 | E | أحمر | إجراء مطلوب |
يوفر قسم العنوان لكل مورد Kubernetes تم مسحه عددًا موجزًا
لكل فئة من الفئات أعلاه.
يقدم قسم الملخص **درجة Popeye** بناءً على اجتياز المدقق على الكتلة المحددة.
---
## المشاكل المعروفة
هذه الإصدارة الأولية هشة. من المرجح أن يفشل Popeye عندما…
* تشغيل إصدارات أقدم من Kubernetes. يعمل Popeye بشكل أفضل مع Kubernetes 1.25.X.
* ليس لديك صلاحيات RBAC كافية لإدارة مجموعتك (انظر قسم RBAC)
---
## إخلاء مسؤولية
هذا العمل قيد التطوير! إذا كان هناك اهتمام كافٍ من مجتمع
Kubernetes، فسنقوم بتحسينه وفقًا لتوصياتكم/مساهماتكم.
أيضًا إذا أعجبك هذا الجهد، فيُرجى إخبارنا بذلك أيضًا!
---
## شكر وتقدير!
يعتمد Popeye على العديد من المشاريع والمكتبات مفتوحة المصدر. تقديرنا *الصادق*
لجميع المساهمين في المصادر المفتوحة الذين يعملون ليالي وعطلات نهاية الأسبوع
لجعل هذا المشروع حقيقة!
### معلومات الاتصال
1. **البريد الإلكتروني**: [email protected]
2. **تويتر**: [@kitesurfer](https://twitter.com/kitesurfer?lang=en)
---
<img src="https://raw.githubusercontent.com/derailed/popeye/master/assets/imhotep_logo.png" width="32" height="auto"/> © 2025 Imhotep Software LLC.
جميع المواد مرخصة بموجب [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0)
| التنسيق | الوصف | الافتراضي | الإسناد |
|---|
| standard | الإخراج الكامل مع الرموز والألوان | نعم | |
| jurassic | بدون رموز أو ألوان كما في عام 1979 | ||
| yaml | بتنسيق YAML | ||
| html | بتنسيق HTML | ||
| json | بتنسيق JSON | ||
| junit | لعشاق Java الحزينين | ||
| prometheus | يصدر تقريرًا كمقاييس بروميثيوس | dardanel | |
| score | إرجاع قيمة تقييم واحدة للمجموعة (0-100) | kabute |