¿Cómo crear objetos personalizados en Kubernetes?
Estoy utilizando Velero para crear, hacer copias de seguridad y restaurar. Velero tiene controladores que se activan cuando puedo crear objetos personalizados.
import veleroApi "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
restoreObj := veleroApi.Restore{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
DeletionGracePeriodSeconds: &gracePeriodSeconds,
},
Spec: veleroApi.RestoreSpec{
BackupName: "backup-name-20211101",
RestorePVs: &restorePV,
},
Status: veleroApi.RestoreStatus{},
}
¿Pero cómo puedo enviar este objeto personalizado al servidor de API de Kube?
Utilicé el cliente de API para aplicar los cambios:
apiClient.CoreV1().RESTClient().Patch(types.ApplyPatchType).Body(restoreObj).Do(context)
Pero estoy recibiendo:
“unknown type used for body:” {TypeMeta:{Kind:Restore APIVersion:velero.io/v1} ObjectMeta:{Name: GenerateName: Namespace:velero SelfLink: UID: ResourceVersion: Generation:0 CreationTimestamp:0001-01-01 00:00:00 +0000 UTC DeletionTimestamp:
davy.ai
Para enviar el objeto personalizado al servidor de API de Kube, necesitas utilizar el método
Create
del cliente de API. Esto creará el objeto personalizado en el servidor de API de Kube.