Files
paralus/pkg/controller/scheme/scheme.go
nirav-rafay c66bdc25cd restructure rcloud-base as a single base controller (#37)
* restructure rcloud-base as a single base controller
* updated master.rest
* moved sentry from internal to pkg as it is used by relay
* removing unused rpc and it's dependencies
* Fix usermgmt tests
* Don't redefine variables in rest file
Co-authored-by: Abin Simon <abin.simon@rafay.co>
2022-03-03 17:59:06 +05:30

47 lines
975 B
Go

package scheme
import (
"sync"
apiv2 "github.com/RafaySystems/rcloud-base/proto/types/controller"
// DO NOT UPDATE
// API Extensions v1 is not available in k8s v1.14.x
apixv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
"k8s.io/apimachinery/pkg/runtime"
kjson "k8s.io/apimachinery/pkg/runtime/serializer/json"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
)
type addToScheme func(s *runtime.Scheme) error
var (
// Scheme is the runtime scheme
Scheme *runtime.Scheme
// Serializer is the JSON serializer for handling runtime objects
Serializer runtime.Serializer
)
func init() {
var once sync.Once
once.Do(func() {
Scheme = runtime.NewScheme()
for _, f := range []addToScheme{
clientgoscheme.AddToScheme,
apixv1beta1.AddToScheme,
apiv2.AddToScheme,
} {
err := f(Scheme)
if err != nil {
panic(err)
}
}
Serializer = kjson.NewSerializer(kjson.DefaultMetaFactory, Scheme, Scheme, false)
})
}