Кодировка не разрешена для этого кодека: *versioning.codec

Я создал оператор kubernetes, используя эту платформу https://github.com/operator-framework/operator-sdk в которой у меня определено небольшое определение пользовательского ресурса и создан набор клиентов.

Я создаю клиент для этого пользовательского ресурса, выполняя:

imports are (
    "k8s.io/client-go/kubernetes"
    "k8s.io/client-go/rest"
)

config, err := rest.InClusterConfig()
kubernetesClientset := kubernetes.NewForConfig(config)
// my generated CR clientset
v1alpha1.New(kubernetesClientset.RESTClient())

Поэтому я просто использую конфиг, который kubernetes дает пакетам и создал набор клиентов REST по умолчанию для k8s, и использую его в наборе клиентов моего пользовательского ресурса (это даже хорошая практика?).

Однако, когда я пытаюсь использовать свой клиентский набор пользовательских ресурсов и пытаюсь создать экземпляр пользовательского ресурса, клиент с ошибками encoding is not allowed for this codec: *versioning.codec (Полагаю, это происходит здесь https://github.com/kubernetes/apimachinery/blob/master/pkg/runtime/codec.go#L104).

Что это значит? Я думал, что сгенерированный клиент знает о пользовательском ресурсе?

Спасибо за помощь...

1 ответ

У меня была такая же проблема из-за неправильной конфигурации restclient. Посмотрите, как restclient создается и настраивается в примере здесь.

Другие вопросы по тегам