72 lines
2.3 KiB
Go
72 lines
2.3 KiB
Go
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 }
|