Я создал CRD
следующим образом:
import v1 "k8s.io/api/core/v1"
type ApplicationSpec struct {
Name string `json:"name"`
PodSpec v1.PodSpec `json:"podSpec"`
...
}
обратите внимание, что я повторно использовал PodSpec
из ядра apigroup в моей CRD
Чтобы пользователь не мог использовать недопустимые файлы yaml, я решил чтобы добавить логи проверки c в моем контроллере CRD, для простых полей, таких как Name
, легко проверить их правильность с помощью регулярных выражений, в то время как для сложного и нативного типа, например PodSpec
, поскольку k8s уже имеют логи проверки c для я чувствую, что правильный путь - это использовать его в моем контроллере, но как я могу это сделать?