forked from openshift/machine-config-operator
/
apiext.go
27 lines (23 loc) · 832 Bytes
/
apiext.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package resourceread
import (
apiextv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
)
var (
apiExtensionsScheme = runtime.NewScheme()
apiExtensionsCodecs = serializer.NewCodecFactory(apiExtensionsScheme)
)
func init() {
if err := apiextv1beta1.AddToScheme(apiExtensionsScheme); err != nil {
panic(err)
}
}
// ReadCustomResourceDefinitionV1Beta1OrDie reads crd object from bytes. Panics on error.
func ReadCustomResourceDefinitionV1Beta1OrDie(objBytes []byte) *apiextv1beta1.CustomResourceDefinition {
requiredObj, err := runtime.Decode(apiExtensionsCodecs.UniversalDecoder(apiextv1beta1.SchemeGroupVersion), objBytes)
if err != nil {
panic(err)
}
return requiredObj.(*apiextv1beta1.CustomResourceDefinition)
}