/ نوع الخطأ
/ sig api-machinery
@ kubernetes / sig-api-machinery-bugs
ماذا حدث :
يحتوي نوع المورد المخصص الخاص بي على حقل حالة. لقد قمت بإنشاء عميل لها باستخدام genclient.
هذا هو تحديد نوع CRD الخاص بي:
// +genclient
// +k8s:openapi-gen=true
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type Recovery struct {
metav1.TypeMeta `json:",inline,omitempty"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec RecoverySpec `json:"spec,omitempty"`
Status RecoveryStatus `json:"status,omitempty"`
}
دالة UpdateStatus () التي تم إنشاؤها:
// UpdateStatus was generated because the type contains a Status member.
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
func (c *recoveries) UpdateStatus(recovery *v1alpha1.Recovery) (result *v1alpha1.Recovery, err error) {
result = &v1alpha1.Recovery{}
err = c.client.Put().
Namespace(c.ns).
Resource("recoveries").
Name(recovery.Name).
SubResource("status").
Body(recovery).
Do().
Into(result)
return
}
الآن عندما أستدعي UpdateStatus () لكائن الاسترداد (stash-mduabx) فإنه يعطي الخطأ التالي:
the server could not find the requested resource (put recoveries.stash.appscode.com stash-mduabx)
وسجل استدعاء api:
PUT https://192.168.99.100:8443/apis/stash.appscode.com/v1alpha1/namespaces/test-stash/recoveries/stash-mduabx/status 404 Not Found in 11 milliseconds
ما توقعت حدوثه :
يجب أن يتم تحديث حقل الحالة.
كيفية إعادة إنتاجه :
حدد نوع CRD مع حقل الحالة وقم بإنشاء عميل له باستخدام genclient. قم بإنشاء كائن من هذا النوع باستخدام kubectl. الآن احصل على الكائن من برنامج go واستدعاء UpdateStatus () للكائن.
البيئة :
يقوم العميل بإنشاء طريقة حالة نظرًا لوجود حقل حالة ، ولكن هذا لا يعني أن الخادم لديه دعم لهذه الطريقة.
https://github.com/kubernetes/community/pull/913 هو اقتراح لإضافة دعم الخادم لمصادر الحالة الفرعية لكائنات CRD.
التعليق الأكثر فائدة
يقوم العميل بإنشاء طريقة حالة نظرًا لوجود حقل حالة ، ولكن هذا لا يعني أن الخادم لديه دعم لهذه الطريقة.
https://github.com/kubernetes/community/pull/913 هو اقتراح لإضافة دعم الخادم لمصادر الحالة الفرعية لكائنات CRD.