Кодировка не разрешена для этого кодека: *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 создается и настраивается в примере здесь.