es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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: DeletionGracePeriodSeconds:0xc000256018 Labels:map[] Annotations:map[] OwnerReferences:[] Finalizers:[] ClusterName: ManagedFields:[]} Spec:{BackupName:backup-name-20211101 ScheduleName: IncludedNamespaces:[] ExcludedNamespaces:[] IncludedResources:[] ExcludedResources:[] NamespaceMapping:map[] LabelSelector:nil RestorePVs:0xc0007a9088 PreserveNodePorts: IncludeClusterResources: Hooks:{Resources:[]}} Status:{Phase: ValidationErrors:[] Warnings:0 Errors:0 FailureReason: StartTimestamp: CompletionTimestamp: Progress:}}

Tags:  , , ,

Answer

  1. Avatar for 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.

    apiClient.CoreV1().RESTClient().Create(context, restoreObj, metav1.CreateOptions{})
    

Comments are closed.