إصدار الدفة المتأثر: v2.4.1
يفشل helm [install | fetch] <chart repo>/<chart>
إذا كان أحدث <chart>
في <chart repo>
يحتوي على إصدار "ما قبل النشر" - أي يحتوي على قيم إضافية تتجاوز ، على سبيل المثال ، v0.1.0
، مثل v0.1.0-alpha.1
أو v0.1.0-dev-sha.abc1234
.
العمل في v2.3.1
:
$ helm version
Client: &version.Version{SemVer:"v2.3.1", GitCommit:"32562a3040bb5ca690339b9840b6f60f8ce25da4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.3.1", GitCommit:"32562a3040bb5ca690339b9840b6f60f8ce25da4", GitTreeState:"clean"}
$ helm search -r workflow-dev
NAME VERSION DESCRIPTION
workflow-dev/workflow v2.13.1-dev-20170504190907-sha.3d6bbf9 Deis Workflow
$ helm fetch workflow-dev/workflow
$ ls
workflow-v2.13.1-dev-20170504190907-sha.3d6bbf9.tgz
لا تعمل في v2.4.1
:
$ helm version
Client: &version.Version{SemVer:"v2.4.1", GitCommit:"46d9ea82e2c925186e1fc620a8320ce1314cbb02", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.4.1", GitCommit:"46d9ea82e2c925186e1fc620a8320ce1314cbb02", GitTreeState:"clean"}
$ helm search -r workflow-dev
NAME VERSION DESCRIPTION
workflow-dev/workflow v2.13.1-dev-20170504190907-sha.3d6bbf9 Deis Workflow
...
$ helm fetch workflow-dev/workflow
Error: chart "workflow" not found in workflow-dev index. (try 'helm repo update'). No chart version found for workflow-
ومع ذلك ، إذا كان أحدث مخطط في الريبو يحتوي على نسخة إصدار "رسمية" ، فسيتم جلبها بنجاح v2.4.1
:
$ helm search -r jenkins
NAME VERSION DESCRIPTION
stable/jenkins 0.6.2 Open source continuous integration server. It s..
$ helm fetch stable/jenkins
$ ls
jenkins-0.6.2.tgz
تم تقديم https://github.com/kubernetes/charts/issues/999 خصيصًا لمخطط stable/traefik
.
في الواقع ، كما نرى ، يحتوي هذا الرسم البياني على القليل من المعلومات الإضافية حول سلسلة الإصدار (النسخة الكاملة: 1.2.1-a
، وبالتالي فإن هذا يؤكد ادعاء هذه المشكلة بأن المعلومات المضافة (تعتبر عادةً "ما قبل الإصدار") كسر التثبيت / الجلب:
$ helm search -r traefik
NAME VERSION DESCRIPTION
stable/traefik 1.2.1-a A Traefik based Kubernetes ingress controller w...
$ helm fetch stable/traefik
Error: chart "traefik" not found in stable index. (try 'helm repo update'). No chart version found for traefik-
ومع ذلك ، من المهم ملاحظة (وربما يكون ذلك مفيدًا في تصحيح الأخطاء / تحديد المشكلة) ، إذا تم تحديد إصدار مخطط "ما قبل الإصدار" بشكل صريح ، فيمكن تثبيته / جلبه بدون مشكلة. استمرار من أعلاه:
$ helm fetch stable/traefik --version 1.2.1-a
$ ls
traefik-1.2.1-a.tgz
والسبب هو أن إصدار Traefik هو ، وفقًا لـ SemVer ، إصدار سابق. في Helm 2.4.1 ، قررنا عدم تثبيت الإصدارات التجريبية ما لم يتم تقديم إصدار صريح. # 2279
الحل البديل هو تشغيل شيء يسمح للإصدارات المسبقة باستيفاء معايير النطاق: helm fetch stable/traefik --debug --version=">1.0.0-a"
اقترح @ vice لي أننا ربما نضيف علامة للسماح للحزم غير المستقرة بتلبية الطلب. نحن نفكر ربما --devel
اقترح @ vice لي أننا ربما نضيف علامة للسماح للحزم غير المستقرة بتلبية الطلب.
في الواقع ، إحدى حالات الاستخدام الخاصة بنا هي تخصيص عمليات إعادة الشراء للمخطط بالكامل إلى المخططات ذات الإصدار "غير المستقرة / dev / pre-release" فقط. هذا له ميزة عدم "الازدحام" في مستودعات المخططات "الرسمية" التي تحتوي على إصدارات رسمية فقط.
سيكون من السهل الحفاظ على القدرة على سحب أحدث مخطط من repo (s) dev المذكور دون تحديد أي إصدار أو نطاق إصدار (كما يمكن القيام به في helm قبل 2.4.x): helm install dev-chart-repo/dev-chart
، بدلاً من الاضطرار إلى تتبع أحدث إصدار من مخطط dev بطريقة ما وتوفير النطاق المناسب عبر --version
.
إذا كانت هناك حاجة إلى علامة --devel
للقيام بما سبق ، فسيكون ذلك جيدًا.
بينما يمكنني أن أفهم (إلى حد ما) الأساس المنطقي وراء رفض تثبيت مخططات "ما قبل الإصدار" ، لا أستطيع أن أرى كيف يكون ذلك مفيدًا مع fetch
.
علاوة على ذلك ، فإن رسالة الخطأ الحالية مضللة وتتسبب في إضاعة الوقت.
التعليق الأكثر فائدة
والسبب هو أن إصدار Traefik هو ، وفقًا لـ SemVer ، إصدار سابق. في Helm 2.4.1 ، قررنا عدم تثبيت الإصدارات التجريبية ما لم يتم تقديم إصدار صريح. # 2279
الحل البديل هو تشغيل شيء يسمح للإصدارات المسبقة باستيفاء معايير النطاق:
helm fetch stable/traefik --debug --version=">1.0.0-a"
اقترح @ vice لي أننا ربما نضيف علامة للسماح للحزم غير المستقرة بتلبية الطلب. نحن نفكر ربما
--devel