/jenis bug
/sig api-mesin
@kubernetes/sig-api-machinery-bugs
Apa yang terjadi :
Jenis sumber daya khusus saya memiliki bidang status. Saya telah membuat klien untuk itu menggunakan genclient.
Berikut adalah definisi dari tipe CRD saya:
// +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"`
}
Fungsi UpdateStatus() yang dihasilkan:
// 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
}
Sekarang ketika saya memanggil UpdateStatus() untuk objek Pemulihan (stash-mduabx) itu memberikan kesalahan berikut:
the server could not find the requested resource (put recoveries.stash.appscode.com stash-mduabx)
Dan log panggilan 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
Apa yang Anda harapkan terjadi :
Itu harus memperbarui bidang status.
Cara memperbanyaknya :
Tentukan jenis CRD dengan bidang status dan buat klien untuknya menggunakan genclient. Buat objek dengan tipe tersebut menggunakan kubectl. Sekarang dapatkan objek dari program go dan panggil UpdateStatus() untuk objek tersebut.
Lingkungan :
Klien menghasilkan metode status karena ada bidang status, tetapi itu tidak berarti server memiliki dukungan untuk metode tersebut.
https://github.com/kubernetes/community/pull/913 adalah proposal untuk menambahkan dukungan server untuk sub-sumber daya status untuk objek CRD.
Komentar yang paling membantu
Klien menghasilkan metode status karena ada bidang status, tetapi itu tidak berarti server memiliki dukungan untuk metode tersebut.
https://github.com/kubernetes/community/pull/913 adalah proposal untuk menambahkan dukungan server untuk sub-sumber daya status untuk objek CRD.