package crds import ( apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func Definitions() []*apiextensionsv1.CustomResourceDefinition { return []*apiextensionsv1.CustomResourceDefinition{ monoKSConfigCRD(), osUpgradeCRD(), } } func monoKSConfigCRD() *apiextensionsv1.CustomResourceDefinition { return &apiextensionsv1.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: "monoksconfigs.monok8s.io"}, Spec: apiextensionsv1.CustomResourceDefinitionSpec{ Group: "monok8s.io", Scope: apiextensionsv1.NamespaceScoped, Names: apiextensionsv1.CustomResourceDefinitionNames{ Plural: "monoksconfigs", Singular: "monoksconfig", Kind: "MonoKSConfig", ShortNames: []string{"mkscfg"}, }, Versions: []apiextensionsv1.CustomResourceDefinitionVersion{{ Name: "v1alpha1", Served: true, Storage: true, Schema: &apiextensionsv1.CustomResourceValidation{OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{ Type: "object", Properties: map[string]apiextensionsv1.JSONSchemaProps{ "spec": {Type: "object", XPreserveUnknownFields: boolPtr(true)}, "status": {Type: "object", XPreserveUnknownFields: boolPtr(true)}, }, }}, }}, }, } } func osUpgradeCRD() *apiextensionsv1.CustomResourceDefinition { return &apiextensionsv1.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: "osupgrades.monok8s.io"}, Spec: apiextensionsv1.CustomResourceDefinitionSpec{ Group: "monok8s.io", Scope: apiextensionsv1.NamespaceScoped, Names: apiextensionsv1.CustomResourceDefinitionNames{ Plural: "osupgrades", Singular: "osupgrade", Kind: "OSUpgrade", ShortNames: []string{"osup"}, }, Versions: []apiextensionsv1.CustomResourceDefinitionVersion{{ Name: "v1alpha1", Served: true, Storage: true, Schema: &apiextensionsv1.CustomResourceValidation{OpenAPIV3Schema: &apiextensionsv1.JSONSchemaProps{ Type: "object", Properties: map[string]apiextensionsv1.JSONSchemaProps{ "spec": {Type: "object", XPreserveUnknownFields: boolPtr(true)}, "status": {Type: "object", XPreserveUnknownFields: boolPtr(true)}, }, }}, }}, }, } } func boolPtr(v bool) *bool { return &v }