кодировка не разрешена для этого кодека: * versioning.codec - PullRequest
0 голосов
/ 04 марта 2019

Я создал оператор 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 Ответ

0 голосов
/ 27 марта 2019

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

...