Я создал оператор 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).
Что это именно означает? Я подумалсгенерированный клиент знает о пользовательском ресурсе?
Спасибо за помощь ...